SIP-251: Differentiate Liquidation Penalties

NetworkEthereum & Optimism
ImplementorMEB (@barrasso)
ProposalLoading status...

Simple Summary

Adds a new system setting for SNX staker liquidations


Currently, there exists only one liquidation penalty variable, liquidationPenalty, which is used for both Collateral loans and SNX staking. This is less than ideal since each liquidation type has a unique impact on the debt pool. It also reduces flexibility when trying to set different penalties for each type of liquidation via SCCP. This SIP proposes to add another liquidation penalty variable, snxLiquidationPenalty, in order to distinguish between liquidations on Collateral loans and SNX stakers.


To make sure the proper liquidation penalties are applied to both loans and stakers.

Technical Specification

This SIP requires the following:

  • Create a new variable in System Settings, snxLiquidationPenalty, which is initially set to 30% for SNX liquidations
  • Update the Liquidator contract so that all references to liquidationPenalty are replaced with snxLiquidationPenalty
  • Set liquidationPenalty to 10% for Collateral loan liquidations

Test Cases

  • Check that a 10% penalty is levied when liquidating Collateral loans
  • Check that a 30% penalty is levied when liquidating SNX stakers
  • Consider extreme cases
    • e.g. stakers having only escrowed SNX, not enough balanceOf to reach the issuance ratio, etc.

Configurable Values (Via SCCP)

LIQUIDATION_PENALTY: w3utils.toWei('0.1'), // 10% penalty (used for Collateral loans)

SNX_LIQUIDATION_PENALTY: w3utils.toWei('0.3'), // 30% penalty (used for SNX staking)

Copyright and related rights waived via CC0.