Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
A Conditional Funding Market (CFM) is a mechanism to help organizations allocate funding among multiple proposals by leveraging prediction markets. For simplicity, this text uses the term “DAO” to refer to the deploying entity, but note that the deployer can be any organization (the “Funding Entity”) willing to distribute funds toward an objective. Instead of relying solely on traditional voting or grant committees, CFMs let traders buy and sell tokens whose prices reflect the expected performance of each proposal on some measurable metric chosen by the DAO. Over time, market participants with accurate predictions gain profits (and hence influence), while those with inaccurate predictions lose capital. This “skin in the game” design addresses concerns like voter apathy and favoritism in grant councils. As Hayek’s 1945 paper "The Use of Knowledge in Society" explained and later Robin Hanson formalized for Futarchy, markets aggregate diverse private information more effectively than committees or polls.
What Problem Do CFMs Solve?
DAOs (or any Funding Entity) often struggle with deciding which proposals deserve funding, how much capital each should receive, and how to ensure that incentives are aligned. In typical voting systems, community members may lack time or incentives to become informed, or committee members may become biased. CFMs solve this by:
Incentivizing informed participation: Traders profit when they accurately forecast the impact of a proposal, so there is a direct economic reason to investigate and provide truthful information.
Aggregating diverse information: Anyone with unique insights into a proposal can trade in the market, driving the price (forecast) toward an accurate prediction.
Scaling and evolving over time: As better traders profit and reinvest, the quality of the forecasts improves further.
Why CFMs Work
CFMs excel at aggregating dispersed information by allowing many individuals, each holding private insights, to trade on their beliefs. Because a trader’s potential gains depend on how much their private assessment differs from the current market price, they have a clear financial motive to trade as soon as they possess underappreciated or new information. By acting early, they capture more profit from that gap—and in doing so, their trades adjust the price to reflect their private knowledge. This process ensures that markets combine the diverse knowledge of experts, insiders, and informed amateurs rather than relying on a small group of decision-makers. Crucially, traders risk capital on their forecasts, which curbs bias: if they are wrong, they lose money, unlike in surveys or elections where people can express preferences without financial consequences.
CFMs also offer continuous real-time updates. Rather than capturing a single moment in time (as studies, reports, or surveys often do), these markets adjust almost instantly to new data or developments, reacting far faster than traditional forecasting methods. While expert forecasts may take days or weeks to revise, CFMs respond dynamically whenever participants trade on fresh insights. This ongoing price discovery not only delivers timely forecasts but also ensures that the final market signals reflect the most up-to-date collective judgment on each proposal’s potential performance.
Hanson, Robin. Futarchy: Vote Values, But Bet Beliefs. (2013). Link
Gnosis Conditional Tokens Documentation (Archived). Link
Conditional Funding Markets Post on ggResearch. Link
Hayek, Friedrich. The Use of Knowledge in Society. Link
You may also find general background on futarchy in Ethereum Foundation’s Introduction to Futarchy.
We use special markets that make funding decisions—and you can help.
Tokens can be designed to represent any idea we can express in a smart contract—even events that may or may not happen in the future. We can make tokens that represent the outcome of an election or tokens that represent the growth of a protocol's revenue.
As you buy or sell tokens, you update their prices and contribute your beliefs about the future. Even better, we can use these prices to make funding decisions.
For example:
Rather than electing a committee or holding a vote to decide ecosystem grants, we can create a Revenue
token for each project. Markets can price these tokens as if we'd issued each project a grant. The more revenue you believe each project can achieve with a grant, the more you expect the token will be worth.
Conditional Funding Markets select the project with the highest value Revenue
token to receive the grant. This way we ensure the grant has the best chance of impact.
To use Butter you'll need to think deeply about the future, but if you've made it this far, this should come naturally.
Remember, all decisions on Butter have three elements:
Funding: The amount the deployer wants to allocate
Metric: The metric the deployer wants to impact
Outcomes: The set of funding outcomes being considered, e.g., Butter receives 50 ETH
All good things 🥞 come in three (or with 🧈) so keep these three steps in mind:
Price: What do you know about the decision itself? What about the potential outcomes? Are current prices accurate?
Position: Spot an under or overpriced asset? Put your money where your mouth is
Payout: Once the outcome is confirmed, claim your winnings. The greater the accuracy, the greater the payout
Before launching a Conditional Funding Market (CFM) round, a structured set of CFM Parameters must be defined. These parameters detail the oracle settings (e.g., Reality.eth), the collateral token, each proposal’s funding ask, how the chosen metric is mapped onto the 0–1 payout scale, the final resolution date, the liquidity incentives, and the decision rule used to determine which proposals get funded.
The DAO (or Funding Entity) will also select which metric is used to evaluate each funded proposal’s success. While Total Value Locked (TVL) is one example, any objective, quantifiable measure can serve: daily active users, fee revenue, on-chain volume, security audits passed, number of research papers, or any combination of such metrics. An oracle (specifically, Reality.eth) will finalize the actual metric values at the end of the evaluation period, ensuring an objective resolution.
Below is an illustration of these parameters:
When participants deposit collateral (e.g., USDC or an interest-bearing stablecoin) into the CFM smart contract, they receive a portfolio of “Funded” outcome tokens, one token for each proposal. Each outcome token is redeemable for $1/n if (and only if) its proposal is funded, where n is the total number of proposals that end up funded. If a proposal is not funded, its outcome token becomes worthless (0).
Key point: Because each deposit is split across all proposals’ outcome tokens, participants do not “lose everything” if they back a particular project that fails to get funded. Their remaining tokens in funded proposals collectively preserve their share of the collateral.
For each proposal, a conditional scalar market (CSM) is created on top of its “Funded” outcome token, splitting it into two tokens:
UP token – Gains value if the funded proposal’s final metric is high.
DOWN token – Gains value if the funded proposal’s final metric is low.
These two tokens together always sum UP to $1/n for that proposal. A scalar payout rule defines:
CFM Token Flow
Traders buy and sell UP and DOWN tokens based on their research and beliefs about each proposal’s future metric outcome. Because the underlying collateral is only redeemable if the proposal is funded, the “funding condition” is built in. If new information emerges, positive or negative, about a proposal, traders can react in real time by shifting the token prices to reflect updated expectations.
Traders who anticipate that a proposal's impact will exceed what its UP tokens imply will purchase UP tokens (hence increasing the CFM's estimate of the proposal's impact). On the other hand, those who believe the CFM's estimated impact of a proposal is too high will purchase DOWN tokens, reducing the CFM's estimate of the project's impact.
This continuous price discovery is how the market aggregates information to produce an expected performance score for each proposal.
At a predetermined date, the DAO (or Funding Entity) applies its decision rule. Examples:
Top-n Funding: Pick the n proposals with the highest UP token prices (i.e., highest expected metric outcome). Fund those projects, and each “Funded” token among those n is now worth $1/n.
Budget-Constrained Funding: Sort all proposals by their “expected ROI” (price signals relative to funding asked) and allocate until the budget runs out.
No matter the rule, the mechanism determines which proposals are funded based on their final market signals.
Important: Once the DAO announces which proposals are funded, only those proposals’ outcome tokens hold value. Tokens for projects that did not get funded expire worthless.
At a specified date several weeks or months after funding, the final metric (e.g., total users, TVL, or fee revenue) is measured for each proposal. A Reality.eth oracle then reports this metric on-chain for the CFM contract to read. Each funded proposal’s UP/DOWN tokens pay out according to the measured metric.
A CFM has two main elements:
Conditional Prediction Markets: Each proposal has a conditional token representing “Funded.” If the proposal is indeed funded, that token is redeemable for some amount of collateral; otherwise, it is worthless. For each proposal's conditional token, two tokens: UP and DOWN are minted, which reflect the final metric outcome for that proposal if it is funded.
A Decision Rule: Once the market prices are established, the DAO decides which proposals to fund (and in what combination) based on those prices. Different DAOs can define different rules, such as “fund the top n highest-priced proposals,” or “sort proposals by expected return on metric per dollar asked, then pick until the budget is exhausted.”
You're finally ready to use Butter—let's get you onboarded.
Connect Your Wallet If you’re using PLAY money, choose the same wallet you used to sign up. That’s where your PLAY tokens will arrive.
Select a Market Once your wallet is ready, pick a decision to explore. Each decision has unique parameters, so read up on the deployer, token amounts, metrics, and recipients before jumping in.
Choose an Outcome Look at how each potential recipient plans to use their funds, as well as their track record and reputation. You’re looking for outcomes you think are priced incorrectly—doing your own research goes a long way.
Buy UP or DOWN Each metric token’s price reflects the market’s current guess of where the metric will land if an outcome is funded.
For example, if a Butter TVL UP token is trading at 0.20, that suggests the market thinks Butter will reach $2M in a $10M TVL range. The token’s final value will be 0.20 if this scenario plays out.
If you think Butter could hit $35M during the evaluation period, you’d buy the UP token, which nudges the forecast higher.
If you think the UP token is overpriced, you’d buy the DOWN token, pushing the forecast lower.
Swap UP/DOWN If you already hold UP tokens (say 10 Butter TVL UP) but decide they’re overvalued, you can swap them for DOWN tokens (or vice versa). Just click Swap and input the amount of tokens you want to trade.
Redeem Your Position When the markets conclude, you’re all set. Go to your portfolio page to collect any payouts. That’s it!
Welcome to Butter
Next, we'll teach you how to start using Butter
A minimum value for the chosen metric (set to 0).
A maximum value .
If, once the proposal is funded and reaches resolution time, the actual measured metric ends up exactly at , the UP token pays $0 (and the DOWN token pays $1/n). At , the UP token pays $1/n (DOWN token $0). If the final metric is in between, the UP and DOWN tokens each pay some fraction summing to $1/n.
The current market price of the UP token can thus be interpreted as the market’s forecast of where the metric will land, normalized to the 0–$1/n range. For example, if the DAO sets new users and new users, and the UP token for proposal A is trading at $0.70/n, that means the market collectively expects the project to reach roughly 70% of that max range if funded, i.e., ~700k new users.
Get Funds on Unichain To use Butter, you’ll need ETH on Unichain. The makes it easy to bridge ETH from the mainnet to Unichain.
In conventional markets with many buyers and sellers, information providers can profit from participants who have inherent reasons to trade—such as steady demand for food or energy, or the passion of traders for certain teams or candidates (as seen in sports or election markets).
In decision markets (or CFMs), however, these inherent incentives often do not exist, so trading volume can remain low unless holders of relevant private information see a clear reward for participating. When informed participants are not incentivized to trade, market liquidity stays thin and prices become less accurate.
Conditional Funding Markets mitigate this by providing subsidies to draw liquidity providers into conditional token markets, encouraging informed traders to reveal their private information.
Another potential issue is manipulation. Large capital holders can place big bets to skew prices, creating misleading signals about certain outcomes. This risk grows if the participant pool shares similar biases, as Google discovered in its own decision markets—employees tended to overestimate Google’s prospects.
To increase the cost of manipulation, the decision rule (e.g., top-n or budget-based) can be modified to rely on time-averaged prices or similar mechanisms rather than a single snapshot. Importantly, attempts at manipulation can actually improve overall accuracy by attracting more informed traders who profit by correcting artificially distorted prices. Manipulative orders effectively act as noise trades and subsidize those who spot mispricings.
For decision markets to function effectively, the event or metric on which decisions are based must be well-defined and clearly specified. The future can be uncertain in ways that are difficult to predict, so details like the exact time (and time zone) of an event are crucial. If a decision depends on a social event being reported by a specific outlet, the venue must be stated, and a backup option should be included in case the original source is unavailable.
In CFMs, clarity about oracle parameters, resolution dates, and fallback data sources is essential. When markets lack well-structured contract terms, settlements can be disputed, undermining the reliability of the entire mechanism.
Finally, confounding arises when traders price tokens based on factors unrelated to the decision’s true impact. These extraneous influences dilute market signals with irrelevant information. One straightforward way to limit confounding is to design the market so that it directly executes the chosen outcome, minimizing the effect of any external process.
By ensuring the mechanism itself enacts the event it selects, traders focus on pricing the genuine consequences of that action, improving the reliability of the final price signals.
The main contract, FlatCFM
represents a CFM with a flat outcomes structure: each outcome represents the condition that a project gets funded. These outcomes are also called decision outcomes.
ConditionalScalarMarket
represents the scalar prediction market which is conditional on the parent outcome being selected. It contains outcomes Short
(also called DOWN), Long
(also called UP) and Invalid
.
The FlatCFMFactory
contract enables the creation of a FlatCFM
and its related ConditionalScalarMarket
. For a given CFM, it helps creating the unique FlatCFM
instance, one ConditionalScalarMarket
instance per decision outcome (not counting for the Invalid outcome), asks the associated oracle questions and prepares the associated conditional tokens.
FlatCFMRealityAdapter
implements an adapter pattern to access RealityETH from our contracts, with a normalized interface.
The system follows these general steps:
The FlatCFMFactory
creates a new FlatCFM
with specified parameters. This enables creation of ConditionalScalarMarket
s for each outcome. This submits the decision question to the oracle via FlatCFMRealityAdapter
and prepares the decision condition through ConditionalTokens
.
The FlatCFMFactory
creates new ConditionalScalarMarket
s for an existing FlatCFM
. This submits the scalar question to the oracle via FlatCFMRealityAdapter
and prepares the scalar conditions through ConditionalTokens
. This relies on a Reality template with a placeholder for the decision outcome name.
Users split their collateral into decision outcome tokens, then split again into scalar outcome tokens. These tokens are ERC20s and can be traded on AMMs.
When the oracle provides an answer to the decision question, the FlatCFM
can be resolved and calculates payouts.
When the oracle provides an answer to the conditional scalar questions (all together), all ConditionalScalarMarket
s can be resolved and calculate payouts.
Users can redeem their positions for payouts.
The codebase also rely on Wrapped1155Factory
which enables wrapping 1155 outcome tokens in ERC20s so participants can trade them on any AMM.
As with any external oracle, the CFM contracts economic security is limited by the economic security of the Reality + Kleros system.
Butter's fist iteration of Conditional Funding Markets contracts is available at .
Gnosis' provides the ability to create and manipulate tokens that are tied to a specific condition happening. ConditionalTokens
is the core contract that manages among others the creation and redemption of conditional tokens.
Both these contracts are re-deployed in their original and audited versions. We updated the build pipeling with modern tooling: see and .
is the first oracle for which an adapter has been implemented. This is a general-purpose oracle which uses Kleros as an arbitrator.
To allow trading with play tokens, a factory contract is made available through github.com/butterygg/cfm-v1-playmoney
The PlayCollateralTokenFactory
allows creating PlayCollateralToken
contracts which are non-tradeable but can be used in CFM contracts.
PlayCollateralToken
contracts are ERC20 tokens that only allow transfers from OR to:
The owner (who initially receives all tokens),
The ConditionalTokens contract, but only when initiated by the ConditionalTokens contract itself.
FlatCFMFactory
Unichain
FlatCFMRealityAdapter
Unichain
PlayCollateralTokenFactory
Unichain
ConditionalTokens
Unichain
Wrapped1155Tokens
Unichain
RealityETH_v3_0
Unichain
Arbitrator
Unichain