revolut-engineering/revolut-x-api/revx-trading
Claude Code and agent skill by revolut-engineering/revolut-x-api
- community
Checking that the SKILL.md file is still in the repository.
Revolut X order placement, replacement and cancellation. Use when the user asks to "place an order", "buy BTC", "sell ETH", "market order", "limit order", "conditional order", "stop order", "stop-limit order", "take profit", "stop loss", "trigger order", "replace order", "modify order", "cancel order", "cancel all orders", or runs revx order place, revx order replace or revx order cancel commands.
Install
npx vskill@latest install revolut-engineering/revolut-x-api/revx-tradingSKILL.md
Trading (revx order place / revx order replace / revx order cancel)
Place market, limit, conditional (stop) and take-profit/stop-loss orders, replace (modify) open orders, cancel open orders.
Auth required. Make surerevxis installed and configured before running these commands. If any command fails with an auth-related error —Auth not configured,No private key found,Authentication failed (401),Invalid signature,insecure permissions, or a missing key/config file at~/.config/revolut-x/— invoke the `revx-auth` skill immediately and apply the fix yourself. Do not interrupt the user to ask them to run setup. Only escalate to the user for steps only they can perform (pasting the API key, registering the public key in their Revolut X profile). After the fix, retry the original command.
Symbols use BASE-QUOTE format with a dash: BTC-USD, ETH-EUR, SOL-USD. Check pair constraints with revx market pairs (see revx-market skill).
order place and order replace support --json or --output json for machine-readable output.
Behavioral Instructions for Claude
Human Confirmation Required
NEVER execute `revx order place`, `revx order replace`, or `revx order cancel` without explicit user confirmation. These commands move real money.
Before running any order command, present a confirmation summary to the user:
Order to place:- Pair: BTC-USD- Side: buy- Type: limit @ $95,000- Size: 0.001 BTCShall I proceed?
For conditional and take-profit/stop-loss orders, include the trigger details in the summary:
Order to place:- Pair: BTC-USD- Side: sell- Type: conditional — triggers at $100,000, then sells 0.001 BTC at marketShall I proceed?
Only execute after the user explicitly approves (e.g., "yes", "go ahead", "do it").
For revx order cancel --all, warn the user that this cancels every open order and confirm.
Missing Parameters — Always Ask, Never Guess
All required parameters must come from the user. If any are missing, ask for them before building the command.
Required for every order:
- Symbol — which pair? (e.g.,
BTC-USD) - Side — buy or sell?
- Size — how much? (
--qtyfor base currency or--quotefor quote currency; take-profit/stop-loss orders accept--qtyonly) - Order type — market (
--market), limit (--limit <price>), conditional (--conditional), or take-profit/stop-loss (--tp/--sl)?
Additional requirements by order type:
- Conditional orders also need a trigger price. Optionally a trigger limit price.
- Take-profit/stop-loss orders need at least one of
--tp <price>/--sl <price>. Trigger directions are derived from the side automatically — never pass them.
Never assume defaults for these parameters. If the user says "buy some BTC", ask:
- How much? (quantity in BTC or dollar amount)
- Market order or limit? (if limit, at what price?)
Optional flags (--post-only) can be omitted unless the user requests them.
Place Orders
Arguments: <symbol> <side>
symbol:BASE-QUOTEformat (e.g.,BTC-USD,ETH-EUR)side:buyorsell(case-insensitive)
Flags:
| Flag | Description | |
|---|---|---|
--qty <amount> | Size in base currency (e.g., 0.001 for BTC) | |
--quote <amount> | Size in quote currency (e.g., 500 for USD) | |
--market | Market order (required unless another order type is chosen) | |
--limit <price> | Limit price (required unless another order type is chosen) | |
--time-in-force <value> | gtc (default) or ioc. Limit orders only — fok is not accepted when placing. | |
--post-only | Post-only execution (limit orders only) | |
--client-order-id <uuid> | Your own ID for the order, so a retry can't place it twice (generated if omitted) |
Must specify either --qty or --quote (not both).
Reading the result: the exchange answers with the order's state, and the exit code follows it. With --json, an answered order prints the exchange's document with the same exit code and the reason for a failure on stderr. A request the exchange refuses outright prints only its error on stderr. A new order isn't listed for a few seconds, so wait before revx order get or revx order fills.
| State | Meaning | Exit code | |
|---|---|---|---|
pending_new, new, partially_filled, filled | Placed | 0 | |
cancelled, market or IOC order | Closed at once. See what filled with revx order fills <id> | 0 | |
cancelled, any other order | The exchange cancelled it at once. It may have partly filled, so check revx order get <id> before placing it again | 1 | |
rejected | Not placed. With --post-only, usually because the price would have traded at once | 1 | |
| Any other state | Sent. Check it with revx order get <id> | 0 |
If the reply is lost: every order is sent with a client order ID, generated unless you pass --client-order-id. When the connection drops after the order may have reached the exchange, or the exchange answers with a server error, the command exits 1, says the order may have been placed and prints its client order ID on stderr. stdout stays empty, also with --json, so a script should pass its own --client-order-id (a UUID). Look for that ID in revx order open --json, or revx order history --json once it has filled, before doing anything else. A market order can take a few minutes to show up. To retry, run the same command with --client-order-id <that ID>: if the first one went through, the exchange refuses the retry as already placed, and the CLI then says an order with that ID already exists and no second one was placed. Never retry without the ID, or a second order can be placed. A connection that fails before sending, such as a refused connection or a DNS failure, says so and placed nothing. For a replace, revx order get <original id> tells whether it happened: an original still open means the replace did not happen.
Price step: a --limit or --price must be a multiple of the pair's price step (revx market pairs shows it). Otherwise the CLI refuses it before sending and names the nearest valid prices. --qty, --quote, --limit and --price must be positive numbers with at most 18 decimal places.
Conditional (Stop) Orders
Waits until the market price crosses the trigger, then places a market order (default) or a limit order (with --trigger-limit-price). Exactly one order type per command.
Flags:
| Flag | Description | |
|---|---|---|
--conditional | Conditional (stop) order type | |
--trigger-price <price> | Price that activates the order (required) | |
--trigger-limit-price <price> | Limit price for the order placed on trigger; market execution when omitted | |
--qty <amount> / --quote <amount> | Size — exactly one required |
Behavior:
--time-in-forceand--post-onlyare limit-order flags — they are rejected with conditional orders.- Once triggered, a market leg executes immediately (ioc); a limit leg rests as a gtc limit order.
- The order rests in
revx order openwith typeconditionaland aTrig ≥/≤ <price>condition until it triggers or is cancelled. - Cancel with the usual
revx order cancel <order-id>.
Take-Profit / Stop-Loss Orders
Places a resting order that exits a position when the market reaches the take-profit and/or stop-loss trigger. At least one of --tp/--sl is required; both can be combined. Trigger directions are derived from the side — do not pass them:
- Sell TP/SL (closing a long): take profit fires when price rises to/above
--tp; stop loss fires when price falls to/below--sl. - Buy TP/SL (closing a short): take profit fires when price falls to/below
--tp; stop loss fires when price rises to/above--sl.
Flags:
| Flag | Description | |
|---|---|---|
--tp <price> | Take-profit trigger price (at least one of --tp/--sl required) | |
--sl <price> | Stop-loss trigger price | |
--tp-limit <price> | Limit price for the take-profit leg (market on trigger when omitted) | |
--sl-limit <price> | Limit price for the stop-loss leg (market on trigger when omitted) | |
--qty <amount> | Size in base currency — required; --quote is not accepted for TP/SL orders |
Behavior:
--time-in-forceand--post-onlyare rejected with TP/SL orders.- The order appears in
revx order openwith typetpsl; the Conditions column showsTP <price>/SL <price>. - If both legs are set, the first trigger wins and the other is discarded.
- Cancel with the usual
revx order cancel <order-id>.
Replace (Modify) Orders
Updates an existing open order in place. Same URL as cancel, but with PUT. Works for limit, conditional (stop), and take-profit/stop-loss orders.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 93 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/revx-trading/SKILL.md
Popularity
- Repository stars
- 64
- Repository forks
- 15
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/revolut-engineering/revolut-x-api/revx-trading)