Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
🧈 Welcome to Butter 🧈
We use 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 create two tokens for each proposal:
Revenue_Funded
— the protocol's revenue if the proposal is funded
Revenue_Not Funded
— the same revenue if the proposal is not funded
Markets price both tokens. The more additional revenue you believe a proposal can generate when funded, the larger the gap you expect between Revenue_Funded
and Revenue_Not Funded
.
CFMs select the proposal with the highest forecasted impact—defined as the difference between its Revenue_Funded
and Revenue_Not Funded
prices—to receive the grant. This way we ensure the grant has the best chance of impact.
A Conditional Funding Market (CFM) is a mechanism to help organizations allocate funding among multiple proposals by leveraging prediction markets. 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 Funding Entity. The Funding Entity is the organisation employing the CFM to distribute funds toward an objective. 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.
DAOs 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.
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).
Gnosis Conditional Tokens Documentation (Archived).
Conditional Funding Markets Post on ggResearch.
Hayek, Friedrich. The Use of Knowledge in Society.
You may also find general background on futarchy in .
Decision markets (of which CFMs are a particular type of mechanism) are subject to limitations due to their cryptoeconomic nature. We'll list the main ones below, together with their mitigations.
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.
CFMs mitigate this by providing subsidies to draw liquidity providers into conditional 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 conditional UP and DOWN tokens based on factors unrelated to the decision’s 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.
You've made some trades and enjoyed a profit. Now, you want to exit your position.
Which state is the market in? Access the market that you've been trading on, and check if the decision has already been executed by looking for the "Decision Executed" tag or if it has been resolved (market ended) by checking for the "Resolved" tag.
Below are some guides on how to exit depending on which state the market is in.
When the decision hasn't been executed yet
Access the Sell tab directly on the market page.
As the decision isn't yet recorded on-chain, you only have the opportunity to move your UP/DOWN tokens back to decision outcome tokens (or "IF tokens"). These tokens represent 1 unit of collateral (1 USDC) if their corresponding decision is chosen. For example:
1 IF-EULER will be worth 1 USDC if Euler is funded, 0 USDC otherwise.
1 IF-NOT-EULER will be worth 0 USDC if Euler is funded, 1 USDC otherwise.
IF/IF-NOT tokens are not subject to UP/DOWN price swings, contrary to UP and DOWN. Holding IF tokens is safe.
Enter the amount of collateral you wish to receive from your current position. If you are unsure how much you can get, just hit the Max button.
Now, if you wish to get your USDC back ASAP, you can! Just head to the portfolio page:
Access the portfolio page.
Identify the row corresponding to the CFM and the exact conditional market in which you have UP/DOWN holdings.
Hit the cog button to the right:
This will bring up a pop-up: select the Merge tab and choose Outcome token. Remember that you can only merge both outcome tokens for a given candidate together. You need equal IF-CANDIDATE and IF-NOT-CANDIDATE tokens to get back the equivalent amount of USDC.
Note: If you see the "Pending oracle update" tag : the market's decision will soon be executed. This period lasts approximately 48 hours, after which you can access the Sell flow "When the decision is executed" and get back your USDC more easily! (see below)
When the decision is executed
Access the Sell tab directly on the market page.
Enter the amount of collateral you wish to receive out of your current position. If you are unsure how much you can get, just hit the Max button.
The Sell process will then guide you through the following steps:
Equalize the amount of UP and DOWN tokens you possess in the current market by trading (swapping) against the conditional prediction market.
After amounts being equalized, UP and DOWN tokens are merged into USDC collateral via ConditionalTokens.
When the market is resolved
When the market is resolved, the metric reported by the oracle determines the UP and DOWN token prices.
In that case, you can immediately redeem UP and DOWN tokens for their worth in USDC via the Sell tab:
Butter's first iteration of Conditional Funding Markets contracts is available at github.com/butterygg/cfm-v1.
The main contract, FlatCFM
represents a CFM with a flat outcomes structure: each outcome represents the condition that a proposal gets funded. These outcomes are also called decision outcomes.
InvalidlessConditionalScalarMarket
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 InvalidlessFlatCFMFactory
contract enables the creation of a FlatCFM
and its related InvalidlessonditionalScalarMarkets
. For a given CFM, it helps creating one FlatCFM
instance per candidate project, one InvalidlessnditionalScalarMarket
instance per decision outcome (Funded or Not Funded), asks the associated oracle questions and prepares the associated Conditional Scalar Tokens.
FlatCFMRealityAdapter
implements an adapter pattern to access RealityETH from our contracts, with a normalized interface.
The system follows these general steps:
The InvalidlessFlatCFMFactory
creates one FlatCFM
per candidate project, with specific parameters. This enables the creation of InvalidlessConditionalScalarMarket
s for each decision outcome. This submits the decision question to the oracle via FlatCFMRealityAdapter
and prepares the decision condition through ConditionalTokens
.
The InvalidlessFlatCFMFactory
creates new InvalidlessConditionalScalarMarket
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 conditional tokens, then split again into scalar conditional 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 InvalidlessConditionalScalarMarket
s can be resolved and calculate payouts.
Users can redeem their positions for payouts.
In case the decision question is posted to Reality.eth fails to be processed correctly (either due to ambiguity or a technical error), it might return an Invalid
response. In such a case, the FlatCFM
decision question and its related condition will be marked invalid.
In this case, the related ConditionalTokens
condition will be marked invalid, and both the Funded and Not Funded markets will be voided. In such a case, the INVALID decision outcome token will be worth 1 unit of collateral (1 USDC), and traders will return their original deposits.
CFM Reality.eth questions have been carefully reviewed by a panel of experts, including Kleros and Reality.eth. Previous CFM questions have never resulted in Invalid outcomes.
In case the metric question fails to be processed correctly, it might return an Invalid
response. In such a case, the processing is different than the one reserved to decision questions:
A set of parameters defaultPayouts
has been passed by the factory contract to initialize InvalidlessConditionalScalarMarkets
. This parameter represents the proportion that is allocated to UP and DOWN tokens in case the question returns Invalid
. By default, a ratio of 50%/50% is used.
In the unlikely case that the metric question returns Invalid, all traders will be rewarded as if the market closed at 0.5 USDC.
We expect this outcome to be extremely improbable, based on our deep understanding of how Reality.eth and Kleros courts' cryptoeconomics and their previous rulings. The CFM Kleros policy has been carefully crafted to prevent ambiguity even in the most adverse conditions (e.g., if DefiLlama is hacked).
CFM Reality.eth questions have been carefully reviewed by a panel of experts, including Kleros and Reality.eth. Previous CFM questions have never resulted in Invalid outcomes.
The cfm-v1
codebase has been audited by leading auditors, including Trust and a $30k Immunefi competition. See here for audit reports.
Conditional Tokens are ERC‑1155 assets issued by the Conditional Tokens smart contract, a battle‑tested primitive for representing collateral claims that depend on a future event. Butter relies on this contract for every market position.
When collateral is deposited, the contract can split it into two fungible positions:
Up tokens – claim value when the reported metric is near or above the upper bound.
Down tokens – claim value when the metric is near or below the lower bound.
(In binary yes/no markets the same mechanism applies, with UP ↔ IF-TOKEN and Down ↔ IF-NOT-TOKEN.)
Creates outcome positions from collateral.
Example Deposit 100 USDC ⇒ receive 100 UP tokens and 100 DOWN tokens, together worth 1 USDC.
Reverses a previous split.
Requirement: Hold equal quantities of UP and DOWN tokens in the same conditional market. Effect: Both tokens are burned; the underlying collateral is re‑created within the contract. Purpose: Simplify your portfolio or prepare for withdrawal.
Note that merge works as well for IF and IF-NOT tokens.
Available once the oracle posts the final outcome.
Decision markets – Only the winning side (IF/IF-NOT) is redeemable; the opposite side expires worthless.
Scalar markets – Both UP and DOWN tokens receive a payoff that is linear in the reported value between the predefined lower (vmin) and upper (vmax) bounds.
Redeeming burns the tokens and transfers the corresponding collateral to your account.
Security record – Live since 2019 with zero exploits; multiple independent audits.
Interoperability – Compatible with any ERC‑20 collateral and oracle scheme.
Adoption – Core primitive for markets such as Omen, Polymarket, Azuro, Zeitgeist, and Butter.
For the formal specification, consult the Conditional Tokens documentation.
A Butter smart account is created the first time you connect a Web3 wallet. No email, no passwords—your wallet is the key.
Gas‑friendly – We can sponsor gas fees so you can trade even with 0 ETH in your wallet.
Flexible – Future upgrades (e.g. social recovery) arrive automatically; you do nothing.
Battle‑tested – Built on the same open‑source contracts used by the wider prediction‑market ecosystem.
Connect wallet (MetaMask, Rabby, Ledger, …).
We deploy a small contract that acts as your wallet on Butter—paid by us.
Trade, deposit, withdraw just as you would with a normal wallet. Your external wallet signs every action.
That’s it. No separate login, no extra keys to back up.
Deposit – Send supported tokens (USDC) to the address shown in the UI.
Withdraw – Click Transfer and sign the prompt; the contract moves the tokens out.
Gas – Most actions are covered; if a trade exceeds the free quota we’ll show the required gas before you confirm.
What happens if I disconnect the site in MetaMask? Nothing breaks—you’ll just need to reconnect to trade again.
Can I lose access if I lose my wallet? Yes, control follows your wallet. We’re working on optional guardian‑based recovery.
Where can I see the contract? Click View on Explorer in the app to open your smart account on Etherscan.
Gnosis' Conditional Token framework 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.
The codebase also relies on Wrapped1155Factory
which enables wrapping 1155 conditional tokens in ERC20s so participants can trade them on any AMM.
Both these contracts are re-deployed in their original and audited versions. We updated the build pipeline with modern tooling: see here and here.
Reality.eth is the first oracle for which an adapter has been implemented. This is a general-purpose oracle which uses Kleros as an arbitrator.
As with any external oracle, the CFM contracts economic security is limited by the economic security of the Reality + Kleros system.
CFMs use the Oracle Kleros court with a CFM-specific policy.
A CFM (Conditional Funding Market) has two main elements:
Conditional markets: Each proposal has two distinct conditional markets: a Funded market and a Not Funded market. The Funded market predicts the outcome if the proposal receives funding, while the Not Funded market predicts the outcome if it does not. The Funded market has Funded-UP tokens
and Funded-DOWN tokens
, while the Not Funded market has Not Funded-UP tokens
and Not Funded-DOWN tokens
; these reflect the market's forecast of the reported metric in that scenario.
A decision rule: Once the market prices are established, the Funding Entity decides which proposals to fund. The decision is based on the forecasted impact of each proposal, calculated as the difference between the Funded market
’s price and the Not Funded market
’s price. Each Funding Entity can define their own rule, such as “fund the top n proposals with highest forecasted impact,” or “sort proposals by expected return on metric per dollar asked, then pick until the budget is exhausted.”
Additional tutorials
You're finally ready to use Butter—let's get you onboarded.
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.
Log in Choose the wallet in which you hold some collateral tokens and use it to log in to your Butter account.
Deposit collateral Deposit some collateral tokens into your Butter account, and get ready to trade.
Select a proposal Once your wallet is ready, pick a proposal to explore. Each proposal has two distinct markets for precise impact estimation—see our for details on how work.
Evaluate the forecasts For each proposal, look at the market's current forecast for both the Funded and Not Funded scenarios. Your goal is to find forecasts you think are priced incorrectly. Doing your own research on the proposal details and the broader ecosystem goes a long way.
Buy UP or DOWN in either market Each proposal has two separate markets: a Funded market and a Not Funded market. Each market's UP token price shows the current forecast of the metric in each scenario (proposal is Funded or Not Funded).
For example, consider Proposal X's Funded market, where TVL is forecasted up to $100M. If the UP token trades at $0.20, the market forecasts $20M in TVL if Proposal X gets funded.
If you think TVL will actually reach $35M with funding, buy the UP token.
If you think that a $20M forecast is too optimistic, buy the DOWN token.
The Not Funded market works the same way but forecasts what happens if the proposal doesn't get funding.
Swap UP or DOWN in a market If you already hold tokens for one scenario (say, Funded-UP token) but decide that forecast is now overvalued, you can swap them for Funded-DOWN tokens (or vice versa). Just click Swap and input the amount.
Redeem your position After the funding decision is made for a proposal, one of its two markets becomes active and the other becomes void.
If Proposal X is funded, its Funded market will resolve based on the reported metric, and its Not Funded market tokens become worthless.
If Proposal X is not funded, its Not Funded market will resolve based on the reported metric, and its Funded market tokens become worthless.
Once the active market resolves, go to your portfolio page to collect any payouts. That's it!
┌───────────────────────────────────────────────────────────┐
│ Funding entity launches CFM │
│ - Chooses metric, proposals, timeline │
│ - Mints `Funded` and `Not Funded` tokens │
│ for each proposal │
└───────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────┐
│ Traders: beliefs & research │
│ (Participants assess each proposal in both │
│ funded and not-funded scenarios) │
└───────────────────────────────────────────────────────────┘
│ Trades
▼
┌───────────────────────────────────────────────────────────┐
│ Conditional markets │
│ - Two markets per proposal: `Funded` & `Not Funded` │
│ - Each market has its own `UP` & `DOWN` tokens │
│ - Prices reflect expected metric in each scenario │
│ - Aggregates traders’ information │
└───────────────────────────────────────────────────────────┘
│ Conditional market prices
▼
┌───────────────────────────────────────────────────────────┐
│ Decision rule │
│ - E.g., budget-based or ROI-based, using │
│ forecasted impact │
│ - Calculates forecasted impact (price of Funded-UP - │
│ price of Not Funded-UP), to find highest-value │
│ proposals │
└───────────────────────────────────────────────────────────┘
│ Selected proposals
▼
┌───────────────────────────────────────────────────────────┐
│ Funding allocation │
│ - Selected proposals receive funding │
│ - For each proposal, one market resolves and the │
│ other becomes void: │
│ - If funded: `Not Funded` tokens → 0 │
│ - If not funded: `Funded` tokens → 0 │
└───────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────┐
│ Proposals proceed & resolve │
│ - At resolution date, an oracle (e.g., Reality.eth) │
│ reports the metric value. │
│ - For funded proposals, their `Funded` tokens │
│ pay out. │
│ - For not-funded proposals, their `Not Funded` │
│ tokens pay out. │
└───────────────────────────────────────────────────────────┘
To use Butter you 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 Funding Entity wants to allocate
Metric: The metric the Funding Entity wants to increase
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
Next, we'll teach you how to start using Butter 🤝
Before launching a Conditional Funding Market (CFM), 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 range, the final resolution date, the liquidity incentives, and the decision rule used to determine which proposals get funded.
The 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:
Example: If Proposal A's Funded market predicts a score of 600,000 and its Not Funded market predicts 400,000, the forecasted impact is 200,000. With the range 0–1,000,000 mapping to $0–$1 payouts, the UP token would pay $0.60 in the funded scenario and $0.40 in the not-funded scenario.
To precisely estimate a proposal's impact, the market uses a two-step token splitting process. When a user deposits $1 of collateral for a specific proposal, it is first split into a set of two conditional tokens:
Funded token: Represents a claim on the outcome if the proposal receives funding.
Not Funded token: Represents a claim on the outcome if the proposal does not receive funding.
These conditional tokens are then split further into UP and DOWN tokens for their respective conditional scenarios:
The Funded token is split into a Funded-UP token and a Funded-DOWN token.
The Not Funded token is split into a Not Funded-UP token and a Not Funded-DOWN token.
This structure isolates the proposal's specific contribution, by comparing the price of Funded-UP token to the price of Not Funded-UP token. After the funding decision is made, one set of tokens (e.g., all Funded derivatives) proceeds to payout resolution, and the other (e.g., all Not Funded derivatives) becomes worthless.
The UP and DOWN tokens function as follows:
UP token – Gains value if the proposal's reported metric is high. Its payout ranges from $0 to $1.
DOWN token – Gains value if the proposal's reported metric is low. Its payout ranges from $0 to $1.
The sum of the UP and DOWN tokens for any given conditional outcome (e.g., "Proposal A - Funded") always equals $1. A scalar payout rule defines:
A minimum value for the chosen metric.
A maximum value .
If, at resolution, the actual measured metric for a market ends up at , its UP token pays $0 (and the DOWN token pays $1). At , the UP token pays $1 (DOWN token $0). If the reported metric is in between, the UP and DOWN tokens each pay some fraction summing to $1.
The current market price of an UP token can be interpreted as the market’s forecast of where the metric will land, normalized to the $0–$1 range. For example, if the Funding Entity sets new users and new users, and the Funded-UP token for proposal A is trading at $0.70, that means the market collectively expects the metric to reach roughly 70% of that maximum if the proposal is funded, i.e., ~700k new users.
CFM Token Flow
Traders buy and sell the UP and DOWN tokens for both the Funded market and Not Funded market scenarios based on their research and beliefs. This allows for precise expression of expectations.
e.g. If you believe a proposal will perform worse than the market expects if funded, you buy its Funded-DOWN tokens.
This continuous price discovery is how the market aggregates information to produce two distinct forecasts for each proposal: one for if it is funded, and one for if it is not. The difference between these two forecasts represents the market's estimate of the proposal's impact.
For the market's forecasts to be meaningful, the prices used to calculate them must be reliable and resistant to manipulation. A measurement based on a single, instantaneous price snapshot would be vulnerable to short-term price distortions, as a large trade could temporarily skew the forecast.
To mitigate this risk, the final forecasted impact for each proposal is not based on a single price snapshot but on a Time-Weighted Average Price (TWAP) calculated over a predefined observation period. This process ensures the final measurement reflects a stable, long-term market consensus rather than a fleeting price spike.
The details of the calculation are specific to Uniswap Foundation growth CFM 1.
The final forecasted impact for each proposal is the arithmetic mean of samples taken over a 24-hour observation period. The calculation uses a volatility-capping mechanism to make sustained price manipulation prohibitively expensive. The specific parameters are as follows:
Observation period: 24 hours.
Warm-up period: 0.5 days (immediately preceding the observation period).
Sampling frequency: Once every 60 seconds.
Volatility cap: Maximum change of $3,000,000 in forecasted TVL impact per hour.
The calculation proceeds in three stages:
Warm-up phase: For warm_up_period
days before the official observation period begins, the system takes a sample every 60 seconds. Each sample is volatility-capped, but these samples are not included in the final average. The sole purpose of this phase is to establish a manipulation-resistant baseline for the last_capped_impact
value before the observation period starts.
Observation & capping phase: During the 24-hour observation period, a sample of the forecasted impact is taken every 60 seconds. Each new sample is capped based on the value of the previous capped sample. The calculation is:
First, the per-minute absolute limit is derived from the hourly cap: $3,000,000 / 60 = $50,000
.
Let raw_impact
be the current, uncapped forecasted impact and last_capped_impact
be the value from the previous minute.
The new_capped_impact
is calculated by clamping the raw_impact
to be within the range: [last_capped_impact - $50,000, last_capped_impact + $50,000]
.
This new_capped_impact
is stored, and it becomes the last_capped_impact
for the next sample.
Final calculation: At the end of the 24-hour observation period, the official forecasted impact for each proposal is calculated as the simple arithmetic mean (the sum of all values divided by their count) of all the capped samples taken exclusively during the observation period.
The Decision Rule is the method the Funding Entity uses to translate market forecasts into a final, binding funding decision. It is what connects market prices to capital allocation. Every Conditional Funding Market (CFM) has a predefined decision rule, which specifies exactly how winning proposals are selected based on the final, time-averaged prices of their Funded
and Not Funded
markets.
CFM decisions are not based on which proposal has the highest absolute forecast, but on which has the highest Forecasted Impact. This is the key value that the decision rule evaluates.
Forecasted Impact is calculated as the difference between a proposal's Funded
market forecast and its Not Funded
market forecast. This calculation isolates the additional value the market expects a proposal to generate if it receives funding, making it a forecast of each proposal's contribution.
Different Funding Entities can use different rules. For example, a rule might be to fund the top three proposals or to fund proposals based on their return on investment until a budget is exhausted.
For the Uniswap Foundation growth CFM 1, the decision rule is to fund the top 1 proposal with the highest forecasted impact.
At a specified date several weeks or months after funding, the metric (e.g., total users, TVL, or fee revenue) is measured for each proposal's context. A Reality.eth oracle then reports this metric on-chain for the CFM contract to read.
If a proposal was funded, its Funded market tokens pay out based on the reported metric. Conversely, if a proposal was not funded, its Not Funded market tokens pay out based on the reported metric observed in the "not funded" world. The other set of tokens for each proposal, having already been determined to be invalid by the funding decision, remains worthless.
CFM (Conditional Funding Market) A mechanism that employs prediction markets to allocate funding by forecasting the impact of proposals on a chosen metric.
Collateral Token The underlying asset (e.g., USDC) that is deposited by traders to create and trade a given proposal's Funded and Not Funded markets.
Conditional Market A market that forecasts the metric contingent on a specific outcome; every proposal has two: one valuing the metric if funded (the "Funded" market) and one valuing the metric if not funded (the "Not Funded" market).
Conditional Token A token redeemable only when its linked outcome occurs: funded markets are denominated in "Funded" tokens, while not-funded markets are denominated in "Not Funded" tokens.
Decision Rule A rule used by the Funding Entity to select which proposals to fund based on the market forecasts (e.g., "fund the top 3 proposals with the highest forecasted impact").
Forecasted Impact The calculated difference between a proposal's "Funded" metric forecast and its "Not Funded" metric forecast, representing the market's estimate of the proposal's impact on the metric, if it receives funding.
Funding Entity The organization, such as a DAO, that launches a CFM to distribute funds and defines the parameters for the funding round.
Metric The specific, quantifiable measure (e.g., Total Value Locked, user count) chosen by the Funding Entity to evaluate each proposal's performance.
Oracle An on-chain service (specifically Reality.eth in this context) that reports the final, real-world value of the metric to the smart contract for market resolution.
Reported Metric The final ground truth value of the metric, e.g. TVL, reported by the oracle to the smart contract, used to determine the redemption price of UP and DOWN tokens.
UP and DOWN Tokens Each proposal has two markets—Funded and Not Funded. In each market, UP's price is the forecast of the metric under that outcome, while DOWN is simply priced at 1 − UP. E.g. "Not Funded-UP" tokens represent the market's forecast of the metric if the proposal is not funded.
CFMParameters:
oracle:
name: RealityEth
arbitration: "Example arbitration settings"
instructions: "Instructions for verifying the reported metric."
metric:
name: "Composite Ecosystem Score"
metricsInvolved:
- { name: "Users", weight: 0.5 }
- { name: "TransactionVolume", weight: 0.5 }
range:
minValue: 0
maxValue: 1000000
mappingDescription: "Linearly maps actual score to a $0–$1 payout range."
collateralToken: "USDC"
resolutionDate: "2024-12-31T23:59:59Z"
proposals:
- { id: "A", name: "Proposal A", askAmount: 10000 }
- { id: "B", name: "Proposal B", askAmount: 5000 }
- { id: "C", name: "Proposal C", askAmount: 15000 }
decisionRule:
type: "TopN"
N: 2
description: "Fund the two proposals with the highest forecasted impact (the difference between their Funded market and Not Funded market forecasts)."
liquidityIncentives:
totalRewardPool: 2000
$1 Collateral Deposited
(for a single proposal market)
│
▼ (Split)
┌─────────────┴─────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Funded token │ │ Not Funded token │
└─────────────────────┘ └─────────────────────┘
│ │
▼ (Split) ▼ (Split)
┌───────────┴───────────┐ ┌───────────┴───────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Funded-UP │ │ Funded-DOWN │ │ Not Funded-UP │ │ Not Funded-DOWN │
│ (0..$1) │ │ (remainder) │ │ (0..$1) │ │ (remainder) │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
Quick read • Every proposal has two markets—Funded and Not Funded—both predicting the same metric (e.g., average Unichain TVL over a 30-day period) under opposite conditions. • Compare the market's current implied forecast for that metric with your own analysis. • An accurate forecast that differs from the market consensus represents a potential trading opportunity.
Trading that corrects mis-priced forecasts is doubly valuable: you earn the spread and push capital toward the proposals the market now sees as most impactful.
If your forecast is higher than the market's implied forecast, it suggests the scenario is undervalued.
If your forecast is lower than the market's implied forecast, it suggests the scenario is overvalued.
This difference between your valuation and the market's represents a potential forecasting edge.
Example The Not Funded market for a proposal implies a 30-day trailing average TVL of $18m. However, your analysis suggests the baseline is closer to $14m. This discrepancy indicates the market may be overestimating the metric in the Not Funded scenario.
Takeaway You forecast the trailing 30-day Unichain TVL over the one-month evaluation period after markets close (in this case July 10 - August 10th) not a single end-of-period snapshot.
Details
Average TVL weights when growth happens: fast early growth raises the average more than late-period growth.
The scalar range is mapped so that $0 corresponds to 0 TVL and $1 to a Funding-Entity-defined upper bound (see the CFM parameters).
Therefore, a market forecast implying a $0.70 payout means the metric is expected to reach “≈70% of max TVL on average.”
Example – If the upper bound is $40 M and the market's implied forecast for the Funded market corresponds to a 0.25 payout, it implies a $10 M average TVL (0.25 × 40 M) for the 30-day period following funding.
Takeaway Project the metric’s baseline path without new funding: extend existing trends, account for announced but unfunded events, and sanity‑check with comparables.
Details
Current trend
Identify drivers (new chain launch, incentives running down, security incident, macro moves, airdrop expectations).
Classify each driver as persistent or one‑off.
Sustainability check
Compare with similar protocols on DefiLlama or the same protocol on other chains straight after launch.
Look for mean‑reversion signals (e.g., inflated TVL from mercenary liquidity).
External shocks
Governance votes, token unlocks, or competing protocol launches within the evaluation period can alter adoption.
Volatility reference
Use historical 30-day TVL volatility of analogues to size error bars.
Write the baseline number
Express it as an average TVL; translate to the $0–$1 payout scale.
Example baseline – Protocol currently holds $11 M TVL and has lost $2 M over the last 30 days (-15 %). Assuming the same bleed continues, average TVL for the next 30-day period ≈ $10 M. With upper bound $50 M, this implies a payout of 10 ÷ 50 = 0.20.
Takeaway Start with your Not Funded baseline, then layer on proposal impact—mainly the effect of incentives, product upgrades, and marketing funded by the grant.
Details
Reuse Not Funded analysis
Everything that moves TVL without the grant still matters with funding.
Quantify proposal impact
Incentive magnitude and timing
Check the proposal’s requested amount and emission schedule.
Benchmark versus the Key metrics → Incentives table on DefiLlama (expand to view 24 h, 30 d, and cumulative emissions).
e.g. – If similar protocols show a median $3 M TVL bump per $10 K in incentives over 30 days, a $100 K grant suggests ≈ $30 M incremental TVL.
Mechanism design
Targeted liquidity mining, ve‑token models, volume rebates—all influence stickiness and effectiveness.
Lead time
Grants paid near the end of the evaluation period may only minimally impact the 30‑day average.
Speed to new equilibrium
Investigate how long similar protocols took for TVL to increase after incentives began (DefiLlama TVL chart).
Example – Past launches hit 80% of their eventual uplift within 7 days; if incentives start on day 15, only ~½ of the uplift affects the 30-day average.
Execution risk
Track record, technical complexity, etc. Discount accordingly.
Cross‑scenario sanity
Ensure your Funded forecast ≥ Not Funded forecast (unless the proposal has negative value!).
Convert to payout scale
Add the incremental TVL to the baseline, then map to the $0–$1 scalar range.
Putting it together – Baseline $10 M + incentive uplift $30M = $40M. Implied payout with 50M cap = 40M ÷ 50M = 0.8. Compare this with the market's implied forecast.
Metric shock risk – The longer the evaluation period, the more unknowns (security hacks, macro swings). Your forecast should account for this increased range of potential outcomes, if you do not plan to close out your position during the trading period.
Historical and live TVL
Each protocol's page (Include Borrowing TVL) &
Incentive benchmarks
→ Key metrics → Incentives (expand for 24 h / 30 d / cumulative)
Forecasting insights & discussion
Proposal details
→ proposal page → Click "Project application" link
Macro market context
L2 TVL dashboards, ETH gas trends, stablecoin supply
Crowd sentiment
Butter market prices at
Butter Conditional Funding Markets (CFMs) feature two distinct markets for each proposal, to precisely estimate its impact. This page explains this structure. We will use Total Value Locked (TVL) as an example metric; actual CFMs may use different metrics.
For each proposal (e.g., "Proposal X"), you will find:
Funded market: Predicts the protocol's TVL if Proposal X receives funding. "Funded" means the proposal is selected and gets its requested capital.
Not Funded market: Predicts the protocol's TVL if Proposal X does not receive funding.
Screenshot of a proposal's metric estimate in the Funded and Not Funded scenarios:
These markets allow the CFM to isolate the proposal's specific contribution. If the Funded market for Proposal X predicts $15M TVL and the Not Funded market predicts $10M TVL, the market estimates Proposal X will add $5M TVL if funded.
Funded-UP
You believe TVL will be higher than current market prediction if the proposal gets funded
Funded-DOWN
You believe TVL will be lower than current market prediction if the proposal gets funded
Not Funded-UP
You believe TVL will be higher than current market prediction if the proposal doesn't get funded
Not Funded-DOWN
You believe TVL will be lower than current market prediction if the proposal doesn't get funded
Your goal is to assess if the current market-predicted TVL in either scenario (Funded or Not Funded) is an over or underestimate. Each market has its own UP and DOWN tokens, where UP tokens gain value with higher final TVL, and DOWN tokens with lower final TVL.
For Proposal X's Funded market: If its price implies $15M TVL if funded:
Believe TVL will be >$15M? Buy Funded-UP tokens for Proposal X.
Believe TVL will be <$15M? Buy Funded-DOWN tokens for Proposal X.
Screenshot of the trading widget for an example proposal's Not Funded scenario:
(the green and red buttons facilitate purchases of Not Funded-UP tokens and Not Funded-DOWN tokens respectively)
For Proposal X's Not Funded market: If its price implies $10M TVL if not funded:
Believe TVL will be >$10M even without funding? Buy Not Funded-UP tokens for Proposal X.
Believe TVL will be <$10M without funding? Buy Not Funded-DOWN tokens for Proposal X.
Important: Compare your TVL belief against the market's current predicted TVL for that specific scenario before buying. Do not buy UP tokens irrespective of the market price.
Every market fixes a minimum and maximum TVL—say $0 and $100 M.
At the minimum: UP pays $0, DOWN pays $1.
At the maximum: UP pays $1, DOWN pays $0.
In between: UP pays whatever fraction of the $0–$1 range the final TVL represents; DOWN pays the rest so the two always add to $1.
The live UP price is simply the market’s guess of that fraction. If a Funded-UP token trades at $0.70 in a $0–$100 M range, traders expect funding to lift TVL to about $70 M. Buy UP if you think the TVL will finish higher than that, or DOWN if you think it will finish lower.
No, these are different.
Funded-DOWN token (for Proposal X): You predict low TVL if Proposal X is funded.
Not Funded-UP token (for Proposal X): You predict high TVL if Proposal X is not funded.
They are inverses only if the proposal has zero expected impact.
The Funded market and Not Funded market for a proposal predict the same metric (e.g., TVL) under mutually exclusive conditions.
Their predicted TVL values can change based on shared information (e.g., general ecosystem news) or information specific to one scenario. They are not expected to move in exact lockstep, and their predicted TVLs do not sum to a fixed value.
After funding decisions:
If Proposal X is funded: Its Funded market tokens resolve based on actual TVL at the resolution date. Its Not Funded market tokens become worthless.
If Proposal X is not funded: Its Not Funded market tokens resolve based on actual TVL at the resolution date. Its Funded market tokens become worthless.
Tip -- Tell the market why you bought! Once you've opened your position, it's in your interest to share your analysis/rationale with other traders, so they move the price towards your target, hence improving your chance of exiting at a profit without needing to hold until resolution.
Takeaway The trading period is liquid; the evaluation period is not. Decide whether you aim to exit either during the trading period or once the evaluation period ends (at the resolution date).
Details
Trading period
From market launch until funding decision
High
Enter, adjust, or exit positions freely.
Evaluation period
1 month after trading ends
Very low
Exit only by waiting for market resolution.
Exiting during the trading period frees capital and removes one month of metric risk—but only works if the market price moves toward your view before the trading period ends.
Calc – Buy Funded‑UP at 0.22 expecting it to reach 0.28 before the period ends. If you sell at 0.275 your gross return is 5.5 c (25 %) on each token, realised in days not months.
Takeaway Only open or close a position if the actual execution price still leaves room for profit after accounting for price impact and fees.
Details
AMM depth matters – Large orders move price along the bonding curve. Check your "Post‑trade price" and % "Price impact" in the trade confirmation dialogue.
Break‑even check – Your forecast edge must exceed (i) expected price impact on entry and exit, (ii) trading fees, and (iii) the time value of locked capital.
Rule of thumb – If you think true price is 0.28 and price impact means your trade's average buy price moves from 0.24 → 0.26 (2 c impact) then you later exit at 0.27 (1 c impact), your net gain is 0.27 – 0.26 ≈ 0.01. Edges < 1 % rarely cover risk.
Staggered execution – Splitting a large order into smaller clips can reduce cumulative slippage, as it gives the market time to recover between each trade, at the risk of the price moving against you in the interim.
Liquidity risk – Post‑trading‑period exits require waiting until the resolution date; size positions accordingly.
Manipulation – A deep‑pocketed trader can temporarily distort price. Treat large unexplained moves as potentially profitable entry points to trade against! Buy the UP or DOWN tokens you believe are mispriced.