Distribution Bundles
Distribution bundles are modules of code designed to determine what addresses should be credited and how many rewards they will receive for a given period when a campaign is active. These bundles are run frequently (multiple times an hour) and manage any rewards that should be allocated over the interval from the last distribution execution.
Overview
Distribution bundles play a crucial role in reward campaigns by:
- Determining eligible addresses for rewards
- Calculating reward amounts for each eligible address
- Periodically running to update reward allocations
Bundles are configured per campaign to analyze rewards per block, leading to deterministic and consistent reward calculations. Once rewards are allocated to a user those funds cannot be reallocated to another user, this provides consistent and dependable tracking of rewards and close to real time updates.
Distribution bundles follow a similar pattern to other WASM bundles used in Steer, with configurations and an interface. To learn more about creating your own distribution bundle, read the guide. These bundles do differ in that they are not run by Steer nodes, nor is there voting to reach consensus. These bundles should be deterministic in most cases and are public, anyone can verify distributions.
Endless Possibilities
Distribution bundles are incredibly flexible with what actions can be incentivized, protocols can write their own general distribution bundles or make bespoke distributions that might incorperate various actions like:
- Following an account on social media
- Holding a certain token or NFT
- Participating in a protocol
- Much more
We are excited to build new and innovative distribution bundles along side the community!
Example: Incentivizing Liquidity Providers
When incentivizing liquidity providers (LPs) on a liquidity pool:
- The campaign begins
- The distribution bundle runs periodically
- It pulls all active LPs
- Factors in additional parameters (e.g., ALM positions)
- Factors any whitelists or blacklisted users
- Assigns rewards to users
- Tracks claims and adds them to pending claims for the campaign
Claims will be available on the next publishing of rewards.