Skip to main content
POST

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

Settlement id.

Body

application/json

Send signature (Polymarket) or transactionHash (Predict.fun) — exactly one.

wallet
string
required

EVM address, 0x + 40 hex.

Pattern: ^0x[0-9a-fA-F]{40}$
Example:

"0x8ba1f109551bd432803012645ac136ddd64dba72"

signature
string

Polymarket — 65-byte ECDSA signature of walletRequest, 0x-prefixed hex (v of 0, 1, 27 or 28; low-s).

Pattern: ^0x[0-9a-fA-F]{130}$
transactionHash
string

Predict.fun — 0x + 64 hex hash of the payment transaction (not all zeros).

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

Response

The settlement, refreshed after the answer — usually submitted. If the payment transaction is already known and in a finalized block (a Predict.fun hash, or a batch the relayer reports mined), it may come back confirmed or failed.

A payment of a wallet's unpaid fees on one venue. The amount is frozen when the settlement opens.

id
string<uuid>
required
venue
enum<string>
required
Available options:
polymarket,
predictfun
status
enum<string>
required

awaiting_signature → submitted → confirmed. Terminal: confirmed and failed. expired is final unless it is a Predict.fun settlement whose reported transaction lands within 7 days of expiring: GET /v3/fees or POST /v3/fees/settlements then credits it and it becomes confirmed (GET /v3/fees/settlements/{id} does not re-check an expired settlement).

Available options:
awaiting_signature,
submitted,
confirmed,
failed,
expired
holdingWallet
string
required

Address the fee is paid from — Polymarket's trading wallet, or the wallet itself on Predict.fun.

assetKey
string
required
Example:

"evm:137:0xc011a7e12a19f7b1f670d46f03b03f3342e82dfb"

chainId
string
required

Chain id as a decimal string (walletRequest.chainId is hex).

Example:

"137"

token
string
required

Fee token (pUSD on Polygon, USDT on BNB Chain).

treasury
string
required

The payee address.

decimals
integer
required

Token decimals (6 for pUSD, 18 for BNB Chain USDT).

amountRaw
string
required

Amount to pay, integer string in token base units.

transactionHash
string | null
required

The payment transaction, once known.

expiresAt
string<date-time> | null
required

Polymarket — sign before this (30 minutes after opening). null on Predict.fun.

failure
string | null
required

Why the settlement failed or expired. Kept when a late Predict.fun payment later confirms an expired settlement.

walletRequest
object | null
required

Present only while awaiting_signature.

Example: