Skip to content
LogoLogo

Manage & Claim Fees

Register the curator

The vault.owner() sets the curator in CuratorRegistry. This links a vault to the curator address that will manage fee settings and claim curator fees.

Find the up-to-date CuratorRegistry address on the Addresses page.

Register curator example

Curators are set via setCurator on CuratorRegistry (Contract | Interface).

curatorRegistry.setCurator(vaultAddress, curatorAddress)

Authorization rules:

  • First-time curator: the caller must be the vault.owner().
  • Updating curator: the caller must be the current curator.
// Owner sets first curator
vm.prank(vaultOwner);
curatorRegistry.setCurator(vaultAddress, curatorAddress);
 
// Current curator changes to new curator
vm.prank(currentCurator);
curatorRegistry.setCurator(vaultAddress, newCuratorAddress);

Fees

The system supports three categories of fees, each with default and network-specific settings:

  • Curator fee
  • Operator fee
  • Protocol fee

Curators configure fee settings in FeeRegistry (Contract | Interface). These fees are applied when rewards are distributed.

Only the vault’s curator can set fees for that vault:

  • setCuratorFee(vault, fee) sets the default curator fee.
  • setCuratorNetworkFee(vault, network, enable, fee) sets a network-specific curator fee.
  • setOperatorsFee(vault, fee) sets the default operator fee.
  • setOperatorsNetworkFee(vault, network, enable, fee) sets a network-specific operator fee.

The fees cen be obtained via:

  • getOperatorsFee(vault, network) - operator fee
  • getCuratorFee(vault, network) - curator fee
  • protocolFee(rewardsType, network) - protocol fee

The protocol fees can be taken either from the distribution amount or on top of. To convert distribution amounts between before/after protocol fee deduction (Rewards Contract | Rewards Interface):

  • Distribution to Total: Rewards.distributionToTotalAmount(uint64 rewardsType, address network, uint256 distributionAmount) converts a distribution amount (after fees) to a total amount.
  • Total to Distribution: Rewards.totalToDistributionAmount(uint64 rewardsType, address network, uint256 totalDistributionAmount) converts a total amount (before protocol fees) to a distribution amount.

Claim process

Curators claim fees from Rewards.sol (Contract | Interface) using claimCuratorFees.

function claimCuratorFees(address recipient, address vault, address token) public