Governance
Aside from the traders or liquidity providers who use and interact with the protocol, there are other roles in the system that are crucial in shaping the maintainability and stability of Increment, listed below:
Governance: 0xcce2065c1DC423451530BF7B493243234Ba1E849 [This is the address of the on-chain governor, which would become the governance address once the protocol is deployed]
The governance address is owned by the Increment community that governs the protocol, it can perform the following actions:
Add a trading pair to the list of supported markets with the
allowListPerpetual
function.Set key protocol economic parameters.
Add a new token to the list of allowlisted ERC20 tokens which can be used as collateral.
Remove some of the insurance funds collected when traders open/extend positions with the
removeInsurance
function. It's important to note that the insurance amount must be above the insurance ratio of the TVL in the vault to allow governance to withdraw funds. The insurance quota measures the percentage of TVL that should be held in insurance reserves and can be changed by governance.
Emergency Admin: 0x4f05E10B7e60D5b18c38a723d9469b4962C288D9
The Emergency Admin address is owned by a multisig, which is currently made up of 7 core contributors and governance delegates of the Increment protocol. It can solely perform the following three actions:
Pause or unpause the opening of trading positions with the
toggleTradingExpansionPause
function. This does not have any affect on closing or reducing trading positions nor liquidity provision positions.Curve's CryptoSwap markets on which Increment relies to operate sometimes generate "dust" during swaps. Dust describes very small amounts of market tokens that can't be swapped in the pool, e.g. 2 or 3 units of vUSD. These dust amounts are collected by the protocol.
sellDust
is the function by which the manager can sell the collated dust amounts on the market.
Additional details on the governance and emergency admin roles are listed in the tables below:
ClearingHouse Contract
Role | Method | Description |
---|---|---|
Emergency Admin | sellDust | Sell the accrued dust amounts on the market (a very small amounts of market tokens that can't be swapped |
Emergency Admin | pause | Put the protocol (or a single perpetual market) on hold if it's active |
Emergency Admin | unpause | Unlock the protocol (or a single perpetual market) if it's locked |
Governance | setParameters | Set key protocol risk parameters such as min margin requirements, insurance ratio, etc. See the full list in economic parameters. |
Governance | allowListPerpetual | Add a trading pair to supported markets |
Governance | addRewardContract | Add a reward distributor contract (i.e., PerpRewardDistributor) |
Perpetual Contract
Role | Method | Description |
---|---|---|
Emergency Admin | pause | Put the protocol (or a single perpetual market) on hold if it's active |
Emergency Admin | unpause | Unlock the protocol (or a single perpetual market) if it's locked |
Emergency Admin | toggleTradingExpansionPause | Pause/unpause trading operations tapping into the liquidity (i.e. opening and extending positions) |
Governance | setParameters | Set key protocol parameters such as sensitivity, insuranceFee, twap frequency, etc. See economic parameters. |
Insurance Contract
Role | Method | |
---|---|---|
Governance | removeInsurance | Once the insurance reserve exceed a certain ratio of the TVL, the insurance fees can be withdrawn |
Governance | setClearingHouse | Set new address of ClearingHouse contracts |
Oracle Contract
Role | Method | Description |
---|---|---|
Governance | setOracle | Set or update an oracle address |
Governance | setFixedPrice | Set a fixed price for an asset |
Governance | setHeartBeat | Set or update the heartbeat of an oracle |
Governance | setSequencerUptimeFeed | Set a L2 sequencer upTime feed |
Governance | setGracePeriod | Set a grace period for the L2 Sequencer to come back up |
Vault Contract
Role | Method | Description |
---|---|---|
Governance | addWhiteListedCollateral | Add a new token to the list of allowlisted ERC20 used as collateral |
Governance | changeCollateralWeight | Change weight of a white listed collateral |
Governance | changeCollateralMaxAmount | Change the maximum amount of tokens that can be deposited |
Governance | setClearingHouse | Set the ClearingHouse address |
Governance | setInsurance | Set the Insurance address |
Governance | setOracle | Set the Oracle address |
EcosystemReserve Contract
Role | Method | Description |
---|---|---|
Governance | approve | Allow an address to transfer some amount of a given token from the reserve |
Governance | transfer | Transfer some amount of a given token from the reserve to a recipient |
Governance | transferAdmin | Transfer the funds admin role to a new address |
RewardDistributor Contracts
Including the PerpRewardDistributor and SMRewardDistributor contracts
Role | Method | Description |
---|---|---|
Governance | updateRewardWeights | Set the percentage of reward emissions to be accrued to each market for a given reward token |
Governance | updateInitialInflationRate | Set the initial inflation rate used for calculating emissions for a given reward token |
Governance | updateReductionFactor | Set the reduction factor used for calculating emissions for a given reward token |
Governance | addRewardToken | Add a new token to the list of supported reward tokens |
Governance | removeRewardToken | Remove a token from the list of supported reward tokens, and return any unaccrued rewards from the EcosystemReserve |
PerpRewardDistributor Contract
Role | Method | Description |
---|---|---|
Emergency Admin | pause | Put claiming rewards on hold if active (does not pause reward accrual) |
Emergency Admin | unpause | Unlock claiming rewards if locked |
Emergency Admin | togglePausedRewards | Pause or unpause reward accrual for a particular reward token |
Governance | setEarlyWithdrawalThreshold | Set the early withdrawal threshold used to penalize users who withdraw liquidity too soon |
Governance | initMarketStartTime | Set the |
SMRewardDistributor Contract
Role | Method | Description |
---|---|---|
Governance | pause | Put claiming rewards on hold if active (does not pause reward accrual) |
Governance | unpause | Unlock claiming rewards if locked |
Governance | togglePausedRewards | Pause or unpause reward accrual for a particular reward token |
Governance | setSafetyModule | Set the SafetyModule contract address from which to get the addresses of the staked token contracts |
Governance | setMaxRewardMultiplier | Set the upper limit for the reward multiplier users earn for staking their tokens longer |
Governance | setSmoothingValue | Set the smoothing value used to calculate the reward multiplier |
SafetyModule Contract
Role | Method | Description |
---|---|---|
Governance | pause | Put staking, redeeming and transferring on hold for all staked tokens if active (does not pause reward accrual) |
Governance | unpause | Unlock staking, redeeming and transferring for all staked tokens if locked |
Governance | addStakingToken | Add a new StakedToken contract address to the list of supported staked tokens |
Governance | setRewardDistributor | Set the SMRewardDistributor contract address for handling reward accrual to stakers |
Governance | setAuctionModule | Set the AuctionModule contract address for handling auctions of slashed tokens |
Governance | slashAndStartAuction | Slash a percentage of staked tokens from all users and start an auction in the AuctionModule |
Governance | terminateAuction | Terminate an auction in the AuctionModule, return any remaining tokens to the StakedToken and settle slashing |
Governance | withdrawFundsRaisedFromAuction | Transfer tokens raised in an auction from the AuctionModule to governance |
AuctionModule Contract
Role | Method | Description |
---|---|---|
Governance | pause | Put creating, completing and bidding in auctions on hold if active |
Governance | unpause | Unlock creating, completing and bidding in auctions if locked |
Governance | setSafetyModule | Set the SafetyModule contract allowed to start and terminate auctions |
Governance | setPaymentToken | Set the payment token used for purchasing lots in auctions |
StakedToken Contract
Role | Method | Description |
---|---|---|
Governance | pause | Put staking, redeeming and transferring on hold if active (does not pause reward accrual) |
Governance | unpause | Unlock staking, redeeming and transferring if locked |
Governance | setSafetyModule | Set the SafetyModule contract allowed to slash tokens, return funds and settle slashing |
Governance | setMaxStakeAmount | Set the maximum amount of tokens that can be staked by a user |
Last updated