> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kairos.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboarding and go-live

> From first contact to live trading: what you get from Kairos, how to build and test on staging, and the checklist to go live.

This page is the path from "we want to integrate" to real users trading. Each step links to the page with the detail.

## 1. Get set up with Kairos

Contact Kairos. You get:

| What | Used for |
| - | - |
| **A partner id** | Sent as `X-Kairos-Partner-Id` on every request. It names your integration; it isn't a secret |
| **Base URLs** | Production `https://execution.kairos.trade`, staging `https://staging-execution.kairos.trade`. Every path in these docs is relative to them |
| **Allowed browser origins** | Only if you call the API from a web page. Tell Kairos your app's origins; other origins fail the CORS preflight ([details](https://docs.kairos.trade/wallets/authentication.md#calling-from-a-browser)) |
| **Your fee schedule** | Only if you charge a [partner fee](https://docs.kairos.trade/wallets/fees.md) (preview). Kairos sets it per partner, per venue or per user |

Decide how you authenticate:

* **An app or wallet whose users sign with their own wallets** sends the partner id. Users need no Kairos account.
* **A desk trading its own wallets from a server** sends an API key with `trade:execute` instead. See [partner id or API key](https://docs.kairos.trade/wallets/authentication.md#partner-id-or-api-key).

## 2. Make a first trade on staging

Follow the [quickstart](https://docs.kairos.trade/wallets/quickstart.md). It sets up a wallet, places an order that rests, reads it back and cancels it, in about 40 lines.

> [!WARNING]
>
> Staging places real orders on the real venues, with real funds. Use a test wallet with small balances, and orders priced away from the market.

## 3. Build the integration

| Step | Page |
| - | - |
| Show markets, prices and charts | [Show markets](https://docs.kairos.trade/wallets/markets.md) |
| Set up a user's wallet on each venue, and get it funded | [Set up and fund a wallet](https://docs.kairos.trade/wallets/setup.md) |
| Show each signature clearly, and check it before the wallet prompts | [What the wallet signs](https://docs.kairos.trade/wallets/signing.md) |
| Place and cancel orders | [Place and cancel orders](https://docs.kairos.trade/wallets/trade.md) |
| Pick the venue for each order | [Routing across venues](https://docs.kairos.trade/wallets/routing.md) |
| Show orders and positions | [Show orders and positions](https://docs.kairos.trade/wallets/portfolio.md) |
| Handle every error | [Errors, limits and idempotency](https://docs.kairos.trade/wallets/reference.md) |

Use the [TypeScript SDK](https://docs.kairos.trade/wallets/sdk.md), or call the API directly: [plain HTTP clients](https://docs.kairos.trade/wallets/http.md) in JavaScript and Python, and the [endpoint reference](https://docs.kairos.trade/wallets/overview.md#endpoint-reference).

## 4. Go-live checklist

**1. Every step type is handled**

`eth_signTypedData_v4`, `personal_sign`, and `wallet_sendCalls` (Predict.fun approvals), with the `eth_sendTransaction` fallback for wallets without `wallet_sendCalls`. The wallet switches to each step's `chainId` first. See [the four methods](https://docs.kairos.trade/wallets/signing.md#the-four-methods).

**2. Users see what they sign**

Show each step's `description` before the prompt, and check the request matches what the user asked for ([checks](https://docs.kairos.trade/wallets/signing.md#before-you-show-a-request)). The SDK does this for you.

**3. Retries never double an order**

Send a `clientOrderId` on every order. When an order ends with `ORDER_OUTCOME_UNKNOWN`, or a request fails with a `5xx` or a timeout, retry with the same `clientOrderId`, or read the wallet's orders first (all of them, not only open ones: the order may have filled). See [`clientOrderId`](https://docs.kairos.trade/wallets/reference#clientorderid).

**4. Signatures arrive in time**

Polymarket and Predict.fun orders must be signed within about 60 seconds. Hyperliquid orders, and cancels on every venue, within 5 minutes. A late signature fails with `SIGNATURE_EXPIRED`: start a new action.

**5. The sign-in token is reused**

Keep the token from the `login` action for its 24 hours, rather than asking the user to sign in on every read. See [the sign-in token](https://docs.kairos.trade/wallets/authentication.md#the-sign-in-token).

**6. Venue outages degrade gracefully**

Read `venues` in wallet status and hide a venue that is `available: false` or not offered. See [availability](https://docs.kairos.trade/wallets/venues.md#availability).

**7. Limits fit your traffic**

Requests are limited per route and per IP (120 a minute, or 1000 with an API key). New wallets are capped at about 1000 an hour per partner. Ask Kairos before a launch that needs more. See [rate limits](https://docs.kairos.trade/wallets/authentication.md#rate-limits).

**8. Kairos enables production**

Tell Kairos your launch date. Kairos enables your partner id (and origins and fee schedule) in production.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.