SIP 13: Account Merging

Simple Summary

Staking rewards are currently locked for 52 weeks from the date the are claimed, despite being locked they can still be used as collateral. One of the consequences of this is that a staker who has earned rewards in a wallet is forced to continue to maintain this wallet. The purpose of locking these staking rewards was to ensure that they were not able to be transferred, however, this creates a problem if a wallet is compromised or if a user would like to cycle wallets. This SIP proposes a compromise where a staker can transfer the entire balance of their staking rewards to a different wallet.

Abstract

A user will be able to specifiy an address to reallocate their staking rewards to. In order to migrate staking rewards the wallet must have a c ratio high enough to allow the SNX to be moved, this is to ensure users to does not migrate escrowed rewards and issue additional debt against them.

Motivation

This functionality is important for several reasons, the first is simple user experience. Given the issues with maintaining wallets there are many reasons why a user may want to cycle wallets. The current system makes this impossible without forgoing the right to mint against escrowed SNX. This change will ensure that the SNX ultilisation remains high and that there are not pockets of SNX that are no longer staked because they are in escrowed wallets that are no longer maintained. The second reason is that without this functionality it will be impossible for staking pools to operate effeciently. In order for a staking pool to operate a user must be able to withdraw their SNX and their staking rewards, without this functionality if a staking pool manager stops administering their pool all of the staking rewards would be locked and idle for at least 52 weeks.

Specification

A user will be able to sign a transaction assigning the SNX tokens in the Reward Escrow Contract from the signing wallet to a new wallet. The reassignment process will check to ensure that there is no debt against the SNX tokens being reassigned. Only the full amount of SNX in escrow will be able to be reassigned, partial reasignments will not be possible.

UPDATE: The community has concerns that this functionality will create a secondary market of selling discounted escrowed SNX. We proposed that this feature only be enabled via a gonvernance voting proposal via a SCCP to open up for 24 hour windows when nessecary which may be upto a maximum of 4 times a year. These temporary windows will provide a an opportunity for SNX holders to get their accounts in order and then close it for most of the time.

Rationale

We initially considered a more full featured tranfer mechanism that merged the total balances of two wallets, however, the effort to build this is significantly larger than the function specified in this SIP, so this method will allow us to implement the change much faster and will place the burden of transferring unlocked SNX onto the user.

Test Cases

Test cases for an implementation are mandatory for SIPs but can be included with the implementation.

Implementation

The RewardEscrow contract state will need to be migrated to a new RewardEscrow with the added functionality of allowing users to reassign their escrowed SNX reward balance between wallets that they control. It’s completley self service.

  1. Alice signs a transaction to reassign the Escrowed SNX token balance to a new wallet address she controls
  2. Alice signs a transaction to accept the Escrowed SNX token balance reassignment at the new address. (optional handshake)3. Alice signs a transaction to confirm the Escrowed SNX token balance reassignment at the new address.

Copyright

Copyright and related rights waived via CC0.

Author: Kain Warwick, Clinton Ennis

3 Likes

Very interested in this happening. With the increase in value, there must be many people that want to move wallets for security reasons

100% all for it. Will make it a lot more compatible for service vendors as well. Exchanges, custodians, dApps, etc.

Interested in this as well. Currently the only recourse for someone with SNX in another wallet is to wait out the vesting period, which while not a huge deal is still a nuisance. Theoretically, the ability to somehow associate the stranded SNX’s collateral value to another wallet without physically moving them would be an alternative.

I propose that this must be done in controlled and timed fashion. To avoid creating secondary markets for locked SNX rewards. It can be done in two way IMHO:

  • Create something like a counter on each wallet, that allows to move locked SNX only once or twice in wallets lifetime. Risks: Secondary market for locked SNX is still going to thrive if implementing this option.

  • Have short span (24-Hour or less) announcements that there will be a certain period in time where wallet owners are able to move their escrowed SNX to another wallet. Also make this kind of announcements like 1 or 2 time a year events. Risks: Less chance of creating secondary markets

I would very much support this SIP. There must be quite a few people in a similar situation to myself where they transferred their funds to a secure Ledger device and now have to claim from x2 wallets.

At these current gas prices that would make a huge difference.

I agree that it has to be implemented in the correct manor to ensure that it is not abused, perhaps limiting the transfer to once or twice a year.