Foundations
Rabbithole — The platform behind Time-Based Incentives. Rabbithole runs the operational layer end-to-end: indexing on-chain events, computing rewards, publishing snapshots, and serving campaign data. References to “the operator” in these docs mean Rabbithole. Developer identifiers still carry the Boost name, such as the@boostxyz/tbi-sdk package and the api-tbi.boost.xyz host.
Campaign — A single incentive program: a reward budget paid out continuously at a set rate against a chosen target position. Each campaign has its own configuration — targets, budget, schedule, eligibility, and any modes.
Creator — The team or address that funded and configured a campaign.
Eligibility — Who is allowed to earn from a campaign. Three options: open, allowlist, or verified.
Mode — A stackable rule that shapes who earns and how much within a campaign. See Campaign Modes for the full catalog.
rabbithole.gg — Rabbithole’s consumer-facing app, where users discover campaigns, hold positions, and claim rewards. Teams running campaigns can monitor live stats here too.
Target — The on-chain position that counts toward earning. Could be a token, a vault share, an LP position, or another protocol position.
Time-Based Incentives (TBI) — A reward program where users earn in proportion to how much eligible balance they hold and how long they hold it. Rewards drip continuously over the campaign window.
Earning mechanics
Accrued rewards — The reward total a user has earned but not yet claimed. Updates continuously as their position changes. Drip — The continuous flow of rewards out of a campaign budget. The drip rate is set bytotal budget ÷ duration and runs every second the campaign is active. On a campaign that can be topped up, the daily rate is set directly and the duration follows from the budget.
Eligible balance — A user’s position size as it counts for rewards. Modes can transform raw balance into eligible balance — capping it, multiplying it, or zeroing it out below a threshold.
Eligible position — A user’s holding of a campaign’s target, after eligibility rules have been applied. A user with the right asset but the wrong eligibility (e.g., not on an allowlist) does not have an eligible position.
Merkle root — The cryptographic commitment to a snapshot, published on-chain. Users prove their claim against the latest root.
Position — A user’s holding of a campaign’s target asset. Tracked per user, per campaign.
Reward rate — Same as drip rate. The amount of reward token paid out per second of the campaign.
Share — A user’s slice of the drip at a given moment. share = your eligible balance ÷ total eligible balance. Recomputed continuously as people enter and exit.
Snapshot — A periodic on-chain publication of cumulative rewards. Once a snapshot lands, the user’s accrued earnings up to that point become claimable. Sometimes called a reward snapshot to distinguish it from a snapshot block.
Snapshot block — A specific historical block used as a reference point. Used by the New Capital mode to measure pre-existing balance.
Trigger — The moment a user first becomes eligible to earn — typically when their balance moves from zero to non-zero and any eligibility checks pass. After triggering, they accrue continuously while the position stays active.
TVL — Total Value Locked. The aggregate eligible balance currently active in a campaign.
Lifecycle phases
See Campaign Lifecycle for the full arc. Active — The campaign is live.startTime has passed, endTime hasn’t, and the budget hasn’t run out. Users earn continuously.
Cancelled — The campaign was ended early by the creator or admin. Already-accrued rewards stay claimable on the normal schedule.
Closed — The claim window has expired. Anything still unclaimed can be reclaimed by the creator.
Configured (Pending) — The campaign is deployed and funded, but startTime hasn’t hit. No earning yet.
Ended — endTime has passed, the budget has run out, or the campaign was stopped early. Earning has stopped, but the system is still settling.
Finalized — The final snapshot is locked. Total distributed rewards are confirmed and the creator can recover any unspent budget.
Schedule
Campaign window — The interval betweenstartTime and endTime during which earning happens.
Claim window — The period after a campaign finalizes during which users can still claim earned rewards. Standard campaigns use a 60-day window; configurable per campaign.
endTime — When earning stops on the standard schedule. On a campaign that can be topped up, it is the latest end date: the campaign usually stops earlier, when its budget runs out.
Funded until — On a campaign that can be topped up, the date its current budget lasts until at the full daily rate. A top-up pushes it later, and quiet periods or Capped APY can only make the campaign run past it.
startTime — When earning begins.