Learn about how to interact with an ERC20Incentive using the SDK
The ERC20 Incentive is an essential protocol incentive that allows for the distribution of native and ERC-20 assets, supporting raffle functionality as well as basic fixed rewards. On Boost creation, a predetermined amount of the specified asset is transferred into this incentive from the associated budget.
The Boost V2 Docs are under active development and will be subject to changes.
import { BoostCore } from '@boostxyz/sdk/BoostCore'import { StrategyType } from '@boostxyz/sdk/claiming'import { config } from "./config";const core = new BoostCore({ config });await core.createBoost({ maxParticipants: 10n, budget, action, allowList, incentives: [ core.ERC20Incentive({ asset: '0xERC20' || zeroAddress, // use zero address for native assets reward: parseEther("1"), // how much to distribute on each claim, with the RAFFLE stratgy, the total reward is `parseEther("1") * limit` limit: 10n, // how many times can this incentive be claimed strategy: StrategyType.POOL || StrategyType.RAFFLE, manager: budget.assertValidAddress(), }), ],});
// if an incentive address is known, directly construct itconst incentive = core.ERC20Incentive("0xc55F719709bDad022B320E76f9DfF7e6F5680767")// or if you want a budget from a specific chainconst incentiveOnBase = core.ERC20Incentive( "0xc55F719709bDad022B320E76f9DfF7e6F5680767", { chainId: 8453 })// or accessible off of a a pre-exiting Boostconst boost = await core.getBoost(0n)const incentive = boost.incentives.find(incentive => incentive instanceof ERC20Incentive)