Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release.
Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.
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.
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.
An on-chain intent with its two signing requests, both eth_signTypedData_v4 by terms.signer on Polygon (params[1] is a JSON string — pass it unchanged):
nativeRequest — the deposit wallet's Batch authorization over terms.batch. Send it to Kairos when submissionOwner is kairos; keep it for your own submission when client.
Signatures must be plain 65-byte ECDSA (low-s) from the owner key; smart-account signatures are refused.
Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string
{
"error": "sign-in token has expired; run a login action"
}
{
"error": "API key missing trade:read scope"
}
{
"error": "on-chain intent not found"
}
{
"error": "unknown or expired action"
}
{
"error": "rate limit exceeded for this endpoint; retry later"
}
{
"error": "internal error"
}
{
"error": "unknown or expired action"
}
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Kairos","colors":{"primary":"#807dfe","light":"#6d6ae0","dark":"#a5a3ff"},"logo":{"light":"https://mintcdn.com/kairos-c5456474/JzYk92-enXUuMl0B/logo/kairos-wing.png?fit=max\u0026auto=format\u0026n=JzYk92-enXUuMl0B\u0026q=85\u0026s=c7c397bb87847c7f0e27019d68594bff","dark":"https://mintcdn.com/kairos-c5456474/JzYk92-enXUuMl0B/logo/wordmark.png?fit=max\u0026auto=format\u0026n=JzYk92-enXUuMl0B\u0026q=85\u0026s=8f2796ccf6273359a7ad0713bc86686d"},"favicon":"https://mintcdn.com/kairos-c5456474/JzYk92-enXUuMl0B/logo/kairos-wing.png?fit=max\u0026auto=format\u0026n=JzYk92-enXUuMl0B\u0026q=85\u0026s=c7c397bb87847c7f0e27019d68594bff","appearance":{"default":"dark"},"background":{"color":{"light":"#ffffff","dark":"#0a0a0f"}},"navbar":{"primary":{"type":"button","label":"Launch App","href":"https://app.kairos.trade"}},"contextual":{"options":["copy","view","download-spec","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kairos-c5456474","hasAudioNarration":false,"actualSubdomain":"kairos-c5456474","customDomains":["docs.kairos.trade"],"gitSource":{"type":"github","owner":"kairoslive","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aead0641411fefa89136024","collectionId":"4b502bda-1c32-4823-b83c-8b1fef053274","liveDeploymentHistoryId":"6aead0641411fefa89136024","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aead0641411fefa89136024","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":139},{"language":"default","tag":"Data API","count":77},{"language":"default","tag":"Execution API","count":53},{"language":"default","tag":"Partner API","count":36},{"language":"default","tag":"Trading API","count":27},{"language":"default","tag":"Markets","count":20},{"language":"default","tag":"Sports","count":20},{"language":"default","tag":"Endpoints","count":19},{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"Market Data","count":17}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent","slug":"/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent","pageMetadata":{"title":"Read an on-chain intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nReturns the intent and its signing requests. Poll until `intent.status` is `confirmed`; `intent.proof` then holds the verified transaction. A committed intent keeps being watched, including after `executeBefore`; an uncommitted one is not. A batch not mined by `executeBefore` (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/onchain-intents/{id}","href":"/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Preview: available on staging (\", _jsx(_components.code, {\n children: \"https://staging-execution.kairos.trade\"\n }), \"); production returns \", _jsx(_components.code, {\n children: \"503\"\n }), \" until release.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Returns the intent and its signing requests. Poll until \", _jsx(_components.code, {\n children: \"intent.status\"\n }), \" is \", _jsx(_components.code, {\n children: \"confirmed\"\n }), \"; \", _jsx(_components.code, {\n children: \"intent.proof\"\n }), \" then holds the verified transaction. A committed intent keeps being watched, including after \", _jsx(_components.code, {\n children: \"executeBefore\"\n }), \"; an uncommitted one is not. A batch not mined by \", _jsx(_components.code, {\n children: \"executeBefore\"\n }), \" (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Read an on-chain intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nReturns the intent and its signing requests. Poll until `intent.status` is `confirmed`; `intent.proof` then holds the verified transaction. A committed intent keeps being watched, including after `executeBefore`; an uncommitted one is not. A batch not mined by `executeBefore` (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/onchain-intents/{id}","href":"/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getOnchainIntent","summary":"Read an on-chain intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nReturns the intent and its signing requests. Poll until `intent.status` is `confirmed`; `intent.proof` then holds the verified transaction. A committed intent keeps being watched, including after `executeBefore`; an uncommitted one is not. A batch not mined by `executeBefore` (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.","tags":["On-chain intents (preview)"],"x-kairos-status":"preview","x-kairos-auth":"partner id or API key triple, plus wallet sign-in (Authorization SIWE) or an API key that owns the wallet","x-kairos-scope":"trade:read for API-key callers (plus trade:execute when the key is also the tenant)","x-kairos-rate-limit":"120 requests/minute per client IP per route; 1000/minute when X-Client-Id is sent","security":["69c4b571-c413-4939-96aa-f963d92ac2bf","3861b2b4-ba45-4a90-aa5f-c32fa28c2c87","a086c724-faed-4cfc-ba1f-0d46f30b5ec2","633fa40b-a8f9-400d-b4f7-f58b848ab454","bcd0e421-2c63-46c2-a8e0-5b2bb2ef88a8"],"parameters":["e6ea08e2-e6cb-40c0-8705-6e8718af12f9"],"responses":{"200":"b855f7a0-d384-42d3-953e-a7d0cf0a4400","400":"8300acb9-f2dd-4dcc-8421-b77ccce2b2db","401":"c8d61f3c-64c0-4d9e-b3e1-b5cfe283ade6","403":"10205932-ad51-41f4-bb61-919be843346b","404":"46580cc8-d275-4b68-99fc-1d9b6e301481","409":"36c953a9-a348-4b8c-bdda-b03caf24fc5f","429":"1fa6a984-1a9f-45ed-ab46-e993987ec956","500":"b8d0e209-065e-4070-bb5f-e51cdb734f92","503":"0fcd5914-f605-46d3-872e-8042d995f1b8"},"method":"get","type":"path","servers":["330d272c-627a-4ff5-ad01-0263b300ce7a","83635983-3d27-4bb6-bc26-42ecc043c06c"],"path":"/v3/onchain-intents/{id}","baseUrlOptions":["https://execution.kairos.trade","https://staging-execution.kairos.trade"],"title":"Read an on-chain intent","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e6ea08e2-e6cb-40c0-8705-6e8718af12f9":{"name":"id","in":"path","required":true,"description":"On-chain intent id (`intent.terms.id`).","schema":{"type":"string","format":"uuid","isRequired":true,"description":"On-chain intent id (`intent.terms.id`).","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"b855f7a0-d384-42d3-953e-a7d0cf0a4400":{"description":"The intent.","content":{"application/json":{"schema":{"type":"object","description":"An on-chain intent with its two signing requests, both `eth_signTypedData_v4` by `terms.signer` on Polygon (`params[1]` is a JSON string — pass it unchanged):\n- `consentRequest` — `KairosOnchainIntent` typed data binding `signer`, `partnerId`, `audience`, `intentId`, `intentHash`, `executeBefore`. Always required.\n- `nativeRequest` — the deposit wallet's `Batch` authorization over `terms.batch`. Send it to Kairos when `submissionOwner` is `kairos`; keep it for your own submission when `client`.\n\nSignatures must be plain 65-byte ECDSA (low-s) from the owner key; smart-account signatures are refused.","required":["intent","consentRequest","nativeRequest","submission"],"properties":{"intent":{"type":"object","required":["terms","intentHash","status","committed","dispatchClaimed","transactionHash","proof"],"properties":{"terms":{"type":"object","description":"The immutable terms; `intentHash` is their hash. `audience`, `executionRegion` and `submissionEndpoint` are opaque values pinned into the signed terms — do not change them.","required":["contractVersion","id","partnerId","audience","executionRegion","signer","account","chainId","market","operation","submissionOwner","submissionEndpoint","batch","effects","dependencies","maxWalletGasCostRaw","createdAt","executeBefore"],"properties":{"contractVersion":{"type":"integer","const":1,"isRequired":true,"uniqueKey":"intent.terms.contractVersion","typeLabel":"integer"},"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"intent.terms.id","typeLabel":"string\u003cuuid>"},"partnerId":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.partnerId","typeLabel":"string"},"audience":{"type":"string","description":"Opaque signed field.","isRequired":true,"uniqueKey":"intent.terms.audience","typeLabel":"string"},"executionRegion":{"type":"string","description":"Opaque signed field.","isRequired":true,"uniqueKey":"intent.terms.executionRegion","typeLabel":"string"},"signer":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.signer","typeLabel":"string"},"account":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.account","typeLabel":"string"},"chainId":{"type":"string","const":"137","isRequired":true,"uniqueKey":"intent.terms.chainId","typeLabel":"string"},"market":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.market","typeLabel":"string"},"operation":{"type":"string","enum":["split","merge","redeem"],"isRequired":true,"uniqueKey":"intent.terms.operation","typeLabel":"enum\u003cstring>"},"submissionOwner":{"type":"string","enum":["kairos","client"],"isRequired":true,"uniqueKey":"intent.terms.submissionOwner","typeLabel":"enum\u003cstring>"},"submissionEndpoint":{"type":"string","description":"Opaque pinned submission URL. Equals `submission.endpoint`.","isRequired":true,"uniqueKey":"intent.terms.submissionEndpoint","typeLabel":"string"},"batch":{"type":"object","description":"The deposit-wallet batch the owner signs. Calls are `[approval, operation]`.","required":["factory","nonce","deadline","calls"],"properties":{"factory":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.batch.factory","typeLabel":"string"},"nonce":{"type":"string","description":"Decimal.","isRequired":true,"uniqueKey":"intent.terms.batch.nonce","typeLabel":"string"},"deadline":{"type":"string","format":"date-time","description":"Equals `executeBefore`.","isRequired":true,"uniqueKey":"intent.terms.batch.deadline","typeLabel":"string\u003cdate-time>"},"calls":{"type":"array","minItems":1,"maxItems":16,"items":{"type":"object","required":["target","value","data"],"properties":{"target":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.batch.calls.items.[INDEX].target","typeLabel":"string"},"value":{"type":"string","example":"0","isRequired":true,"uniqueKey":"intent.terms.batch.calls.items.[INDEX].value","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.batch.calls.items.[INDEX].data","typeLabel":"string"}},"uniqueKey":"intent.terms.batch.calls.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"intent.terms.batch.calls","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"intent.terms.batch","typeLabel":"object"},"effects":{"type":"array","description":"Exactly what the batch moves on the deposit wallet — the receipt must match.","items":{"type":"object","description":"An exact gross token movement on the deposit wallet.","required":["token","direction","amountRaw"],"properties":{"token":{"oneOf":[{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract"],"properties":{"kind":{"type":"string","const":"erc20","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.0.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.0.contract","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.0","typeLabel":"object"},{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract","tokenId"],"properties":{"kind":{"type":"string","const":"erc1155","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.1.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.1.contract","typeLabel":"string"},"tokenId":{"type":"string","description":"Decimal token id.","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.1.tokenId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].token","typeLabel":"object"},"direction":{"type":"string","enum":["debit","credit"],"isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"amountRaw":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.effects.items.[INDEX].amountRaw","typeLabel":"string"}},"uniqueKey":"intent.terms.effects.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"intent.terms.effects","typeLabel":"object[]"},"dependencies":{"type":"array","items":{"type":"object","description":"A confirmed-before-me intent, pinned by hash.","required":["intentId","intentHash","account","chainId","effects"],"properties":{"intentId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].intentId","typeLabel":"string\u003cuuid>"},"intentHash":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].intentHash","typeLabel":"string"},"account":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].account","typeLabel":"string"},"chainId":{"type":"string","example":"137","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].chainId","typeLabel":"string"},"effects":{"type":"array","items":{"type":"object","description":"An exact gross token movement on the deposit wallet.","required":["token","direction","amountRaw"],"properties":{"token":{"oneOf":[{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract"],"properties":{"kind":{"type":"string","const":"erc20","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.0.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.0.contract","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.0","typeLabel":"object"},{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract","tokenId"],"properties":{"kind":{"type":"string","const":"erc1155","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.1.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.1.contract","typeLabel":"string"},"tokenId":{"type":"string","description":"Decimal token id.","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.1.tokenId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].token","typeLabel":"object"},"direction":{"type":"string","enum":["debit","credit"],"isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"amountRaw":{"type":"string","isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX].amountRaw","typeLabel":"string"}},"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"intent.terms.dependencies.items.[INDEX].effects","typeLabel":"object[]"}},"uniqueKey":"intent.terms.dependencies.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"intent.terms.dependencies","typeLabel":"object[]"},"maxWalletGasCostRaw":{"type":"string","const":"0","description":"The wallet pays no gas.","isRequired":true,"uniqueKey":"intent.terms.maxWalletGasCostRaw","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"intent.terms.createdAt","typeLabel":"string\u003cdate-time>"},"executeBefore":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"intent.terms.executeBefore","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"intent.terms","typeLabel":"object"},"intentHash":{"type":"string","isRequired":true,"uniqueKey":"intent.intentHash","typeLabel":"string"},"status":{"type":"string","enum":["needs_signatures","awaiting_client","ready","reconciling","confirmed"],"description":"`needs_signatures` → (`/execute`) `ready` (Kairos submits) or `awaiting_client` (you submit) → `reconciling` → `confirmed` (the only terminal status). A reverted transaction returns the intent to `reconciling`; the signed batch stays valid until `executeBefore`. There is no expired status: an intent whose batch was not mined by `executeBefore` stays where it is.","isRequired":true,"uniqueKey":"intent.status","typeLabel":"enum\u003cstring>"},"committed":{"type":"boolean","isRequired":true,"uniqueKey":"intent.committed","typeLabel":"boolean"},"dispatchClaimed":{"type":"boolean","description":"Kairos has submitted (or is submitting) the batch.","isRequired":true,"uniqueKey":"intent.dispatchClaimed","typeLabel":"boolean"},"transactionHash":{"oneOf":[{"type":"string","description":"The candidate transaction, once known (a report or Kairos's own submission); verified only when `proof` is set.","isRequired":true,"uniqueKey":"intent.transactionHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"The candidate transaction, once known (a report or Kairos's own submission); verified only when `proof` is set.","isRequired":true,"uniqueKey":"intent.transactionHash.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"intent.transactionHash","typeLabel":"string | null"},"proof":{"oneOf":[{"type":"object","description":"The verified, finalized transaction.","required":["transactionHash","blockHash","blockNumber","intentHash","effects"],"properties":{"transactionHash":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.transactionHash","typeLabel":"string"},"blockHash":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.blockHash","typeLabel":"string"},"blockNumber":{"type":"string","description":"Decimal.","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.blockNumber","typeLabel":"string"},"intentHash":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.intentHash","typeLabel":"string"},"effects":{"type":"array","items":{"type":"object","description":"An exact gross token movement on the deposit wallet.","required":["token","direction","amountRaw"],"properties":{"token":{"oneOf":[{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract"],"properties":{"kind":{"type":"string","const":"erc20","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.0.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.0.contract","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.0","typeLabel":"object"},{"type":"object","description":"A token, tagged by `kind`.","required":["kind","contract","tokenId"],"properties":{"kind":{"type":"string","const":"erc1155","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.1.kind","typeLabel":"string"},"contract":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.1.contract","typeLabel":"string"},"tokenId":{"type":"string","description":"Decimal token id.","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.1.tokenId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].token","typeLabel":"object"},"direction":{"type":"string","enum":["debit","credit"],"isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"amountRaw":{"type":"string","isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX].amountRaw","typeLabel":"string"}},"uniqueKey":"intent.proof.oneOf.0.effects.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"intent.proof.oneOf.0.effects","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"intent.proof.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"intent.proof.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"intent.proof","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"intent","typeLabel":"object"},"consentRequest":{"type":"object","description":"An EIP-1193 request to run through the wallet's provider exactly as given (`provider.request({method, params})`).\n- `eth_signTypedData_v4`: `params` = `[address, typedData]` — `typedData` is a **JSON string**; pass it unchanged.\n- `personal_sign`: `params` = `[hexMessage, address]`.\n- `wallet_sendCalls` (EIP-5792): `params` = `[{version, chainId, from, atomicRequired, calls}]`; the wallet pays gas.\n- `eth_sendTransaction`: `params` = `[{from, to, data, value, chainId?}]`; the wallet pays gas.","required":["method","params"],"properties":{"method":{"type":"string","enum":["eth_signTypedData_v4","personal_sign","wallet_sendCalls","eth_sendTransaction"],"isRequired":true,"uniqueKey":"consentRequest.method","typeLabel":"enum\u003cstring>"},"params":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"consentRequest.params.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"consentRequest.params","typeLabel":"any[]"}},"example":{"method":"personal_sign","params":["0x6b6169726f732e7472616465207761…","0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"isRequired":true,"uniqueKey":"consentRequest","typeLabel":"object"},"nativeRequest":{"type":"object","description":"An EIP-1193 request to run through the wallet's provider exactly as given (`provider.request({method, params})`).\n- `eth_signTypedData_v4`: `params` = `[address, typedData]` — `typedData` is a **JSON string**; pass it unchanged.\n- `personal_sign`: `params` = `[hexMessage, address]`.\n- `wallet_sendCalls` (EIP-5792): `params` = `[{version, chainId, from, atomicRequired, calls}]`; the wallet pays gas.\n- `eth_sendTransaction`: `params` = `[{from, to, data, value, chainId?}]`; the wallet pays gas.","required":["method","params"],"properties":{"method":{"type":"string","enum":["eth_signTypedData_v4","personal_sign","wallet_sendCalls","eth_sendTransaction"],"isRequired":true,"uniqueKey":"nativeRequest.method","typeLabel":"enum\u003cstring>"},"params":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"nativeRequest.params.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"nativeRequest.params","typeLabel":"any[]"}},"example":{"method":"personal_sign","params":["0x6b6169726f732e7472616465207761…","0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"isRequired":true,"uniqueKey":"nativeRequest","typeLabel":"object"},"submission":{"type":"object","description":"For `submissionOwner: client`: add `\"signature\": \u003cnative signature>` to `body` and POST it to `endpoint`.","required":["endpoint","method","kind","body"],"properties":{"endpoint":{"type":"string","isRequired":true,"uniqueKey":"submission.endpoint","typeLabel":"string"},"method":{"type":"string","const":"POST","isRequired":true,"uniqueKey":"submission.method","typeLabel":"string"},"kind":{"type":"string","const":"deposit_wallet_batch","isRequired":true,"uniqueKey":"submission.kind","typeLabel":"string"},"body":{"type":"object","description":"`{type: \"WALLET\", from, to, nonce, depositWalletParams: {depositWallet, deadline, calls}}` — no signature.","additionalProperties":true,"isRequired":true,"uniqueKey":"submission.body","typeLabel":"object"}},"isRequired":true,"uniqueKey":"submission","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"intent":{"terms":{"contractVersion":1,"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","partnerId":"\u003cstring>","audience":"\u003cstring>","executionRegion":"\u003cstring>","signer":"\u003cstring>","account":"\u003cstring>","chainId":"137","market":"\u003cstring>","operation":"split","submissionOwner":"kairos","submissionEndpoint":"\u003cstring>","batch":{"factory":"\u003cstring>","nonce":"\u003cstring>","deadline":"2023-11-07T05:31:56Z","calls":[{"target":"\u003cstring>","value":"0","data":"\u003cstring>"}]},"effects":[{"token":{"kind":"erc20","contract":"\u003cstring>"},"direction":"debit","amountRaw":"\u003cstring>"}],"dependencies":[{"intentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","intentHash":"\u003cstring>","account":"\u003cstring>","chainId":"137","effects":[{"token":{"kind":"erc20","contract":"\u003cstring>"},"direction":"debit","amountRaw":"\u003cstring>"}]}],"maxWalletGasCostRaw":"0","createdAt":"2023-11-07T05:31:56Z","executeBefore":"2023-11-07T05:31:56Z"},"intentHash":"\u003cstring>","status":"needs_signatures","committed":true,"dispatchClaimed":true,"transactionHash":"\u003cstring>","proof":{"transactionHash":"\u003cstring>","blockHash":"\u003cstring>","blockNumber":"\u003cstring>","intentHash":"\u003cstring>","effects":[{"token":{"kind":"erc20","contract":"\u003cstring>"},"direction":"debit","amountRaw":"\u003cstring>"}]}},"consentRequest":{"method":"personal_sign","params":["0x6b6169726f732e7472616465207761…","0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"nativeRequest":{"method":"personal_sign","params":["0x6b6169726f732e7472616465207761…","0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"submission":{"endpoint":"\u003cstring>","method":"POST","kind":"deposit_wallet_batch","body":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"8300acb9-f2dd-4dcc-8421-b77ccce2b2db":{"description":"Plain text — `{id}` is not a UUID.","content":{"text/plain":{"schema":{"type":"string","description":"A plain-text (non-JSON) rejection from request parsing — malformed JSON, a body of the wrong shape, a missing `Content-Type`, a malformed path id or query. Do not JSON-parse it.","example":"Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string"}},"exampleType":"generated"}},"exampleType":"generated"},"c8d61f3c-64c0-4d9e-b3e1-b5cfe283ade6":{"description":"Tenant failures (`send X-Kairos-Partner-Id or your API key (X-Client-Id, X-Api-Key, X-Api-Secret)`, `invalid API key`), or the wallet proof failed:\n- `malformed sign-in token` — not `SIWE \u003ctoken>` as issued, over 4096 bytes, or an invalid lifetime\n- `sign-in token was issued for another partner or node` — issued for another partner or environment\n- `sign-in token has expired; run a login action`\n- `sign-in token signature is not from its wallet`\n- `Missing authorization` — no `Authorization` header and no API key to prove the wallet; `Invalid API credentials`, `API credential has been revoked` or `Invalid token` when the proving credential is not `SIWE` and fails","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"example":{"error":"sign-in token has expired; run a login action"},"examples":{"Example":{"title":"Example","value":{"error":"sign-in token has expired; run a login action"}}},"exampleType":"examples"}},"exampleType":"examples"},"10205932-ad51-41f4-bb61-919be843346b":{"description":"`API key missing trade:read scope` (reads) or `API key missing trade:execute scope` (writes) when an API key is the caller — `trade:execute` does not imply `trade:read`; or a tenant refusal: `unknown partner id`, `this partner id is used with its API key; send the key instead of X-Kairos-Partner-Id`, `this API key lacks the trade:execute scope`, `the wallet API is not enabled for this account`.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"example":{"error":"API key missing trade:read scope"},"examples":{"Example":{"title":"Example","value":{"error":"API key missing trade:read scope"}}},"exampleType":"examples"}},"exampleType":"examples"},"46580cc8-d275-4b68-99fc-1d9b6e301481":{"description":"`on-chain intent not found` — unknown, or not visible to this partner and wallet.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"example":{"error":"on-chain intent not found"},"examples":{"Example":{"title":"Example","value":{"error":"on-chain intent not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"36c953a9-a348-4b8c-bdda-b03caf24fc5f":{"description":"`this wallet is not set up yet; run a setup action first` — the signer's account is no longer active.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"unknown or expired action"}}},"exampleType":"generated"}},"exampleType":"generated"},"1fa6a984-1a9f-45ed-ab46-e993987ec956":{"description":"`rate limit exceeded for this endpoint; retry later`. The default limit is 120 requests per minute per client IP per path (1000 when `X-Client-Id` is sent), over a sliding 60 s window; `GET` and `POST` on one path share it. No `Retry-After` header is sent.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"example":{"error":"rate limit exceeded for this endpoint; retry later"},"examples":{"Example":{"title":"Example","value":{"error":"rate limit exceeded for this endpoint; retry later"}}},"exampleType":"examples"}},"exampleType":"examples"},"b8d0e209-065e-4070-bb5f-e51cdb734f92":{"description":"`internal error`.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"example":{"error":"internal error"},"examples":{"Example":{"title":"Example","value":{"error":"internal error"}}},"exampleType":"examples"}},"exampleType":"examples"},"0fcd5914-f605-46d3-872e-8042d995f1b8":{"description":"Production: `trade plans are disabled` until this lane is released (the trade-plan reads and writes other than prepare can return `500 internal error` there instead). Staging: a dependency is unavailable, `partner registry unavailable; retry shortly`, or `rate limiter unavailable`.","content":{"application/json":{"schema":{"type":"object","description":"Wallet API error body. `error` is a human-readable message; `code` is set on a few structured refusals (e.g. `CLIENT_ORDER_ID_CONFLICT`, `POLYMARKET_V2_TRADING_DISABLED`, `SIGNATURE_EXPIRED`); `errorCode` mirrors `code` where the same refusal can also surface on a failed step. Most `/v3` errors carry only `error`. Framework rejections (malformed JSON, wrong shape, missing content type) are plain text, not this body.","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable code, present on structured refusals only.","uniqueKey":"code","typeLabel":"string"},"errorCode":{"type":"string","description":"Same as `code`; present where the refusal can also appear as a failed step's `errorCode`.","uniqueKey":"errorCode","typeLabel":"string"}},"example":{"error":"unknown or expired action"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"unknown or expired action"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"69c4b571-c413-4939-96aa-f963d92ac2bf":{"walletPartnerId":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"walletSignIn":{"type":"apiKey","in":"header","name":"Authorization","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","scopes":[],"schemeName":"walletSignIn"}},"3861b2b4-ba45-4a90-aa5f-c32fa28c2c87":{"apiKeyClientId":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"apiKeyKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"apiKeySecret":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"},"walletSignIn":{"type":"apiKey","in":"header","name":"Authorization","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","scopes":[],"schemeName":"walletSignIn"}},"a086c724-faed-4cfc-ba1f-0d46f30b5ec2":{"apiKeyClientId":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"apiKeyKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"apiKeySecret":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"}},"633fa40b-a8f9-400d-b4f7-f58b848ab454":{"walletPartnerId":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"apiKeyClientId":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"apiKeyKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"apiKeySecret":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"}},"bcd0e421-2c63-46c2-a8e0-5b2bb2ef88a8":{"walletPartnerId":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"First-party Kairos session JWT (web app sessions). Not issued to API consumers.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"330d272c-627a-4ff5-ad01-0263b300ce7a":{"url":"https://execution.kairos.trade","description":"Production"},"83635983-3d27-4bb6-bc26-42ecc043c06c":{"url":"https://staging-execution.kairos.trade","description":"Staging"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"schema":{"title":"X-Kairos-Partner-Id","type":"string","description":"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.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"walletPartnerId","name":"X-Kairos-Partner-Id"},{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","scopes":[],"schemeName":"walletSignIn"},"schema":{"title":"Authorization","type":"string","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"walletSignIn","name":"Authorization"}],"title":"walletPartnerId \u0026 walletSignIn"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"schema":{"title":"X-Client-Id","type":"string","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyClientId","name":"X-Client-Id"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"schema":{"title":"X-Api-Key","type":"string","description":"64-char hex API key.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyKey","name":"X-Api-Key"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"},"schema":{"title":"X-Api-Secret","type":"string","description":"64-char hex API secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeySecret","name":"X-Api-Secret"},{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","scopes":[],"schemeName":"walletSignIn"},"schema":{"title":"Authorization","type":"string","description":"Wallet sign-in token: `SIWE \u003ctoken>`, where `\u003ctoken>` 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.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"walletSignIn","name":"Authorization"}],"title":"apiKeyClientId \u0026 apiKeyKey \u0026 apiKeySecret \u0026 walletSignIn"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"schema":{"title":"X-Client-Id","type":"string","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyClientId","name":"X-Client-Id"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"schema":{"title":"X-Api-Key","type":"string","description":"64-char hex API key.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyKey","name":"X-Api-Key"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"},"schema":{"title":"X-Api-Secret","type":"string","description":"64-char hex API secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeySecret","name":"X-Api-Secret"}],"title":"apiKeyClientId \u0026 apiKeyKey \u0026 apiKeySecret"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"schema":{"title":"X-Kairos-Partner-Id","type":"string","description":"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.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"walletPartnerId","name":"X-Kairos-Partner-Id"},{"scheme":{"type":"apiKey","in":"header","name":"X-Client-Id","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","scopes":[],"schemeName":"apiKeyClientId"},"schema":{"title":"X-Client-Id","type":"string","description":"Credential client id (`kairos_ck_...`). Must be sent together with X-Api-Key and X-Api-Secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyClientId","name":"X-Client-Id"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"64-char hex API key.","scopes":[],"schemeName":"apiKeyKey"},"schema":{"title":"X-Api-Key","type":"string","description":"64-char hex API key.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyKey","name":"X-Api-Key"},{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Secret","description":"64-char hex API secret.","scopes":[],"schemeName":"apiKeySecret"},"schema":{"title":"X-Api-Secret","type":"string","description":"64-char hex API secret.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeySecret","name":"X-Api-Secret"}],"title":"walletPartnerId \u0026 apiKeyClientId \u0026 apiKeyKey \u0026 apiKeySecret"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Kairos-Partner-Id","description":"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.","scopes":[],"schemeName":"walletPartnerId"},"schema":{"title":"X-Kairos-Partner-Id","type":"string","description":"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.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"walletPartnerId","name":"X-Kairos-Partner-Id"},{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"First-party Kairos session JWT (web app sessions). Not issued to API consumers.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"First-party Kairos session JWT (web app sessions). Not issued to API consumers.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"walletPartnerId \u0026 bearerAuth"}]},"originalFileLocation":"openapi/wallet-api.json"},"subdomain":"kairos-c5456474","siteName":"Kairos","title":"Read an on-chain intent - Kairos","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T04:21:19.692Z","originalFileLocation":"api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kairos\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Read an on-chain intent - Kairos\">\u003cmeta data-mint-head property=\"og:description\" content=\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kairos\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kairos-c5456474.mintlify.app/_mintlify/api/og/v2?division=On-chain+intents+%28preview%29\u0026amp;title=Read+an+on-chain+intent\u0026amp;description=Preview%3A+available+on+staging+%28%60https%3A%2F%2Fstaging-execution.kairos.trade%60%29%3B+production+returns+%60503%60+until+release.%0A%0AReturns+the+intent+and+its+signing+requests.+\u0026amp;theme=530643ae41273bc052a9a850\u0026amp;signature=0e1d73ec21ceacfd94d22a1a41c1d6bc0b0fa128f94780a93a6f4711963317e0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Read an on-chain intent - Kairos\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kairos-c5456474.mintlify.app/_mintlify/api/og/v2?division=On-chain+intents+%28preview%29\u0026amp;title=Read+an+on-chain+intent\u0026amp;description=Preview%3A+available+on+staging+%28%60https%3A%2F%2Fstaging-execution.kairos.trade%60%29%3B+production+returns+%60503%60+until+release.%0A%0AReturns+the+intent+and+its+signing+requests.+\u0026amp;theme=530643ae41273bc052a9a850\u0026amp;signature=0e1d73ec21ceacfd94d22a1a41c1d6bc0b0fa128f94780a93a6f4711963317e0\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kairos-c5456474/9YOcCIzMBy0Rv1b-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kairos\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#807dfe\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kairos.trade/#organization\",\"name\":\"Kairos\",\"url\":\"https://docs.kairos.trade\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kairos-c5456474/JzYk92-enXUuMl0B/logo/kairos-wing.png?fit=max\u0026auto=format\u0026n=JzYk92-enXUuMl0B\u0026q=85\u0026s=c7c397bb87847c7f0e27019d68594bff\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kairos.trade#website\",\"name\":\"Kairos\",\"url\":\"https://docs.kairos.trade\",\"publisher\":{\"@id\":\"https://docs.kairos.trade/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent#webpage\",\"url\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent\",\"name\":\"Read an on-chain intent\",\"description\":\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\",\"dateModified\":\"2026-10-29T04:21:19.692Z\",\"isPartOf\":{\"@id\":\"https://docs.kairos.trade#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.kairos.trade/api-reference/partner/actions/start-a-wallet-action-setup-order-cancel-login\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"On-chain intents (preview)\",\"item\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/prepare-a-split-merge-or-redeem-on-a-polymarket-deposit-wallet\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Read an on-chain intent\",\"item\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent#apireference\",\"headline\":\"Read an on-chain intent\",\"name\":\"Read an on-chain intent\",\"description\":\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Returns the intent and its signing requests. Poll until intent.status is confirmed; intent.proof then holds the verified transaction. A committed intent keeps being watched, including after executeBefore; an uncommitted one is not. A batch not mined by executeBefore (its on-chain deadline) can no longer land, so its intent never confirms — prepare a new one.\",\"url\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent#webpage\"},\"dateModified\":\"2026-10-29T04:21:19.692Z\",\"publisher\":{\"@id\":\"https://docs.kairos.trade/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kairos.trade#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kairos\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kairos","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Partner API","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Kairos Partner API","sidebarTitle":"Introduction","icon":"wallet","href":"/wallets/overview"},{"title":"Onboarding and go-live","sidebarTitle":"Onboarding and go-live","icon":"list-check","href":"/wallets/onboarding"},{"title":"Quickstart: your first order","sidebarTitle":"Quickstart","icon":"rocket","href":"/wallets/quickstart"},{"title":"Partner API authentication","sidebarTitle":"Authentication","icon":"key","href":"/wallets/authentication"}]},{"group":"Onboard users","icon":"user-plus","pages":[{"title":"Set up and fund a wallet","sidebarTitle":"Set up and fund a wallet","icon":"user-plus","href":"/wallets/setup"},{"title":"Venue rules","sidebarTitle":"Venue rules","icon":"building-columns","href":"/wallets/venues"}]},{"group":"Trade","icon":"arrow-right-arrow-left","pages":[{"title":"Show markets","sidebarTitle":"Show markets","icon":"chart-line","href":"/wallets/markets"},{"title":"Place and cancel orders","sidebarTitle":"Place and cancel orders","icon":"arrow-right-arrow-left","href":"/wallets/trade"},{"title":"Show orders and positions","sidebarTitle":"Show orders and positions","icon":"briefcase","href":"/wallets/portfolio"},{"title":"What the wallet signs","sidebarTitle":"What the wallet signs","icon":"signature","href":"/wallets/signing"}]},{"group":"Route and fund","icon":"route","pages":[{"title":"Routing across venues","sidebarTitle":"Routing across venues","icon":"route","href":"/wallets/routing"},{"title":"Funded trade plans","tag":"Preview","sidebarTitle":"Funded trade plans","icon":"route","href":"/wallets/trade-plans"},{"title":"Split, merge and redeem","tag":"Preview","sidebarTitle":"Split, merge, redeem","icon":"link","href":"/wallets/onchain"}]},{"group":"Partner fees","icon":"receipt","pages":[{"title":"Partner fees and settlement","tag":"Preview","sidebarTitle":"Partner fees","icon":"receipt","href":"/wallets/fees"}]},{"group":"Build","icon":"code","pages":[{"title":"TypeScript SDK","sidebarTitle":"TypeScript SDK","icon":"js","href":"/wallets/sdk"},{"title":"Without the SDK: plain HTTP","sidebarTitle":"Plain HTTP clients","icon":"terminal","href":"/wallets/http"},{"title":"Errors, limits and idempotency","sidebarTitle":"Errors and limits","icon":"book","href":"/wallets/reference"}]},{"group":"Endpoints","icon":"brackets-curly","pages":[{"group":"Actions","pages":[{"title":"Start a wallet action (setup, order, cancel, login)","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/actions","href":"/api-reference/partner/actions/start-a-wallet-action-setup-order-cancel-login"},{"title":"Read an action's current step","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/actions/{id}","href":"/api-reference/partner/actions/read-an-actions-current-step"},{"title":"Answer the current step (signature or wallet result)","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/actions/{id}","href":"/api-reference/partner/actions/answer-the-current-step-signature-or-wallet-result"}]},{"group":"Reads","pages":[{"title":"Read a wallet's readiness and balances per venue","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/wallets/{address}","href":"/api-reference/partner/reads/read-a-wallets-readiness-and-balances-per-venue"},{"title":"List a wallet's orders across venues","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/wallets/{address}/orders","href":"/api-reference/partner/reads/list-a-wallets-orders-across-venues"},{"title":"List a wallet's positions across venues","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/wallets/{address}/positions","href":"/api-reference/partner/reads/list-a-wallets-positions-across-venues"}]},{"group":"Fees (preview)","pages":[{"title":"Read a wallet's unpaid trading fees per venue","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/fees","href":"/api-reference/partner/fees-preview/read-a-wallets-unpaid-trading-fees-per-venue"},{"title":"Open a settlement for a wallet's unpaid fees on one venue","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/fees/settlements","href":"/api-reference/partner/fees-preview/open-a-settlement-for-a-wallets-unpaid-fees-on-one-venue"},{"title":"Read (and advance) a fee settlement","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/fees/settlements/{id}","href":"/api-reference/partner/fees-preview/read-and-advance-a-fee-settlement"},{"title":"Post the wallet's signature or transaction hash for a settlement","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/fees/settlements/{id}/answer","href":"/api-reference/partner/fees-preview/post-the-wallets-signature-or-transaction-hash-for-a-settlement"}]},{"group":"Trade plans (preview)","pages":[{"title":"Prepare a trade plan (one buy, optionally funded cross-chain)","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/trade-plans","href":"/api-reference/partner/trade-plans-preview/prepare-a-trade-plan-one-buy-optionally-funded-cross-chain"},{"title":"Read a trade plan","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/trade-plans/{id}","href":"/api-reference/partner/trade-plans-preview/read-a-trade-plan"},{"title":"Post signatures for a trade plan's requests","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/trade-plans/{id}/answers","href":"/api-reference/partner/trade-plans-preview/post-signatures-for-a-trade-plans-requests"},{"title":"Commit a trade plan for execution","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/trade-plans/{id}/execute","href":"/api-reference/partner/trade-plans-preview/commit-a-trade-plan-for-execution"},{"title":"Report client-submitted funding permits","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/trade-plans/{id}/reports","href":"/api-reference/partner/trade-plans-preview/report-client-submitted-funding-permits"}]},{"group":"On-chain intents (preview)","pages":[{"title":"Prepare a split, merge or redeem on a Polymarket deposit wallet","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nRuns one conditional-token operation — `split`, `merge` or `redeem` — on the wallet's Polymarket deposit wallet on Polygon. Kairos builds the exact calls and returns two typed-data requests for the owner to sign; the wallet pays **no gas**. Kairos marks the intent `confirmed` only after it verifies a finalized receipt whose token transfers equal `intent.terms.effects` exactly.\n\n**Scope.** Polymarket on Polygon (`137`), binary markets only. `redeem` needs a resolved market and an `outcome`; markets on the legacy conditional-token contract cannot be redeemed here. Each batch is `[approval, operation]`: merge and redeem leave a standing operator approval (`setApprovalForAll`) for the operating contract on the deposit wallet. The wallet must already be set up through a `setup` action.\n\n**Addresses** `wallet` and `account` must be **lowercase**; a checksummed address is refused.\n\n**Flow.** Prepare → sign `consentRequest` (and `nativeRequest` when `submissionOwner` is `kairos`) → `POST /v3/onchain-intents/{id}/execute` before `executeBefore` (at most 5 minutes out) → poll `GET /v3/onchain-intents/{id}` until `confirmed`.\n\n**Do not broadcast the batch from the wallet or the deposit wallet**: a transaction sent from either never confirms. With `submissionOwner: \"client\"` (for integrators that have arranged submission access with Kairos), POST `submission.body` plus `\"signature\": \u003cnative signature>` to `submission.endpoint`, then report the transaction hash.\n\n**Chaining.** `dependencies` lists earlier intents on the same deposit wallet (for example a split, then a merge); an intent executes only after its dependencies are `confirmed`. A trade plan can also depend on a confirmed intent through `ctfDependencies`.\n\n**Idempotency.** `Idempotency-Key` is required. The same key with the same body returns the original intent in its current state; with a different body it is `409`.","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/onchain-intents","href":"/api-reference/partner/on-chain-intents-preview/prepare-a-split-merge-or-redeem-on-a-polymarket-deposit-wallet"},{"title":"Read an on-chain intent","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json get /v3/onchain-intents/{id}","href":"/api-reference/partner/on-chain-intents-preview/read-an-on-chain-intent"},{"title":"Commit an on-chain intent with its signatures","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nCommits the intent before `executeBefore`. `consentSignature` is always required; `nativeSignature` is required when `submissionOwner` is `kairos` and must be **omitted** when it is `client`. Kairos checks every dependency is `confirmed`, checks the finalized token balances cover the debits net of the wallet's other reservations, then commits: `ready` (Kairos submits once, then `reconciling` → `confirmed`) or `awaiting_client` (you submit, see below).\n\nCalling it again after a successful commit, with valid signatures, returns the current intent.\n\n**Client submission.** POST `submission.body` with `\"signature\": \u003cnative signature>` added to `submission.endpoint`, then `POST /v3/onchain-intents/{id}/reports` with the transaction hash. Do not send the batch from the wallet or the deposit wallet.","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/onchain-intents/{id}/execute","href":"/api-reference/partner/on-chain-intents-preview/commit-an-on-chain-intent-with-its-signatures"},{"title":"Report the transaction hash of a client-submitted intent","deprecated":null,"version":null,"openapi":"/openapi/wallet-api.json post /v3/onchain-intents/{id}/reports","href":"/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent"}]}]}]},{"tab":"Trading API","pages":[{"title":"Trading API","href":"/guides/order-types"}]},{"tab":"Market Data","pages":[{"title":"Market Data","href":"/market-data/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"}]}]},"basePath":"","title":"Read an on-chain intent - Kairos","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BAvA99GL.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}