Orders

Build pinned unsigned on-chain transactions for self-signing (step 1 of 2)

The on-chain counterpart to POST /v2/orders/intent, for the operations an order cannot do off-chain: one-time approvals, redemptions of resolved positions, CTF split/merge, and unwrapping wrapped collateral. Kairos builds the exact calldata, pins it under a single-use payload_id (300 s TTL), and hands you the EIP-155 signing digest for each transaction. You sign with your own EOA and you pay the gas; Kairos only broadcasts what you signed via POST /v2/onchain/submit. Polygon / Polymarket only. chain_id is pinned to 137; there is no provider field. No RPC at build time. You supply nonce and gas_price_wei; the server does not fetch a nonce, quote gas, or preflight your balance. A stale nonce or an under-priced transaction surfaces at broadcast, not here. Multi-leg. op=approvals returns several transactions; sign each signing_digest_hex raw (no EIP-191 prefix) and submit the signatures in the same order. Auth & scope. Requires trade:execute for polymarket AND the User.executionFastlaneEnabled allowlist — the same gate as the order lane. owner_address must be a wallet registered to the authenticated caller. There is no service-token, admission, circuit-breaker or rate-limit gate on this route.

post/v2/onchain/intent

Request

  • Base URL
    https://execution.kairos.trade
  • Auth
    API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret

Request body

op'approvals' | 'redeem' | 'split' | 'merge' | 'unwrap_wcol' required

Which on-chain operation to build. approvals builds the one-time collateral + CTF approvals; redeem claims a resolved position; split/merge convert between collateral and a complete outcome-token set; unwrap_wcol unwraps wrapped collateral.

owner_addressstring required

The EOA that will sign and broadcast. Must be a wallet registered to the authenticated caller.

condition_idstring nullable

CTF conditionId. Required for redeem, split and merge.

neg_riskboolean nullable

Whether the market is a neg-risk market (selects the adapter contract).

collateral_addressstring nullable
amountstring nullable

Amount in wei, decimal string. Required for split and merge; must be > 0.

nonceinteger required

The signing EOA's next transaction nonce. Caller-supplied — the server never queries the chain for it.

gas_price_weistring required

Gas price in wei, decimal string. Must be > 0. Caller-supplied.

gas_limitinteger nullable
wcol_amountstring nullable

Amount in wei, decimal string. Required for unwrap_wcol; must be > 0.

Example request

{
  "op": "redeem"
}

Response

Pinned unsigned transactions plus the digests to sign.

payload_idstring uuid required

Single-use handle. Pass back to POST /v2/onchain/submit.

expires_at_usinteger required

Wall-clock expiry, UNIX microseconds. TTL is 300 s here (longer than the 60 s order-intent TTL, because signing several transactions on a hardware wallet takes longer).

requires_followupstring nullable

Reserved. Always absent on a newly-created intent.

Example response

{
  "transactions": [
    {
      "chain_id": 137
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.