kalshi. Every venue is compared on Venues.
What the user needs first
- A Kalshi account with an API key: a key id and its RSA private key.
- A provisioned trading wallet. Call Get deposit addresses (
client.getDepositAddresses()) once. Storing the key fails without one. - The key stored with Venue keys. AGG reads the Kalshi balance with it before saving. A key that cannot read the balance returns
400and is not stored. - Cash in the Kalshi account. The user deposits on Kalshi. AGG does not deposit to or withdraw from a Kalshi account.
POST /kyc/kalshi returns not_applicable. See KYC.
Funding
A Kalshi leg spends the user’s Kalshi cash. There is no bridge, approval, or deposit step, so a Kalshi fill is one REST order. Read that cash asvenueCash on the balances call. It is in integer US cents.
reason: "low_balance". The quote still returns. At fill, a buy whose Kalshi cash is short fails with quote_insufficient_balance. That includes a user with no stored key, so leave kalshi out of allowedVenues for those users.
A managed limit buy checks the same cash and returns 409 when it is short.
Self-custody
A self-custody route can include a Kalshi leg. It runs the same way: the user’s Kalshi key signs and their Kalshi cash pays, with no wallet prompt. Self-custody limit orders are not supported on Kalshi. Fee rules for a Kalshi-only self-custody fill are on Self-custody.Orders
- A market fill is sent as an immediate-or-cancel order. Size that does not fill is cancelled, not left on the book.
- Each order carries AGG’s order id as Kalshi’s client order id, so a retried submit does not place a second order.
- An order on
Nois placed on Kalshi’sYesbook at the complementary price. You still pass theNooutcome’svenueMarketOutcomeId. - Limit prices must sit on Kalshi’s $0.01 tick, for example
530000(0.53 in 6-decimal units). - Limit orders accept
GTC,GTD,FOK, andIOC, with post-only. See Limit orders. skipQuoteis not available on Kalshi. See Direct order execution.
Fees
Kalshi charges its own trading fee, rounded up to the cent on each order. See Venue fees. A user-paid referral on a route that fills only on Kalshi cannot be paid. The quote carries a warning withreason: "referral_unpaid_on_solana". See Where a referral cannot be paid.
Where it can be traded
AGG blocks Kalshi fills from the United States as platform policy, although Kalshi itself accepts US users. Kalshi’s own restricted countries are blocked too. Read the live list on Venue geo availability. Do not hard-code it.Settlement
Kalshi pays a settled position into the user’s Kalshi cash itself. There is no redeem step, andPOST /execution/redeem does not apply. A cancelled or postponed market settles at a fair price instead of voiding. See Market resolution.
IDs
externalIdentifier is Kalshi’s ticker: the event ticker on an event, and the market ticker on a market. Kalshi puts the market ticker on the Yes outcome only. The No outcome’s externalIdentifier is null, so find its id in the market’s venueMarketOutcomes[]. See IDs.