TRADEHUBTESTNET

All tools

execute_previewed_order

Execute a previewed order · changes money or positions: confirm first, idempotent · scopes: trade:propose

Execute a preview from preview_perp_order: re-checked at a fresh price, then sent to the exchange with its stop-loss placed there. Use only after a successful preview. Not for new or changed orders (preview again). If a person must approve (propose level, or no trade:execute scope) it waits; wait_seconds (0-30) holds the call open for the decision. Inputs: preview_id, client_order_id (idempotency key: repeating it returns the first result). A fill cannot be undone; the remedy is close_perp_position_reduce_only. Next: get_order_request_status(request_id) while pending.

Call it

MCP tools/call

{"name": "execute_previewed_order", "arguments": {"preview_id": "pv_\u2026", "client_order_id": "my-order-1"}}

REST

POST /v1/orders
{"preview_id": "pv_\u2026", "client_order_id": "my-order-1"}

Inputs

NameMeaning (* required)
preview_id *From preview_perp_order, within 30 seconds
client_order_id *Your idempotency key, unique per agent; repeating it returns the first result instead of a second order
wait_secondsIf the order needs a person's approval, wait up to this long for the decision before returning

Returns

FieldMeaning and unit
okFalse when rejected or failed
request_idOrder request id; get_order_request_status(request_id) follows it
statuspending_approval, armed (a trigger entry waiting for its price), executed, rejected, failed, expired, declined, cancelled, or executing (TradeHub has not confirmed the outcome yet: check get_order_request_status)
venueVenue name
order_idVenue order id of the fill
sl_oidVenue order id of the protective stop
fill_priceAverage fill, USD per coin
filled_sizeFilled size, in the base coin (e.g. BTC), not USD
approval_expires_atWhile pending: when the approval request lapses, ISO 8601 UTC
errorWhy it was rejected or failed
checksChecks run at execution
receiptSigned receipt (compact JWS, EdDSA) once executed: request, checks, preview price, fill, slippage, order ids, delegation. Verify with /.well-known/tradehub-receipts.jwks
take_profitsset_take_profit_levels: the take-profits now on the exchange
trigger_pricestatus armed: opens at market when the mark reaches this, USD per coin
trigger_expires_atstatus armed: when it lapses unless reached, ISO 8601 UTC
feeOnce executed: the trading fee, estimated at once and replaced by the amount the exchange charged once its fill records show it

Rejections: error codes, each with what to do.

TradeHub never asks for withdrawal permissions.