Partially verified. As of v0.8.7+, Kalshi now targets the modern host
(
api.elections.kalshi.com) and uses RSA-PSS API key authentication. Pass
the key ID as api_key and the PEM-encoded private key as password on
the Kalshi(...) config. Order, cancel, fill polling, and position fetching
have been updated for the new fixed-point dollar string field format. Has
not been tested against a live Kalshi account, so verify the behavior
matches expectations before deploying significant size.Quick Setup
Credentials
- API key
- Email / password
- Environment variables
Kalshi Configuration
Demo Environment
Kalshi provides a demo environment for testing:Ticker Mapping
Kalshi markets use tickers (e.g.,KXBTC-25FEB16) instead of slugs. When mode="live", Horizon automatically sets the ticker from the market ID:
Side Mapping
Kalshi uses two separate concepts for order direction:
This means “buy yes”, “sell yes”, “buy no”, and “sell no” are all valid combinations.
Authentication
Kalshi uses bearer token authentication:- On first request, the client authenticates with API key (or email/password)
- Receives a bearer token
- Token is included in subsequent requests via
Authorization: Bearer <token> - On 401 response, the client automatically re-authenticates and retries (loop-based, not recursive)
Fill Polling
Kalshi fills are polled from the/portfolio/fills endpoint. Each cycle:
- Queries recent fills with tracked order IDs
- Deduplicates against previously seen fill IDs
- Maps Kalshi’s price format (cents) and timestamps to Horizon’s format
Feature Support Matrix
The oracle ensemble runs all 6 signal extractors on Kalshi, but signals that depend on Polymarket on-chain data (smart money flow, microstructure, holder concentration) return neutral (0.5). The remaining signals (momentum, volume profile, temporal patterns) also return neutral since Kalshi has no public trade-level data. LLM forecasting and resolution analysis work fully on both exchanges.
Intelligence Suite with Kalshi
All intelligence tools accept anexchange parameter:
MCP Server
MCP tools also accept theexchange parameter:
analyze_resolution(market_id, exchange="kalshi")llm_scan(exchange="kalshi")sniper_scan(exchange="kalshi")oracle_forecast(market_id, exchange="kalshi")oracle_edges(exchange="kalshi")