Fees (preview)

Read (and advance) a fee settlement

Preview: available on staging (https://staging-execution.kairos.trade); not yet released in production, where trade plans — the only source of this fee debt — return 503.

Returns the settlement after refreshing it from chain evidence. This read is what advances a settlement — poll it until status is terminal (confirmed, failed, expired). confirmed requires the payment to be in a finalized block, so it can trail the transaction by minutes.

Statuses: awaiting_signature → (answer) → submitted → confirmed. A Polymarket settlement left unsigned past expiresAt becomes expired; a Predict.fun hash that never appears on chain within an hour becomes expired. If that transaction lands within 7 days of expiring, GET /v3/fees or POST /v3/fees/settlements (not this read) credits it and moves the settlement to confirmed. A Polymarket batch the relayer fails, or never executes by 5 minutes after expiresAt, becomes failed. failed carries a reason in failure, for example the transaction reverted, transfer differs from the settlement, receipt contains no settlement transfer, receipt pays the settlement more than once, transaction predates the settlement.

get/v3/fees/settlements/{id}

Request

  • Base URL
    https://execution.kairos.trade
  • Auth
    • API key in header X-Kairos-Partner-Id and API key in header Authorization
    • or API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret and API key in header Authorization
    • or API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret
    • or API key in header X-Kairos-Partner-Id and API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret
    • or API key in header X-Kairos-Partner-Id and HTTP bearer

Path parameters

idstring uuid required

Settlement id.

Query parameters

walletstring required

The wallet's EVM address. No other query parameter is accepted.

Response

The refreshed settlement.

idstring uuid required
venue'polymarket' | 'predictfun' required
status'awaiting_signature' | 'submitted' | 'confirmed' | 'failed' | 'expired' 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).

holdingWalletstring required

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

assetKeystring required
chainIdstring required

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

tokenstring required

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

treasurystring required

The payee address.

decimalsinteger required

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

amountRawstring required

Amount to pay, integer string in token base units.

transactionHashstring nullable required

The payment transaction, once known.

expiresAtstring date-time nullable required

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

failurestring nullable required

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

Example response

{
  "id": "4e1d2c3b-5a6f-4b7c-8d9e-0f1a2b3c4d5e",
  "venue": "polymarket",
  "status": "awaiting_signature",
  "holdingWallet": "0x2f9c4b8e1d7a6c5b4a3f2e1d0c9b8a7f6e5d4c3b",
  "assetKey": "evm:137:0xc011a7e12a19f7b1f670d46f03b03f3342e82dfb",
  "chainId": "137",
  "token": "0xc011a7e12a19f7b1f670d46f03b03f3342e82dfb",
  "treasury": "0x3333333333333333333333333333333333333333",
  "decimals": 6,
  "amountRaw": "12500000",
  "transactionHash": null,
  "expiresAt": "2026-10-28T12:30:00Z",
  "failure": null,
  "walletRequest": {
    "kind": "signature",
    "chainId": "0x89",
    "request": {
      "method": "eth_signTypedData_v4",
      "params": [
        "0x8ba1f109551bd432803012645ac136ddd64dba72",
        "{\"types\":{\"EIP712Domain\":[…],\"Batch\":[{\"name\":\"wallet\",\"type\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\"},{\"name\":\"calls\",\"type\":\"Call[]\"}],\"Call\":[…]},\"domain\":{\"name\":\"DepositWallet\",\"version\":\"1\",\"chainId\":\"137\",\"verifyingContract\":\"0x2f9c…4c3b\"},\"primaryType\":\"Batch\",\"message\":{…}}"
      ]
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.