Skip to main content

Bribes, BribeFactoryV3 & RewardsDistributor

  • BribeFactoryV3: 0x6d0f63bEDb9E5A10B0143017A0fcc5c04cC5A606
  • RewardsDistributor: 0xA5c526a74b2262503200Bd4359212014cfE31f95

Bribes

Bribes contracts are deployed per gauge by BribeFactoryV3. Each pool has an internal bribe (trading fees routed to voters) and an external bribe (third-party incentives). Source: bark_contracts/ve3/contracts/Bribes.sol.

FunctionDescription
notifyRewardAmount(address token, uint256 amount)Add a bribe in token for the current epoch.
earned(address token, uint256 tokenId) → uint256Claimable bribe for a veNFT in token.
getReward(uint256 tokenId, address[] tokens)Claim bribes (usually called via VoterV4.claimBribes).
rewardsListLength() → uint256 / rewardTokens(uint256) → addressEnumerate bribe tokens.

Resolve a pool's bribe contracts from the GaugeCreated event or VoterV4's internal/external bribe getters, then claim via VoterV4.claimBribes / claimFees.

RewardsDistributor

Distributes the rebase (anti-dilution) portion of each weekly emission to veNFT holders, Curve-style. Source: bark_contracts/ve3/contracts/RewardsDistributor.sol.

FunctionDescription
claim(uint256 _tokenId) → uint256Claim the accrued rebase into a veNFT.
claim_many(uint256[] _tokenIds) → boolBatch claim for several veNFTs.
claimable(uint256 _tokenId) → uint256View the claimable rebase for a veNFT.

Key events

  • Bribes: RewardAdded(address rewardToken, uint256 reward, uint256 startTimestamp), RewardPaid(address indexed user, address indexed rewardsToken, uint256 reward)
  • RewardsDistributor: CheckpointToken(uint256 time, uint256 tokens), Claimed(uint256 tokenId, uint256 amount, uint256 claim_epoch, uint256 max_epoch)
On this page
Jump to a section