Process & token flow
Funding round setup
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:
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
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.
Trading phase
Depositing collateral and token splitting
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
$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) │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
Trading and price discovery
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.
Observation period
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.
How the impact TWAP is calculated
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 thelast_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 andlast_capped_impact
be the value from the previous minute.The
new_capped_impact
is calculated by clamping theraw_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 thelast_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.
Decision rule
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.
The role of forecasted impact
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.
The current decision rule
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.
Metric resolution
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.
Last updated