Conditional tokens

Butter uses the Gnosis Conditional Tokens framework to represent USDC whose payout depends on which outcome of an event occurs.

In practice, this shows up as conditional USDC balances in each outcome branch of a conditional market.

As a trader, you start by choosing what you want to trade: an event e.g. Fed rate decision, asset e.g. BTC, outcome branch e.g. Rate cut, and a position size e.g. 1 BTC long.

Given that intent, the system calculates how much collateral is required, locks that amount of USDC, mints the corresponding conditional USDC across all branches for that event–asset pair, and then turns the conditional USDC in your chosen branch into long or short scalar tokens to match your desired exposure.

Only your holdings in the branch whose outcome is realized can be redeemed for actual USDC at settlement; tokens in unrealized branches expires worthless.


How conditional USDC works

Splitting collateral into branches

Each conditional market is defined by an event and an asset, and has one branch per mutually exclusive event outcome.

When you open a position, the system takes the USDC needed to support that position and splits it into conditional USDC across all branches for that event–asset pair:

                                   USDC collateral
                      (to open long position in Fed rate cut branch)


                             Conditional USDC is created
                               in every outcome branch

            ┌─────────────────────────────┼───────────────────────────────┐
            ▼                             ▼                               ▼
┌──────────────────────────┐  ┌──────────────────────────┐   ┌──────────────────────────┐
│ Branch A                 │  │ Branch B                 │   │ Branch C                 │
│ (Fed rate cut)           │  │ (Fed rate unchanged)     │   │ (Fed rate hike)          │
│                          │  │ conditional USDC         │   │ conditional USDC         │
└───────────┬──────────────┘  └──────────────────────────┘   └──────────────────────────┘


Long tokens in Fed rate cut branch
  (conditional exposure to BTC)

Your portfolio shows these as conditional USDC balances per branch, plus long or short tokens in any branch where you have opened a position.

In the branch you actually trade in, the conditional USDC is immediately split into long or short scalar tokens that give you exposure to the asset in that branch.

In branches you do not trade in, your conditional USDC remains as pure branch balances that you can later use to open new positions or redeem at settlement if one of those branches is realized.

Example: opening a 1 BTC long in a branch

Suppose you want to go long 1 BTC in the “Fed rate cut” branch for a BTCUSD conditional.

In the trading interface you specify:

  • Event: Fed rate decision.

  • Asset: BTCUSD.

  • Branch: Fed rate cut.

  • Position size: long 1 BTC in that branch.

The system then:

  1. Determines how many long tokens correspond to 1 BTC of conditional exposure in that branch, using the scalar-to-asset ratio defined by the scalar bounds (see: Scalar tokens).

  2. Calculates how much USDC collateral is needed to purchase that many long tokens at the current branch price, which determines how many conditional USDC must be minted.

  3. Locks that amount of USDC from your Butter wallet and mints the corresponding conditional USDC across all branches for that event–asset pair.

  4. Uses the conditional USDC in the “Fed rate cut” branch to mint matched long and short tokens, then sells the short tokens for more longs so that you end up net long 1 BTC in that branch.

After this trade:

  • In the “Fed rate cut” branch you hold only long tokens representing 1 BTC of conditional long exposure.

  • In the “Fed rate unchanged” and “Fed rate hike” branches you hold only conditional USDC balances equal to the initial USDC cost of opening your position.

What happens at settlement

After the event occurs, an oracle reports which outcome happened and what the asset’s settlement price is in the realized branch.

Once this happens:

  • Conditional USDC in the realized branch becomes redeemable for real USDC, while conditional USDC in all other branches for that event becomes worthless. For example, if there are three outcomes, 1 unit of conditional USDC in the realized branch redeems for 1 USDC, and conditional USDC in the other two branches redeems for 0.

  • Long and short tokens in the realized branch settle for conditional USDC according to the scalar payoff rule, based on the branch’s lower and upper bounds and the reported settlement price. Long and short tokens in unrealized branches expire worthless.

If the branch you traded in is not realized, the conditional USDC you hold in the other branches for that event redeems to the same amount of USDC you originally committed to the position, so your collateral is effectively refunded and your position in the unrealised branch expires worthless.


How this connects to trading

Conditional USDC balances are the layer of collateral that backs all long and short exposure in a branch.

Every time you open or adjust a position, the system internally moves between:

  • USDC in your Butter wallet.

  • Conditional USDC in each branch for the event–asset pair.

  • Long and short scalar tokens in the specific branch you trade.

You do not need to manage these conversions manually; you only choose the branch and the size of your long or short position, and Butter handles the conditional token accounting under the hood.

For a deeper explanation of how scalar long and short tokens behave, how bounds work, and how leverage is calculated, see:

Last updated