Rewards
Drops
Token pots a sponsor pays to the people ranked on the boards: who may fund one, the snapshot, the claim and the fee.
Status#
A sponsor pays a pot of a token to the people ranked on the platform’s boards. SponsoredDropFactory.fund checks the request, pays the fee and deploys one SponsoredDrop clone holding the measured pot. A drop is non-refundable once funded; the sponsor is recorded, never paid.
Who may fund a drop#
| Check | Rule |
|---|---|
| Market data | A token’s market cap and USD price, signed by the drop eligibility attestor and checked by DropEligibilityAttestor; decimals re-read on chain |
| Market-cap floor | $500,000 for a token outside CurrencyRegistry. ETH and listed currencies are priced from the platform’s own posted prices instead |
| Recipients | At least 1,000 slots across the drop’s boards |
| Per recipient | The sponsor’s minimum must be worth at least $5; a maximum is set too |
| Snapshot day | From 30 days before funding to 90 days after (DROP_SNAPSHOT_LAG_DAYS, DROP_SNAPSHOT_LEAD_DAYS) |
| Vesting | Sponsor’s choice, 0 to 90 days (DROP_MAX_VESTING) |
quote() on the factory runs exactly the checks and arithmetic fund will, so the fee shown before funding is the contract’s own figure.
Boards and recipients#
| Board | Windows |
|---|---|
| Spending · Earnings · Creators · Traders · KOLs and referrers | Day, month or all-time |
| Bands | Month only |
Board shares must sum to exactly 10,000 bps, and each board must be able to pay every slot the minimum without paying anyone above the maximum. Every board measures on-platform activity only.
The 10% marketing fee#
// SponsoredDropQuoter.quote — feeBps 1000 (10%) on production
dropValueUsd = pot × usdPerToken / 10^decimals
tier = highest tier whose lower bound ≤ the market cap
tokenLeg = pot × feeBps × (10_000 − currencyShareBps) / 10^8 // in the dropped token
currencyLeg = dropValueUsd × feeBps × currencyShareBps / 10^8 // in ETH or a listed currency| Market cap from | Fee currency | Dropped token |
|---|---|---|
| $500,000 | 100% | 0% |
| $2,500,000 | 80% | 20% |
| $10,000,000 | 60% | 40% |
| $50,000,000 | 40% | 60% |
| $100,000,000 | 20% | 80% |
Both legs go directly to the marketing treasury, re-checked against TreasuryRegistry on every payment. The fee is sold visibility and the sponsor sizes the drop, so it never passes ProtocolFeeSplitter and never meters. maxCurrencyLeg caps what the sponsor pays in the fee currency.
Snapshot, root, veto, claim#
| Step | Who | When |
|---|---|---|
| Snapshot window ends | — | 00:00 UTC after the snapshot day |
publishRoot | The snapshot keeper (the factory’s snapshotKeeper()) | Within 30 days of the window end (DROP_PUBLISH_DEADLINE). The root’s declared total may not exceed the pot |
vetoRoot | The factory owner | Within 24 hours of publication (DROP_VETO_WINDOW). The keeper republishes, and the publish deadline extends to at least 24 hours after the veto |
| Claims start | — | Publication + 24 hours, with no further action |
claim(account, amount, proof) | Anyone; pays only account | Linear vesting from claim start. The first claim must come within 30 days (DROP_FIRST_CLAIM_WINDOW) |
| Final deadline | — | Vest start + vesting + 30 days |
What happens to what nobody claims#
sweep() is permissionless and sends only what is no longer owed: value the root never allocated, the allocations of accounts that missed the first-claim window, everything left after the final deadline, or the whole pot if no root was published in time.
| Dropped token | Goes to |
|---|---|
| THD | The Fortune Wheel’s THD pool. See The Woods |
| A registered jackpot currency without transfer fees | The Fortune Wheel’s jackpot pot for that currency |
| Anything else | The marketing treasury |