Skip to main content

The noun stack

One trade goes by four names over its life. The name changes at commit, and again when it lands on-chain. Quote request before you commit, parlay from commit, position from executed Quote request before you commit, parlay from commit, position from executed

Money fields

All of these are decimal USDC unless the name ends in _micro. See Units. The full chain:
Odds apply to the net stake, never to the gross bet. A 25 USDC bet at 4.0 odds pays out 99.00 before the profit fee, not 100.00, because the 1% taker fee comes off first. Pricing against bet_amount overprices every quote you submit. See Limits and fees.

Units

Any field whose name ends in _micro is an integer of microUSDC, where 1000000 equals 1.00 USDC. Every other money field is a decimal USDC number.
Both conventions appear in the same payload on the cashout surface. Scale before you compare. Market prices are decimal probabilities from 0 to 1 on every venue. Kalshi cent prices are converted for you.

Balance fields

Identifiers

counterparty_mm_id names the maker who backs the position, not the bidder. Compare it with the winning quote’s market_maker_id. They are equal only when the exit closes the position rather than transferring it. Treating counterparty_mm_id as the winner routes an acquisition to the wrong maker.

Protocol fields

Custody terms

Aliases

A value can change name when a trade moves from pricing to settlement. Each pair below is the same number.
mm_risk and total_payout - user_stake are stored separately and can disagree in the last decimal place. To reconcile them exactly, work in microUSDC.

Event naming

Each channel uses its own separator. The separator tells you the channel and nothing else. The market maker (MM) SSE stream mixes separators: quote_request and quote_request_expired use underscores, while quote_request:updated uses a colon. Match on the exact strings in the event catalog.