- Can swap tokens through the Velodrome DEX.
- Can provide liquidity.
- Can create a Normal veNFT.
- Can deposit VELO into an existing Normal veNFT.
- Can poke the balance of an existing veNFT to sync the balance.
- Can bribe a Velodrome liquidity pool through its' linked BribeVotingRewards contract.
- Can skim a stable or volatile liquidity pool to rebalance the reserves.
- Can sync a liquidity pool to record historical price
- Can trigger the emission of VELO at the start of an epoch
- Can create a liquidity pool with two different ERC20 tokens if the pool is not already created
- Can create a gauge for the liquidity pool if the gauge is not already created and the tokens are whitelisted
- Can deposit their LP token into the Velodrome gauge linked to the liquidity pool
- Earns VELO emissions
- For a detailed breakdown refer to VOTINGESCROW.md
- Can approve/revoke an address to modify the veNFT
- Can transfer ownership of the veNFT
- Can increase amount locked
- Can vote weekly on pool(s)
- Earns bribes and trading fees
- Earns weekly distribution of VELO rebases
- Can vote on VeloGovernor proposals
- Can vote on EpochGovernor proposals
- Can withdraw the normal veNFT
- Can convert to/from Permanent state
- Can increase the lock time
- Can split the veNFT
- Can merge the veNFT
- Can delegate voting power
- Can only withdraw their Locked veNFT from a Managed veNFT
Multisig at 0xBA4BB89f4d1E66AA86B60696534892aE0cCf91F5
- Threshold: 3/7
- TODO: Who owns every address?
Multisig at 0x838352F4E3992187a33a04826273dB3992Ee2b3f
- Threshold: 5/6
- TODO: Who owns every address?
Velodrome team at deployment of VeloGovernor. At a later date, this role will be renounced.
At first deployment, team. At a later date, this will be set to a lightly modified Governor contract from OpenZeppelin, VeloGovernor.
At first deployment, team. Before the tail rate of emissions is reached, this will be set to EpochGovernor.
At first deployment, team. This role will likely be given to a contract so that it can create managed nfts (e.g. for autocompounders etc)
Velodrome team
Velodrome team
Velodrome team
This is an exhaustive list of all admin permissions in Velodrome V2, sorted by the contract they are stored in.
- Pauser
- Controls pause state of swaps on UniswapV2 pools created by this factory. Users are still freely able to add/remove liquidity
- Can set Pauser role
- FeeManager
- Controls default and custom fees for stable / volatile pools.
- Owner
- Can approve / unapprove new pool / gauge / reward factory combinations.
- This is used to add new pools, gauges or reward factory combinations. These new pools / gauges / rewards factories may have different code to existing implementations.
- Team
- Can set PendingTeam in Minter
- Can accept itself as team in Minter (requires being set as pendingTeam by previous team)
- Can set team rate in Minter
- EpochGovernor
- Can nudge the Minter to adjust the VELO emissions rate.
- Team
- Can set proposal numerator.
- Vetoer
- Can set vetoer in VeloGovernor.
- Can veto proposals.
- Can renounce vetoer role.
- Team
- Can deposit additional emissions into a gauge.
- Governor
- Can set governor in Voter.
- Can set epochGovernor in Voter.
- Can create a gauge for an address that is not a pool.
- Can set the maximum number of pools that one can vote on.
- Can whitelist a token to be used as a reward token in voting rewards or in managed free rewards.
- Can whitelist an NFT to vote during the privileged epoch window.
- Can create managed NFTs in VotingEscrow.
- Can set allowedManager in VotingEscrow.
- Can activate or deactivate managed NFTs in VotingEscrow.
- EpochGovernor
- Can execute one proposal per epoch to adjust the VELO emission rate after the tail emission rate has been reached in Minter.
- EmergencyCouncil
- Can set emergencyCouncil in Voter.
- Can kill a gauge.
- Can revive a gauge.
- Can set a custom name or symbol for a Uniswap V2 pool.
- Can activate or deactivate managed NFTs in VotingEscrow.
- Team
- Can set team in VotingEscrow
- Can set artProxy in VotingEscrow.
- Can enable split functionality for a single address.
- Can enable split functionality for all addresses.
- Can set proposalNumerator in VeloGovernor.
- AllowedManager
- Can create managed NFTs in VotingEscrow.
In addition to defined admin roles, various contracts within Velodrome protocol have unique permissions in calling other contracts. These permissions are immutable.
- Can mint VELO and distribute to Voter for gauge emissions and RewardsDistributor for claimable rebases
Minter.updatePeriod()
- Can distribute VELO emissions to gauges
Voter.distribute()
- Can claim fees and rewards earned by Normal veNFTs
Voter.claimFees()
Voter.claimBribes()
- Can deposit a Normal veNFT into a Managed veNFT
Voter.depositManaged()
- Can withdraw a Locked veNFT from a Managed veNFT
Voter.withdrawManaged()
- Can set voting status of a veNFT
Voter.vote()
Voter.reset()
- Can deposit and withdraw balances from
BribeVotingReward
andFeesVotingReward
Voter.vote()
Voter.reset()
- Can deposit balances into
LockedManagedReward
VotingEscrow.depositManaged()
- Can deposit balances into
FreeManagedReward
VotingEscrow.depositManaged()
- Can withdraw balances from
LockedManagedReward
andFreeManagedReward
, and rewards earned fromLockedManagedReward
VotingEscrow.withdrawManaged()
- Can notify rewards to
LockedManagedReward
. These rewards are always in VELO.VotingEscrow.increaseAmount()
VotingEscrow.depositFor()
- Can claim the fees accrued from trades
Pool.claimFees()