SIP-239: Liquidator Rewards Restitution

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

Simple Summary

Recovers unallocated liquidation rewards due to an initialization issue.


Shortly after the deployment of SIP-148, accounts were not properly initialized with their entries in the LiquidatorRewards contract. This led to an accounting issue where accounts seemed to receive less rewards than intended. This SIP ensures that the funds that are locked in the contract are properly recovered and allocated to the relevant accounts.


To make sure that every account gets their deserved share of the liquidation rewards post-deployment.

Technical Specification


We will create a one-time use function that is only callable by the pDAO. This function will be used to recover the unallocated rewards from the LiquidatorRewards contracts on both layers.

bool public restituted = false;

// @param amount The amount of SNX to be recovered and distributed to the rightful owners
function initializeLiquidatorRewardsRestitution(uint amount) external onlyOwner {
    if (!restituted) {
        restituted = true;
        bool success = _transferByProxy(address(liquidatorRewards()), owner, amount);
        require(success, "restitution transfer failed");

This function will be subsequently removed from Synthetix in a patch release.

Configurable Values (Via SCCP)


Copyright and related rights waived via CC0.