Report the transaction hash of a client-submitted intent
Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release.
Only for committed intents with submissionOwner: "client". The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.
POST
/
v3
/
onchain-intents
/
{id}
/
reports
Report the transaction hash of a client-submitted intent
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.
{
"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"
}
Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string
Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string
Failed to deserialize the JSON body into the target type: action.price: invalid type: floating point `0.52`, expected a string
{
"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/report-the-transaction-hash-of-a-client-submitted-intent","slug":"/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent","pageMetadata":{"title":"Report the transaction hash of a client-submitted intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nOnly for committed intents with `submissionOwner: \"client\"`. The hash is a hint: it moves the intent to `reconciling` and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is `confirmed`, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.","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","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: [\"Only for committed intents with \", _jsx(_components.code, {\n children: \"submissionOwner: \\\"client\\\"\"\n }), \". The hash is a hint: it moves the intent to \", _jsx(_components.code, {\n children: \"reconciling\"\n }), \" and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is \", _jsx(_components.code, {\n children: \"confirmed\"\n }), \", only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\"]\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":"Report the transaction hash of a client-submitted intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nOnly for committed intents with `submissionOwner: \"client\"`. The hash is a hint: it moves the intent to `reconciling` and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is `confirmed`, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"reportOnchainIntentTransaction","summary":"Report the transaction hash of a client-submitted intent","description":"Preview: available on staging (`https://staging-execution.kairos.trade`); production returns `503` until release.\n\nOnly for committed intents with `submissionOwner: \"client\"`. The hash is a hint: it moves the intent to `reconciling` and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is `confirmed`, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.","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:execute (API-key callers)","x-kairos-rate-limit":"120 requests/minute per client IP per route; 1000/minute when X-Client-Id is sent","security":["0ae4a1c1-8ac8-4c63-a63e-220d928b1af7","a3c807a0-72b6-45de-a65c-f7a4d9cfb3b6","5ab6d501-f57b-44d0-ab99-3432e47fbe1e","68748768-3be7-4335-bd8a-a10b5412a7eb","d27f6b91-3e58-41ad-ba7c-7eb833f359fb"],"parameters":["42d9ccec-24b0-4f12-96df-f0f11349c1af"],"requestBody":"5572dd2a-0c4c-49d8-9bae-f18d965097f8","responses":{"200":"abe83784-68cb-44a4-9af5-ad14a68e9d26","400":"d500d0e3-2fea-4f61-9025-fb58eba467ae","401":"17fbdd19-2ea7-443e-872d-8d82a47c81fc","403":"516e8129-f446-4712-97e4-1eac8b2dfc0a","404":"fe88dc73-bed2-48bd-a7a7-a9a7b0a19e84","409":"c92d106f-a2bf-49dc-8936-9126af2646a5","413":"54317342-5feb-4717-9ecc-48058b3da83d","415":"f45dc18a-a9ff-4b51-a08b-d588d98da2df","422":"f2634dee-ed07-404c-8750-cc9e671b6606","429":"8de28940-c606-4c5c-b6ad-e06c87a22213","500":"c23e6c0f-2d78-447c-bca0-1edc15e9b704","503":"f22e61fc-d068-4cab-949d-b4fecfb9809a"},"method":"post","type":"path","servers":["330d272c-627a-4ff5-ad01-0263b300ce7a","83635983-3d27-4bb6-bc26-42ecc043c06c"],"path":"/v3/onchain-intents/{id}/reports","baseUrlOptions":["https://execution.kairos.trade","https://staging-execution.kairos.trade"],"title":"Report the transaction hash of a client-submitted intent","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"42d9ccec-24b0-4f12-96df-f0f11349c1af":{"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>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["intentHash","transactionHash"],"properties":{"intentHash":{"type":"string","description":"Must equal `intent.intentHash`.","pattern":"^0x[0-9a-f]{64}$","isRequired":true,"uniqueKey":"intentHash","typeLabel":"string"},"transactionHash":{"type":"string","description":"Lowercase `0x` + 64 hex.","pattern":"^0x[0-9a-f]{64}$","isRequired":true,"uniqueKey":"transactionHash","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"intentHash":"\u003cstring>","transactionHash":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"abe83784-68cb-44a4-9af5-ad14a68e9d26":{"description":"The intent, now `reconciling` (or `confirmed`).","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"},"d500d0e3-2fea-4f61-9025-fb58eba467ae":{"description":"`invalid trade plan: noncanonical digest` (the hash must be lowercase `0x` + 64 hex); `a previously accepted answer cannot change` (a different hash on a confirmed intent). Plain text for malformed JSON or a non-UUID `{id}`.","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"},"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"},"17fbdd19-2ea7-443e-872d-8d82a47c81fc":{"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"},"516e8129-f446-4712-97e4-1eac8b2dfc0a":{"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"},"fe88dc73-bed2-48bd-a7a7-a9a7b0a19e84":{"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"},"c92d106f-a2bf-49dc-8936-9126af2646a5":{"description":"`the plan no longer accepts this operation` — not committed, not client-submitted, or an `intentHash` mismatch; `trade plan changed; read it before retrying` — read the intent and send the same report again; `this wallet is not set up yet; run a setup action first`.","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"},"54317342-5feb-4717-9ecc-48058b3da83d":{"description":"Plain text (`Failed to buffer the request body: length limit exceeded`) when the body is over the limit: 16 KiB for fee settlements, 64 KiB for trade plans and on-chain intents, the server-wide 2 MiB for actions. Above 64 KiB the answer may instead be `{\"error\": \"request body too large\"}`.","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"},"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"},"f45dc18a-a9ff-4b51-a08b-d588d98da2df":{"description":"Plain text — the request has no `Content-Type: application/json` header.","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"},"f2634dee-ed07-404c-8750-cc9e671b6606":{"description":"Plain text — the body is valid JSON of the wrong shape (a missing or unknown field, or a wrong type).","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"},"8de28940-c606-4c5c-b6ad-e06c87a22213":{"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"},"c23e6c0f-2d78-447c-bca0-1edc15e9b704":{"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"},"f22e61fc-d068-4cab-949d-b4fecfb9809a":{"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":{"0ae4a1c1-8ac8-4c63-a63e-220d928b1af7":{"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"}},"a3c807a0-72b6-45de-a65c-f7a4d9cfb3b6":{"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"}},"5ab6d501-f57b-44d0-ab99-3432e47fbe1e":{"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"}},"68748768-3be7-4335-bd8a-a10b5412a7eb":{"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"}},"d27f6b91-3e58-41ad-ba7c-7eb833f359fb":{"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":"Report the transaction hash of a client-submitted intent - Kairos","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T04:21:19.717Z","originalFileLocation":"api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-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. Only for committed intents with submissionOwner: \u0026quot;client\u0026quot;. The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\">\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=\"Report the transaction hash of a client-submitted intent - Kairos\">\u003cmeta data-mint-head property=\"og:description\" content=\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Only for committed intents with submissionOwner: \u0026quot;client\u0026quot;. The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\">\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/report-the-transaction-hash-of-a-client-submitted-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=Report+the+transaction+hash+of+a+client-submitted+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%0AOnly+for+committed+intents+with+%60submissionOw\u0026amp;theme=530643ae41273bc052a9a850\u0026amp;signature=9cb18f9d4e7cf9e187ecbfa7add258990a7dfb00acfba88ded9bb15aca295b37\">\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=\"Report the transaction hash of a client-submitted intent - Kairos\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Only for committed intents with submissionOwner: \u0026quot;client\u0026quot;. The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\">\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=Report+the+transaction+hash+of+a+client-submitted+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%0AOnly+for+committed+intents+with+%60submissionOw\u0026amp;theme=530643ae41273bc052a9a850\u0026amp;signature=9cb18f9d4e7cf9e187ecbfa7add258990a7dfb00acfba88ded9bb15aca295b37\">\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/report-the-transaction-hash-of-a-client-submitted-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/report-the-transaction-hash-of-a-client-submitted-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/report-the-transaction-hash-of-a-client-submitted-intent#webpage\",\"url\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent\",\"name\":\"Report the transaction hash of a client-submitted intent\",\"description\":\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Only for committed intents with submissionOwner: \\\"client\\\". The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\",\"dateModified\":\"2026-10-29T04:21:19.717Z\",\"isPartOf\":{\"@id\":\"https://docs.kairos.trade#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-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\":\"Report the transaction hash of a client-submitted intent\",\"item\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent#apireference\",\"headline\":\"Report the transaction hash of a client-submitted intent\",\"name\":\"Report the transaction hash of a client-submitted intent\",\"description\":\"Preview: available on staging (https://staging-execution.kairos.trade); production returns 503 until release. Only for committed intents with submissionOwner: \\\"client\\\". The hash is a hint: it moves the intent to reconciling and Kairos confirms it from the finalized receipt. A later report can replace a hash that has not been verified; once the intent is confirmed, only the confirmed hash is accepted. Reports are optional — Kairos also finds the transaction on chain.\",\"url\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kairos.trade/api-reference/partner/on-chain-intents-preview/report-the-transaction-hash-of-a-client-submitted-intent#webpage\"},\"dateModified\":\"2026-10-29T04:21:19.717Z\",\"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","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":"Report the transaction hash of a client-submitted 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"]}