Skip to main content
POST
Report the transaction hash of a client-submitted intent

Authorizations

X-Kairos-Partner-Id
string
header
required

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

Authorization
string
header
required

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

Path Parameters

id
string<uuid>
required

On-chain intent id (intent.terms.id).

Body

application/json
intentHash
string
required

Must equal intent.intentHash.

Pattern: ^0x[0-9a-f]{64}$
transactionHash
string
required

Lowercase 0x + 64 hex.

Pattern: ^0x[0-9a-f]{64}$

Response

The intent, now reconciling (or confirmed).

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):

  • consentRequest — KairosOnchainIntent typed data binding signer, partnerId, audience, intentId, intentHash, executeBefore. Always required.
  • 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.

intent
object
required

An EIP-1193 request to run through the wallet's provider exactly as given (provider.request({method, params})).

  • eth_signTypedData_v4: params = [address, typedData] — typedData is a JSON string; pass it unchanged.
  • personal_sign: params = [hexMessage, address].
  • wallet_sendCalls (EIP-5792): params = [{version, chainId, from, atomicRequired, calls}]; the wallet pays gas.
  • eth_sendTransaction: params = [{from, to, data, value, chainId?}]; the wallet pays gas.
Example:
nativeRequest
object
required

An EIP-1193 request to run through the wallet's provider exactly as given (provider.request({method, params})).

  • eth_signTypedData_v4: params = [address, typedData] — typedData is a JSON string; pass it unchanged.
  • personal_sign: params = [hexMessage, address].
  • wallet_sendCalls (EIP-5792): params = [{version, chainId, from, atomicRequired, calls}]; the wallet pays gas.
  • eth_sendTransaction: params = [{from, to, data, value, chainId?}]; the wallet pays gas.
Example:
submission
object
required

For submissionOwner: client: add "signature": <native signature> to body and POST it to endpoint.