Appearance
Kami
Kami is a leverage trading app that runs as a single program on Solana. You post USDC as margin and open isolated long or short positions, up to 1000x, on crypto prices from the Pyth oracle. Your counterparty is the house, a pool funded only by traders' realized losses. Winning trades are paid from the house after a win haircut and a 2% payout fee. If the house can't cover a win, the win goes into a first-in, first-out payout queue. Losing trades pay the house. Closing a trade at a loss earns $KAMI at a fixed rate that halves as total losses grow, paid from 70% of the token supply, locked for losing traders. $KAMI is a Solana token launched on pump.fun: stake it for a share of protocol fees in USDC, or withdraw it to your wallet. There is no order book, spread, funding rate or opening fee. Every order fills at one specific oracle update chosen by a pin time set after the order lands, so neither the trader nor the filler picks the price. Whether that price was still unpublished when the order was placed depends on the Solana clock and on recent oracle observations (details).
Status: the program has not been independently audited. At the time of writing it runs on Solana devnet with test USDC. Values marked "mainnet: TBD" are not final.
Key facts
| Settlement chain | Solana. All balances, positions and orders are on-chain accounts of one program. |
| Collateral | USDC (classic SPL Token, 6 decimals). Devnet uses a test USDC mint. On mainnet the runbook specifies the canonical USDC mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. |
| Markets | BTC-USD (market 0) and ETH-USD (market 1). Governance can add markets. |
| Position type | Isolated margin, one position per open order, full close only. notional = margin × leverage. |
| Max leverage | 1000x (the program-wide maximum, also the current per-market setting). Whole numbers only. |
| Order type | Market orders only, filled in two steps at a pinned oracle price (see How trading works). Fills take at least 6 seconds. |
| Trading costs | No opening fee, no funding and no spread. Wins are haircut: the base haircut is 7.7%, it is larger on small moves, and a 0.31 bp deadband applies. A 2% fee is taken from win payouts, and from realized losses (out of the loss, not on top of it) while the payout queue is empty. The loss fee is waived while the queue is active. Each request also pays an execution fee of 0.0005 SOL. |
| Liquidation | A hard bust: the whole margin is lost. A permissionless liquidation needs a fresh price at which the position is past its bust price (5 bps before zero equity) after allowing for Pyth's confidence band, or at zero equity at the midpoint. |
| Oracle | Pyth pull oracle. The program accepts only fully Wormhole-verified PriceUpdateV2 accounts from the hard-coded receiver rec2HHDDnjLfj4kE7VyEtFA1HPGQLK33259532cRyHp. |
| Counterparty | The house (LP), funded only by losses. While the payout queue is empty, treasury above $5,000,000 is swept to $KAMI stakers whenever a settling instruction runs. The cap doesn't apply to cash in the side bucket. |
| Custody | All USDC sits in one program-owned vault. Your balance is recorded in your own on-chain trading account. Withdrawals need your wallet's signature and enough available balance (plus valid token accounts and a successful SPL Token transfer). No pause, oracle or governance-parameter gate applies to them. No admin instruction can move user balances, but the program's upgrade authority can replace the program. |
| Token | $KAMI: a Token-2022 mint launched on pump.fun, 1B fixed supply, no mint or freeze authority. 70% is locked in a Jupiter Lock escrow: 20% of it reaches the reward vault at launch, the rest over 60 days. Losing closes earn it at a fixed rate, 1,400 per $1 lost (the whole loss; liquidations on the full margin), halving every $250,000 of counted losses; wins earn nothing. You can withdraw it to a wallet; instant stake and unstake, rewards paid in USDC. |
| Governance | After launch, economics, execution, market and role changes go through a timelocked proposal. The delay is 60 s on devnet; mainnet: TBD, the runbook requires at least 48 h. The program allows up to 30 days, refuses to launch production builds with less than 24 h, and never lets a proposal set the delay below the lesser of the current delay and 24 h. Pause, OI brake and trailing OI limits change instantly through their role keys. |
| Execution | Permissionless. Anyone can fill orders, liquidate, post oracle heartbeats and pay out the queue. In practice the Kami keeper does all of this. |
| Program ID | FpYz9QjV6VXAev6vFjBs7161jstuwh8bhXBzrtmJhiyX |
Pages
- How trading works: requests, pinned prices, fills, expiry, the win haircut, open-interest limits, session keys.
- Fees and PnL: every fee and the exact settlement math, with worked examples.
- Liquidation: when a position busts, at what price, and what you lose.
- The house: where losses go, how wins are paid, and the payout queue.
- $KAMI: the reward vault, the halving reward rate, staking and USDC rewards.
- Oracle and safety: Pyth checks, keepers, pause, governance, risks.
- Deposits and withdrawals: balances and what is on-chain.
- Markets and parameters: every parameter and its current value.
- Accounts and transactions: every instruction and account.
- Errors: every program error and what to do about it.
- Glossary and FAQ.