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:

  • Put the protocol (or a single perpetual market) on pause if it's active (with the pause function) or unpause it if it's locked (with the unpause function).

  • 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

RoleMethodDescription

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

RoleMethodDescription

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

RoleMethod

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

RoleMethodDescription

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

RoleMethodDescription

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

RoleMethodDescription

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

RoleMethodDescription

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

RoleMethodDescription

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 timeOfLastCumRewardUpdate for a given market to the current timestamp if it isn't set

SMRewardDistributor Contract

RoleMethodDescription

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

RoleMethodDescription

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

returnFunds

Transfer underlying tokens from an approved address to the corresponding StakedToken, raising its exchange rate

Governance

withdrawFundsRaisedFromAuction

Transfer tokens raised in an auction from the AuctionModule to governance

AuctionModule Contract

RoleMethodDescription

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

RoleMethodDescription

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