Events
The indexer routes known event topics by signature and preserves unknown logs as raw protocol events.
#Farming events
| Event | Use |
|---|---|
| PoolAdded / PoolConfigured | Pool terms and active state |
| Deposit | Requested, received, fee, and credited stake |
| Withdraw | Returned credited principal |
| Harvest | Transferred base reward |
| RewardLocked | Reward held until the user timer opens |
| EmergencyWithdraw | Returned principal and stored locked reward forfeiture; its forfeitedRewards field excludes unsettled pending base rewards that the exit also abandons |
#Emission and referral events
| Event | Use |
|---|---|
| RateScheduled | Emission checkpoint change |
| RewardsReleased | Base budget release and cumulative total |
| ReferralBound | Permanent invitee to referrer binding |
| TierSnapshot | Tier inputs observed at a base reward |
| CommissionPaid / InviteeBoostPaid | Referral-category payment |
| ReferralPayoutClipped | A nonzero vault payment was below the request because of remaining budget, the per-payout cap, or the recipient/category lifetime cap |
| ReferralReserveExhausted | WeedReferral observed a payment below its preview; despite the name, this does not prove that the global referral reserve is empty |
#Programs and v3 events
- ProgramCreated, ProgramScheduled, Staked, Withdrawn, RewardPaid, and EmergencyWithdrawal describe finite programs.
- IncentiveCreated and IncentiveEnded describe a funded direct-v3 reward window.
- TokenDeposited, TokenStaked, TokenUnstaked, RewardClaimed, and TokenWithdrawn describe NFT custody and rewards.
- VaultCreated, Deposited, Redeemed, and FeesCollected describe vault identity and share flows.
- PositionLocked and PositionWithdrawn describe locker custody. BootstrapFundsReleased describes only a reserve transfer; it does not prove position creation or NFT locking.
#Indexing rules
Use chain ID, transaction hash, and log index as an idempotent event key. Preserve block hash and parent hash, wait for the configured confirmation depth, and rewind canonical data when a parent mismatch indicates a reorg.
#Events are not complete state
Read current contract state alongside events. A configuration event can be superseded, an index can lag, and event fields can require contract decimals or pool context. Never derive a live balance from marketing copy or an unconfirmed log alone.
