Skip to main content
POST
Commit a trade plan for execution

Authorizations

X-Kairos-Partner-Id
string
header
required

Wallet API partner id, issued by Kairos together with the partner's base URL. Identifies the partner (tenant) on every /v3 call; sent instead of an API key. Letters, digits and ._:-, at most 64 characters, case-insensitive. A partner id issued for an individual account cannot be sent this way — that account sends its API key triple instead.

Authorization
string
header
required

Wallet sign-in token: SIWE <token>, where <token> is result.token from a login action (exactly one space after SIWE). Proves the wallet on reads of its orders and positions, and on trade plans, fee settlements and on-chain intents. The token is bound to the partner and the environment that issued it and lasts 24 hours; run a new login action to renew it.

Path Parameters

id
string<uuid>
required

Trade plan id.

Body

application/json

Body of /answers and /execute.

planHash
string
required

Must equal the plan's planHash.

answers
object[]
required
Maximum array length: 32

One answer, tagged by kind. Only signature answers are accepted; transaction answers are refused.

Response

The committed plan (execution.committed: true).

A trade plan. Statuses: needs_signatures → ready_to_execute → (/execute) funding_pending → trade_pending → completed, with reconciling while an outcome is being confirmed. Terminal: completed, expired, failed, funded_trade_failed, funded_trade_expired.

audience and tradeExecutionRegion are opaque values signed into the plan — do not interpret or change them.

contractVersion
integer
required
id
string<uuid>
required
planHash
string
required

Hash of the plan's terms; every answer must echo it.

revision
string
required

Increases on every stored change ("0" at prepare).

wallet
string
required

The signing wallet, lowercase.

partnerId
string
required
audience
string
required

Opaque signed field.

interactionMode
enum<string>
required
Available options:
single_batch,
allow_followup
submission
object
required

Who submits each part. Defaults to Kairos for both. trade accepts only kairos.

status
enum<string>
required
Available options:
needs_signatures,
ready_to_execute,
funding_pending,
trade_pending,
reconciling,
completed,
expired,
failed,
funded_trade_failed,
funded_trade_expired
venue
enum<string>
required

Venue id. predict.fun is accepted as an input alias of predictfun.

Available options:
polymarket,
predictfun,
hyperliquid
tradeExecutionRegion
string
required

Opaque signed field.

order
object
required

The order. Decimals must be canonical ("0.5", not "0.50"; "1", not "1.0"). size must match the venue's share lot exactly. Hyperliquid: whole-share size, at most 5 price decimals, GTC/FAK/IOC only. In a response this is the effective order — check it before signing: outcome is canonical and on Predict.fun a GTC order may come back as GTD with expiresAt set.

tradingWallet
string
required

Where the collateral must sit — Polymarket's trading wallet, or the wallet itself on Predict.fun and Hyperliquid.

tradePayloadDigest
string
required

Signing digest of the trade request.

tradeBudget
object
required

The collateral ceiling the wallet authorizes. Raw amounts are integer strings in collateral base units.

funding
object | null
required

The funding quote. Raw amounts are integer strings in base units.

createdAt
string<date-time>
required
executeBefore
string<date-time>
required

Deadline for answers and /execute — funding.fundingSubmitBefore when funded, else tradeSubmitBefore.

tradeSubmitBefore
string<date-time>
required
requests
object[]
required
Required array length: 2 - 32 elements
execution
object
required

Progress of a committed plan.

error
object | null
required

Why a plan is in flight or stopped (returned with HTTP 200).

nextAction is reconcile (keep polling) or inspect_funds (terminal: check where the collateral is — bridged funds stay in tradingWallet).

ctfDependencies
object[]