Kairo

Company

API

The Kairo Perps API is live and read-only. Trading is never routed through Kairo: orders are signed by the trader's wallet and sent to the venue by the SDK, which attaches Kairo's builder code so 0.03% of filled notional goes to the protocol treasury.

Version
1.0
Effective
2026-09-06
Last updated
2026-09-07

Status

  • Perps REST API v1: live at /api/public/perps/v1. Open CORS, no keys, 20 requests per second per client (burst 120).
  • SDK: @kairo/perps-sdk (sdk/perps in the repository). Reads use this API; writes are wallet-signed.
  • Prediction-market data: no hosted endpoint yet. Read it from Arc directly as described below.
#status

Perps endpoints

EndpointReturns
GET /marketsAll perp markets: mark and oracle price, 24h change, hourly funding, open interest, 24h volume.
GET /markets/:symbolOne market.
GET /candles/:symbol?interval=1h&limit=200OHLCV candles. Intervals 1m, 5m, 15m, 1h, 4h, 1d; max 500.
GET /account/:addressAccount value, margin used, withdrawable, plus open positions.
GET /positions/:addressOpen positions with entry, liquidation price, unrealised PnL.
GET /orders/:addressResting orders.
GET /fills/:addressLast 100 fills, including the builder fee paid to Kairo.
GET /builderKairo fee: address, rate (0.03%), and whether the venue currently accepts it.
GET /approval/:addressWhether the wallet has signed the 0.03% fee approval.

Every response is JSON with ok: true and a network field, or ok: false with an error string. Health: /api/public/perps/health.

#perps-endpoints

Kairo fee

Orders placed through the Kairo app or SDK carry a builder code pointing at the Kairo protocol treasury. The venue charges 0.03% of filled notional on top of its own fee and pays it to the treasury. Traders sign a one-time approval capping the fee at exactly 0.03%; the SDK requests it before the first order.

The fee is only charged once the treasury account is activated at the venue. Until /builder reports active: true, orders are sent without the code and no Kairo fee is taken. The interface never shows the fee as charged when it is not.
#fee

SDK quick start

  1. npm i @kairo/perps-sdk @nktkas/hyperliquid viem
  2. const kairo = new KairoPerps({ baseUrl: "https://kairo.market" })
  3. const btc = await kairo.market("BTC"); const { positions } = await kairo.account(address)
  4. await kairo.marketOrder(wallet, address, { market: btc, side: "long", size: 0.01 })

The SDK also exposes setLeverage, limitOrder, closePosition, cancel and ensureFeeApproval. Full README lives in sdk/perps/README.md.

#sdk

Prediction-market data today

  1. Connect to an Arc RPC endpoint.
  2. Fetch MarketCreated logs from the MarketFactory address from the deployment block onward for market discovery.
  3. Fetch Trade logs from the TradeRouter for volume, fees, pool balances and probability history.
  4. Call the market maker and conditional-token contracts for live prices, pool balances and positions.
#today

API: version 1.0, effective 2026-09-06. This document is published by Proodos Group BV and has not yet been reviewed by qualified legal counsel; see LEGAL-REVIEW-REQUIRED.md in the repository.

Nothing on this page states or implies registration, licensing or approval by any financial, gaming or securities regulator.