Event markets
Event markets let you trade outcome probabilities by buying and selling YES and NO tokens for each outcome of a categorical event.
An event market is a categorical market with a fixed set of mutually exclusive outcomes, where exactly one outcome is realized at resolution.
Butter’s event markets are separate from, but paired with, event conditionals:
Event markets express a view on which outcome happens.
Event conditionals express a view on where an asset settles if an outcome happens.
What is being traded
Event markets trade YES and NO positions for each outcome.
For outcome outcomeIndex:
A YES token for outcomeIndex pays 1 USDC if that outcome is realized, and 0 USDC otherwise.
A NO token for outcomeIndex pays 0 USDC if that outcome is realized, and 1 USDC otherwise.
In a categorical market, “NO for outcome outcomeIndex” means “any outcome except outcomeIndex”.
Pricing units
Each outcome outcomeIndex has its own YES/USDC market.
Butter prices YES and NO as shares per $1:
YES price is quoted as YES shares per 1 USDC.
NO price is quoted as NO shares per 1 USDC.
This is the inverse of the more common “USDC per share” quote. If the market shows yesSharesPerUsd YES shares per 1 USDC, then the implied USDC price per YES share is:
usdPerYesShare=yesSharesPerUsd1
Since a YES token pays 1 USDC if it wins, its USDC price per share is also the market-implied probability, up to fees and market microstructure.
YES and NO token semantics
YES tokens are the direct per-outcome winning claims.
NO tokens are represented as “not outcome outcomeIndex” claims that can be unwrapped into the complement YES tokens:
1 NO-outcomeIndex share unwraps into 1 share of each YES token for every outcome except outcomeIndex.
The mark price of NO-outcomeIndex equals the sum of the mark prices of the complement YES tokens.
This representation prevents interference between outcomes. Without wrapping, a NO position would be a live bundle of complement YES tokens, so trading YES for one outcome would mechanically change the measured value of NO for another outcome.
Representing NO as its own token requires a wrapper contract that mints and burns NO-outcomeIndex by wrapping and unwrapping the complement YES tokens. This document describes the requirement and the resulting trading semantics, and it does not assume the wrapper is deployed.
Trade intents and execution legs
Butter exposes four trade intents:
BUY_YESSELL_YESBUY_NOSELL_NO
Execution uses only YES/USDC pools. NO trades are implemented by buying or selling complement YES legs and wrapping or unwrapping.
BUY_YES
BUY_YESTo buy YES for outcome outcomeIndex, Butter swaps USDC for YES-outcomeIndex in the YES-outcomeIndex/USDC pool.
If you already hold NO-outcomeIndex, Butter nets the trade against that position first by selling NO-outcomeIndex instead of buying new YES-outcomeIndex.
SELL_YES
SELL_YESTo sell YES for outcome outcomeIndex, Butter swaps YES-outcomeIndex for USDC in the YES-outcomeIndex/USDC pool.
BUY_NO
BUY_NOTo buy NO for outcome outcomeIndex, Butter buys an equal number of YES shares in every complement outcome, then wraps that complement bundle into NO-outcomeIndex.
If you already hold YES-outcomeIndex, Butter nets the trade against that position first by selling YES-outcomeIndex instead of buying complement YES legs.
SELL_NO
SELL_NOTo sell NO for outcome outcomeIndex, Butter unwraps NO-outcomeIndex into the complement YES tokens, then sells each complement YES token for USDC in its own YES/USDC pool.
Positions, netting, and merge mechanics
Butter tracks positions as per-outcome YES and NO balances.
For each outcome outcomeIndex, Butter also tracks a size-weighted average entry price for YES-outcomeIndex and NO-outcomeIndex positions, in USDC per share.
Butter applies mandatory netting only between YES-outcomeIndex and NO-outcomeIndex for the same outcome:
It does not net positions across outcomes.
It does not net between wrapped NO constituents and other YES positions.
Event-market mechanics also admit “merge” rules. Holding one YES share for every outcome is a full set and is economically equivalent to 1 USDC. Butter does not auto-merge full sets across outcomes today.
Relationship to event conditionals
Event markets and event conditionals are paired but separate:
Event markets let you trade which outcome is realized.
Event conditionals let you trade an asset price conditional on which outcome is realized.
Event conditionals are documented in:
Last updated
