Tokenomics

Understanding the economic model of Precognition, including fee structures, reward distribution, and incentive mechanisms that drive participation.

Creator Fee

0-20%

Configurable fee (max 2000 bps) deducted from each stake

Winner ROI

Variable

Based on ratio of winning to losing pool stakes

Refunds

100%

Full stake returned if prediction is cancelled

Fee Structure

When a user stakes tokens on a prediction, a creator fee is deducted and sent to the treasury. The remaining amount goes to the reward pool.

Fee Flow

User Stakes
100 tokens
Split
5% → Treasury
95% → Reward Pool
Note: The creator fee is configured at market initialization via creator_fee_bps and cannot exceed 2000 basis points (20%).
Fee Calculation (Rust)
Rust
1// Fee calculation in stake_vote instruction
2let creator_fee = amount
3 .checked_mul(market.creator_fee_bps as u64)
4 .unwrap()
5 .checked_div(10000)
6 .unwrap();
7
8let stake_after_fee = amount.checked_sub(creator_fee).unwrap();
9
10// Transfer fee to treasury
11transfer(
12 CpiContext::new(/* ... */),
13 creator_fee,
14)?;
15
16// Transfer stake to reward pool
17transfer(
18 CpiContext::new(/* ... */),
19 stake_after_fee,
20)?;

Reward Distribution

When a prediction is resolved, winners receive their original stake plus a proportional share of the losing pool based on their contribution to the winning pool.

Reward Formula

Winner's reward:
reward = user_stake + (losing_pool × user_stake ÷ winning_pool)
Example:
Winning Pool (VALID):
1,000 tokens
Losing Pool (FUD):
800 tokens
Your Stake:
100 tokens
Your Share:
100 / 1000 = 10%
Losing Pool Share:
800 × 10% = 80 tokens
Total Reward:
100 + 80 = 180 tokens
Reward Calculation (Rust)
Rust
1// Reward calculation in claim_rewards instruction
2let winning_pool = if prediction.winning_side == Some(VoteSide::Valid) {
3 prediction.valid_stake_total
4} else {
5 prediction.fud_stake_total
6};
7
8let losing_pool = if prediction.winning_side == Some(VoteSide::Valid) {
9 prediction.fud_stake_total
10} else {
11 prediction.valid_stake_total
12};
13
14// Winner's reward = their stake + proportional share of losing pool
15let user_reward = user_stake.amount
16 .checked_add(
17 losing_pool
18 .checked_mul(user_stake.amount)
19 .unwrap()
20 .checked_div(winning_pool)
21 .unwrap()
22 )
23 .unwrap();

Interactive Calculator

Fee Calculator

100 tokens
500 bps (5.0%)
Fee Amount:5.00 tokens
Stake After Fee:95.00 tokens

Reward Calculator

1,000 tokens
800 tokens
100 tokens
Your Pool Share:10.00%
Losing Pool Share:+80.00 tokens
Total Reward:180.00 tokens
ROI:+80.00%

Economic Incentives

For Participants

  • Risk/Reward: Higher potential returns when betting against the crowd (minority position)
  • No Lock-up: Stakes are only locked until prediction resolution
  • Full Refunds: 100% refund if quorum not reached

For Protocol

  • Sustainable Revenue: Creator fees fund ongoing development and oracle operations
  • Aligned Incentives: Higher participation = more fees = better oracle
  • Quorum Mechanism: Ensures meaningful participation before resolution

Configurable Parameters

These parameters are set at market initialization and affect all predictions

ParameterTypeConstraintsDescription
creator_fee_bpsu160 - 2000Fee in basis points (100 bps = 1%)
min_stake_amountu64> 0Minimum stake in token base units
voting_durationi643600 - 604800Duration in seconds (1h to 7d)
quorum_min_votesu32> 0Minimum votes for resolution