Custody Models
- Hosted Wallets
- Self-Custody
In hosted mode, Kairos generates and securely stores a signing key for you. When you submit an order, Kairos signs the on-chain transaction or EIP-712 payload without requiring any action from you.Best for: Automated strategies, server-side bots, and integrations where you don’t want to manage a local keystore.Trade-off: Your signing key lives on Kairos infrastructure. Kairos cannot access your collateral funds (which remain in your deposit wallet), but the signing authority is delegated to Kairos.
On-Chain Approvals (Allowances)
On-chain venues like Polymarket and Predict.fun use ERC-20 token contracts for collateral. Before you can trade, the venue’s smart contracts need permission to move tokens from your wallet — this is called an allowance (or approval). Kairos manages allowances for you during the onboarding flow, but you can also read and set them manually. Allowance status is read through the RPC queryexchange.getAllowances; amounts are decimal strings. Granting allowances stays on the REST executor:
POST /exchanges/{exchange_id}/prepare-wallet to have Kairos sponsor gas and set all required allowances in one sponsored transaction.
Off-chain venues like Kalshi do not require on-chain allowances. The allowance step only applies to Polymarket, Predict.fun, and Opinion.
Polymarket Deposit Wallet
Polymarket uses a Safe-based deposit wallet architecture. Your signing key (EOA — Externally Owned Account) is separate from the vault that holds your funds. The Safe contract acts as the on-chain vault; the EOA’s role is limited to authorizing trades. This architecture means:- Your USDC sits in the Safe vault, not in your EOA
- Compromising the signing EOA does not grant direct access to the vault funds
- CLOB orders are signed by the EOA but settle from the Safe
Deploying Your Deposit Wallet
If you’re onboarding to Polymarket for the first time, deploy your deposit wallet with:Checking Balances
Venue Onboarding Flows
Each venue has its own one-time setup step. Complete these before submitting your first order:1
Polymarket
Call If you’re importing an existing Polymarket wallet, use
POST /exchanges/polymarket/enable-trading to provision CLOB credentials and set all required on-chain approvals in a single request.POST /exchanges/polymarket/enable-imported-trading instead.2
Kalshi
Call
POST /exchanges/kalshi/enable-trading with your Kalshi API credentials. Kairos stores them securely and uses them to route orders.3
Predict.fun
Call
POST /exchanges/predictfun/enable-trading to set the required on-chain approvals for Predict.fun.4
Opinion
Call
POST /exchanges/opinion/enable-trading to provision credentials and set the USDT allowance.EIP-712 Self-Custody Flow
For self-custody order submission, Kairos uses a two-step flow built on EIP-712 typed data signatures. This standard ensures your signature is domain-bound and human-readable in compatible wallets.1
Build the Intent
Call Response:
POST /v2/orders/intent with your order parameters. Kairos returns a typed data object ready for signing — your key never leaves your environment.2
Sign the Typed Data
Sign the
typed_data object using eth_signTypedData_v4 with your wallet. Do not modify any fields — the signature is mathematically bound to the exact parameters.3
Submit the Signed Order
Call
POST /v2/orders/submit with your intent_id and the hex-encoded signature. Kairos broadcasts the signed order to the venue.CTF Outcome Tokens
Polymarket (and Predict.fun) use the Conditional Token Framework (CTF) — a standard for ERC-1155 outcome tokens. When you buy a YES contract, you receive CTF outcome tokens that redeem for $1.00 if the market resolves YES. Kairos exposes CTF operations directly if you need to manage tokens at the contract level:Hyperliquid Withdrawals and Transfers
Hyperliquid requires signed typed data for withdrawals and spot↔perp transfers, similar to the self-custody order flow:/exchanges/hyperliquid/transfer/prepare and /exchanges/hyperliquid/transfer.

