# Event markets

{% hint style="info" %}
Event markets let you trade outcome probabilities by buying and selling YES and NO tokens for each outcome of a categorical event.
{% endhint %}

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 $$\text{outcomeIndex}$$:

* A YES token for $$\text{outcomeIndex}$$ pays 1 USDC if that outcome is realized, and 0 USDC otherwise.
* A NO token for $$\text{outcomeIndex}$$ pays 0 USDC if that outcome is realized, and 1 USDC otherwise.

In a categorical market, “NO for outcome $$\text{outcomeIndex}$$” means “any outcome except $$\text{outcomeIndex}$$”.

## Pricing units

Each outcome $$\text{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 $$\text{yesSharesPerUsd}$$ YES shares per 1 USDC, then the implied USDC price per YES share is:

$$\text{usdPerYesShare} = \frac{1}{\text{yesSharesPerUsd}}$$

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 $$\text{outcomeIndex}$$” claims that can be unwrapped into the complement YES tokens:

* 1 NO-$$\text{outcomeIndex}$$ share unwraps into 1 share of each YES token for every outcome except $$\text{outcomeIndex}$$.
* The mark price of NO-$$\text{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-$$\text{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_YES`
* `SELL_YES`
* `BUY_NO`
* `SELL_NO`

Execution uses only YES/USDC pools. NO trades are implemented by buying or selling complement YES legs and wrapping or unwrapping.

### `BUY_YES`

To buy YES for outcome $$\text{outcomeIndex}$$, Butter swaps USDC for YES-$$\text{outcomeIndex}$$ in the YES-$$\text{outcomeIndex}$$/USDC pool.

If you already hold NO-$$\text{outcomeIndex}$$, Butter nets the trade against that position first by selling NO-$$\text{outcomeIndex}$$ instead of buying new YES-$$\text{outcomeIndex}$$.

### `SELL_YES`

To sell YES for outcome $$\text{outcomeIndex}$$, Butter swaps YES-$$\text{outcomeIndex}$$ for USDC in the YES-$$\text{outcomeIndex}$$/USDC pool.

### `BUY_NO`

To buy NO for outcome $$\text{outcomeIndex}$$, Butter buys an equal number of YES shares in every complement outcome, then wraps that complement bundle into NO-$$\text{outcomeIndex}$$.

If you already hold YES-$$\text{outcomeIndex}$$, Butter nets the trade against that position first by selling YES-$$\text{outcomeIndex}$$ instead of buying complement YES legs.

### `SELL_NO`

To sell NO for outcome $$\text{outcomeIndex}$$, Butter unwraps NO-$$\text{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 $$\text{outcomeIndex}$$, Butter also tracks a size-weighted average entry price for YES-$$\text{outcomeIndex}$$ and NO-$$\text{outcomeIndex}$$ positions, in USDC per share.

Butter applies mandatory netting only between YES-$$\text{outcomeIndex}$$ and NO-$$\text{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:

* [Conditional market variants](https://docs.butter.markets/core-concepts/conditional-market-variants)
* [Conditional tokens](https://docs.butter.markets/core-concepts/conditional-tokens)
