SIP-305: Staking Incentives (V3)

Author
StatusDraft
TypeGovernance
NetworkEthereum & Optimism
ImplementorDaniel Beal (@dbeal-eth), Leonardo Massazza (@leomassazza), Alejandro Santander (@ajsantander)
ReleaseTBD
Created2022-07-04

Simple Summary

This SIP proposes a system for staking incentives in Version 3 of the Synthetix protocol. Stakers will receive eSNX tokens by providing collateral to the system. eSNX can be burned, converting it into staked SNX, with a vesting period chosen by the user. The vesting period chosen determines the exchange rate between eSNX and SNX.

Abstract

eSNX will be minted to a contract (functionally similar to the Staking Rewards contract) at a rate determined by governance. Stakers are able to redeem their share of the distribution based on the pro-rata amount of debt they’re backing through a particular vault, selected by governance. eSNX is a fully-compliant ERC20 token prior to vesting, such that it can be exchanged on the open market. Upon staking, eSNX is converted to SNX and vests continuously. Stakers receive more SNX tokens when electing a longer vesting period. This SNX can only be removed from the system after it has vested.

Motivation

This system incentivizes stakers to provide long-term liquidity to the protocol while providing maximum flexibility for governance and stakers. We anticipate eSNX rewards will be distributed to stakers in the SNX vault of the Preferred Fund (set by SCCP).

Specification

Overview

This incentive structure will involve the creation of an eSNX ERC-20 token, a system for calculating and distributing the tokens to stakers, and a vesting system to restrict SNX token withdrawals based on vesting schedules.

Rationale

Optimally, rewards could be earned continuously in relation to a staker’s c-ratio, but this isn’t feasible due to the value of collateral and debt continuously fluctuating off-chain. Instead, we disincentivize dangerously low c-ratios with a robust liquidations mechanism and incentivize stakers with eSNX in proportion to the amount of debt shares they assume.

This proposal also deviates from the current system in a few key ways. First, this proposal removes discrete epochs, which encourage stakers to ensure they are sufficiently collateralized weekly (when snapshots are calculated) rather than in continuous time. This proposal also deviates from the current system in that rewards are not lost if not claimed weekly, which should improve the user experience for stakers. (Note that stakers are still incentivized to claim frequently in the system proposed here, such that they can initiate vesting sooner to compound their rewards.)

This proposal is consistent with the current system insofar as it grants governance control over the rate of inflation but research should continue regarding how the inflation rate might instead be determined by properties of the protocol, such as the staking ratio.

Technical Specification

  • eSNX - This is a standard ERC-20 token that authorizes the Synthetix main proxy address to mint and burn them. The staking rewards contract will mint the tokens and they will be burned when staked.
  • Staking Rewards - When debt shares are delegated to or from an account in a given vault, a Staking Rewards contract is notified of the account’s debt shares balance. The contract allows accounts to mint their pro-rata share of eSNX. They can only mint eSNX if their C-Ratio is above the target C-ratio. The rate of rewards provided to accounts through this contract is determined by SCCP.
  • Vesting - Accounts can start vesting eSNX by staking them.
    • The amount of SNX generated per eSNX is a logarithmic function of the vesting duration with an SCCP configurable asymptote that defaults to 1.
    • The eSNX is burned and the amount of the SNX (determined by the function above) is staked into the vault. The polynomial vesting curve for the account’s staking position in this vault is created or updated.
    • When a user attempts to unstake SNX from this vault, it only allows unstaking the amount amount vested plus the amount of SNX staked per usual.
    • If a user’s account is liquidated and their eSNX hasn’t fully vested, the SNX will be liquidated as usual and a polynomial curve that represents the vesting schedule for the liquidated SNX will be updated, such that stakers who receive liquidated vesting SNX have the appropriate lock applied. This closes a potential loophole where stakers could use the liquidations mechanism to accelerate their vesting schedule.

Test Cases

Relevant tests will be developed during implementation.

Configurable Values (Via SCCP)

  • Inflation Rate (uint) - This is the rate at which the total supply of eSNX tokens are generated.
  • eSNX Curve Asymptote (uint) - This is the maximum amount of SNX that 1 eSNX could be converted into. This defaults to 1.
  • Rewarded Vault (uint fundId, address collateralType) - This specifies the vault that the Staking Rewards contract references for its pro-rata distributions.

Copyright and related rights waived via CC0.