Skip to main content
GET
Read an on-chain 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).

Response

The intent.

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.