Bounties vs. Incentives
The Signals protocol offers two distinct reward mechanisms: Bounties (initiative-specific, externally funded) and Incentives (board-wide, DAO-funded). Understanding the difference is crucial for both board creators and participants.
Quick Comparison
| Aspect | Bounties | Incentives |
|---|---|---|
| Scope | Per-initiative | Board-wide |
| Who funds | Anyone (external contributors) | DAO/Board owner |
| When added | Anytime before acceptance | Before board opens |
| Token types | Multiple ERC20s (whitelisted) | Single ERC20 (reward token) |
| Distribution | On initiative acceptance (when wired) | On initiative acceptance |
| Reward basis | Proportional to lock amount | Time-weighted (early supporters favored) |
| Configuration | Per-bounty expiration | Board-level pool |
| Claiming | Manual (when implemented) | Auto-claimed on redemption |
| Contract | Bounties.sol | IncentivesPool.sol |
Bounties: Initiative-Specific External Rewards
Bounties are externally funded rewards attached to specific initiatives, allowing anyone to incentivize particular proposals. The current Signals protocol does not yet invoke the Bounties contract on acceptance or expiration.
Key Characteristics
1. Initiative-Specific- Each bounty is attached to exactly one initiative
- Contributors choose which initiatives to fund
- Multiple bounties can be added to the same initiative
- Bounties stay with the initiative regardless of outcome
- Anyone can add a bounty (not just board owner)
- Contributors provide their own ERC20 tokens
- No central pool - distributed funding model
- Tokens transferred immediately when bounty added
- Support for any whitelisted ERC20 token
- TokenRegistry manages whitelist
- Can mix USDC, DAI, custom tokens, etc.
- Each token distributed separately
- Three-way distribution on acceptance:
- Protocol fee (e.g., 5%)
- Supporter rewards (e.g., 20%)
- Treasury allocation (e.g., 75%)
- Splits configurable by bounties owner
- Versioned to prevent retroactive changes
- Supporter share based on locked amount
- Formula:
supporterShare = (lockedAmount / totalLocked) * voterAmount - All supporters treated equally regardless of timing
- No time-weighting applied
How Bounties Work
Adding a Bounty
Contributors approve the bounty token and call addBounty with the initiative ID, token, amount, optional expiration, and terms.
Distribution on Acceptance
When the initiative is accepted, Signals triggers distribution; the Bounties contract applies the configured splits and allocates supporter shares proportionally to locked amount.
Bounties Use Cases
Perfect for:- 🎯 Specific feature requests - Fund implementation of particular features
- 💰 External sponsorships - Companies funding relevant proposals
- 🏆 Competition prizes - Reward best proposals in a category
- 🤝 Community contributions - Anyone can boost proposals they care about
- 📊 Focused incentivization - Target specific outcomes
Incentives: Board-Wide Time-Weighted Rewards
Incentives are DAO-funded reward pools that incentivize early support across all initiatives on a board, with time-weighted distribution favoring early participants.
Key Characteristics
1. Board-Wide Pool- Single pool for entire board (not per-initiative)
- Funds all accepted initiatives from one source
- Pre-funded before board opens
- Maximum reward per initiative configured
- Board owner/DAO provides funding
- Centralized reward pool
- Controlled distribution via IncentivesPool contract
- Budget set at board creation time
- One ERC20 token for all rewards
- Typically DAO governance token
- Consistent reward denomination
- Simplified accounting
- Early supporters get MORE rewards
- Based on lock creation time relative to board opening
- Uses linear decay curve from board open to acceptance
- Incentivizes early signaling
- Rewards auto-claimed on redemption
- No separate claim transaction needed
- Calculated when initiative accepted
- Gas-efficient for supporters
How Incentives Work
Time-Weighted Calculation
Incentives use time buckets derived from opensAt and the incentives curve parameters. Earlier buckets receive higher multipliers, so early supporters earn more.
Earlier locks receive a higher weight share because t is smaller closer to board open.
Distribution on Acceptance
On acceptance, rewards are calculated and become claimable; redemption auto-claims incentives.
Incentives Use Cases
Perfect for:- Early signaling incentives - Reward those who identify good proposals first
- Board-wide participation - Encourage activity across all initiatives
- First-mover advantage - Create urgency to support early
- Quality discovery - Reward scouts who find good proposals
- Momentum building - Kickstart initiative support with rewards
Reward Calculation
Bounties: supporterReward = (supporterLocked / totalLocked) * voterPoolAmount
Incentives: supporterReward = (supporterWeight / totalWeight) * poolAllocation, where weights are derived from time buckets and curve parameters
Token Management
Bounties:- Multiple token types (USDC, DAI, custom tokens)
- Whitelisting via TokenRegistry
- Each contributor chooses token
- Complex tracking (mixed denominations)
- Separate claims per token
- Single reward token (typically DAO token)
- Simple accounting
- Auto-claimed on redemption
- Gas efficient
- No token flexibility
Distribution Control
Bounties: split allocations and receivers are configurable and versioned by the Bounties owner.
Incentives: configuration is provided when linking the pool before board open and cannot be changed afterward.
Timing Constraints
Bounties:- Add anytime before acceptance
- Optional expiration per bounty
- Expired bounties excluded from distribution
- Flexible contribution timing
- Must set up BEFORE board opens
- Pool must be linked before opening; pool funding can happen anytime
- Board budgets are fixed at approval time
- Requires upfront commitment
Claiming Process
Bounties: balances are tracked, but claim/withdrawal is not implemented yet.
Incentives: auto-claimed on redemption after acceptance/timelock.
Can You Use Both?
Yes. Incentives are board-wide and bounties are initiative-specific. Supporters receive incentives on redemption, and bounty balances (when distribution/claims are wired) separately.
For detailed technical implementation including function signatures, data structures, formulas, and code examples, see:
- Initiative Interactions Reference - Bounties technical details
- Incentives Configuration Reference - Incentives technical details
