The ERC20 Pegged Variable Criteria Incentive is a specialized protocol incentive that allows for the distribution of ERC-20 assets with rewards pegged to the value of another token, where the reward amount is determined by transaction criteria. This enables creating dynamic rewards that maintain a specific value relative to a pegged asset, with the actual reward amount varying based on transaction data.Documentation Index
Fetch the complete documentation index at: https://docs.boost.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Smart Contract
Read the smart contracts
Typedoc
See technical documentation
SDK Implementation
See the source
Key Features
- Rewards pegged to the value of another token
- Dynamic reward amounts based on transaction criteria
- Variable reward calculation using event or function data
- Maximum reward cap per claim
- Total distribution limit in reward asset tokens
- Managed access for incentive control and clawbacks
Unlike budgets, allowlists, and validators, incentives cannot be re-used between multiple Boosts.
To peg rewards to the chain’s native token (e.g., ETH), use
zeroAddress (0x0000000000000000000000000000000000000000) as the peg parameter. This tells the protocol to use the native token’s price for calculations.Setting Up Incentive Criteria
The incentive criteria determines how the reward amount is extracted from transaction data. You can configure it to read values from either contract events or function calls.Criteria Configuration
The criteria object requires four fields:criteriaType: EitherSignatureType.EVENTfor event logs orSignatureType.FUNCfor function callssignature: The event or function signature to match againstfieldIndex: Which parameter in the event/function to extract the value from (0-based index)targetContract: The contract address to watch for the event/function
You can use the
@boostxyz/signatures package to get pre-defined event signatures instead of using raw hex values. For example: import { selectors } from '@boostxyz/signatures/events'Example: Event-based Criteria
Here’s an example setting up criteria to extract an amount from a Transfer event:Example: Function-based Criteria
Here’s an example setting up criteria to extract an amount from a mint function:maxReward parameter if necessary.
Create a new ERC20PeggedVariableCriteriaIncentive
The manager parameter specifies an address that has administrative control over the incentive. This address can perform management operations like triggering clawbacks of undistributed rewards if needed.