Consolidated from AIP 32
- Currently, stakers have to expose their wallet addresses when voting. This is not ideal for stakers who would like to use a cold wallet to store their staked AST.
- AirSwap should implement a
delegatefunction in which a single wallet can appoint another wallet address to vote and claim rewards
- Delegation will be implemented on-to-one (i.e. each staked wallet can only have one delegate wallet and vice versa)
- A new
delegatefunction should be created with the new
Stakingcontract required for AIP 37.
delegatefunction should specify a wallet address which would act as the proxy for voting and claiming of rewards.
- The Activate interface would need to be updated to allow for a
create delegateoption when connecting with the staking wallet
- Any staking events performed by the delegate wallet (e.g. if claiming rewards as sAST as defined in AIP 18) should proceed via a
stakeForfunction for the original staking wallet address.
- Each staking wallet can only define a single delegate wallet. Likewise, each delegate wallet must be unique for each staking wallet (i.e. 2 staking addresses cannot define the same delegate wallet address)
- Any claiming events performed by the delegate wallet should proceed via a
claimRewardForfunction for the original staking wallet address.
- If ethereum address was set as Delegate, it should be unable to stake AST.
- Delegate could be set once and couldn’t be changed.
- Delegate does not block any Staker functions (stake more, unstake, vote, claim).
- If Delegate has voted and/or claimed at current cycle, it is considered as Staked did it. Staker cannot vote and/or claim if Delegate already did it in one cycle and vice versa.
The main benefit is security. Long term AST holders may want to stake their AST and save them at a cold wallet but would not want to miss out on governance and rewards. It would be great to have the option to vote (and claim) from the dedicated address without revealing the staked address.
Copyright and related rights waived via CC0.