FIO Staking
In Progress
This project is in progress, see:
Document below for background on how we got here
FIP-21 for FIO Chain functionality: fips/fip-0021.md at master ยท fioprotocol/fips
Reward modeling: SRT modeling spreadsheet and analysis
Go-to-market plan: Staking go-to-market
Discussion: Discord Staking channel
Page directory
Initiative Committee
@Pawel Mastalerz @David Gold @Luke Stokes @Eric Butz @George Worrell
Introduction
The FIO Protocol is subject to the network effect, meaning the more participants adopt it, the more useful it is to all. To accelerate the adoption, on-chain incentives for integrators in the form of TPID rewards and New User Bounties, as well as for block producers in the form of rewards and reserves are built into the FIO Chain. Currently, there are no incentives for token holders. Yet early token holders add value to the network by securing it and helping it grow and therefore should be incentivized.
This initiative proposes an on-chain staking functionality, which awards user Staking Rewards for taking an active role in the FIO Protocol governance.
Who is the Customer?
FIO Token holder.
What problem of the customer are we trying to solve?
No path for users to use their tokens to secure the network and earn more FIO.
Why is it important this problem is solved?
It will accelerate adoption of FIO Protocol and make FIO Protocol more secure.
What KPIs will you track to determine if you are solving this problem?
Tokens staked.
Other protocolโs staking
Protocol | Staking purpose | Source of staking rewards | Has lock | Has un-staking period | Requires a transfer out of account | Allows partial account balance staking | Staking reward |
---|---|---|---|---|---|---|---|
Staked pools produce blocks. Block production is influenced by stake size. Tokens can be pledged by pool operator or delegate to a pool by token holder. |
| NO ย | NO Tokens pledged by stake pool operator can be changed every epoch (5 days) | NO | NO | 3-6% | |
Block publishing (baking) rights are influenced by stake size. Tokens are delegated to bakers. |
| NO | NO Bakerโs security deposit has a ~10 day lock | NO | NO | 5-10% | |
Bonded validators sign blocks. Token holders can delegate stake to validators. |
| NO | YES - 21 days | NO | YES | 5-7% | |
Algorand | Stakers are randomly selected to add blocks. All token holders receive staking rewards, even if they choose not to add blocks. |
| NO | NO | NO | NO | 5-8% |
EOS core | Get network resources | N/A | NO | YES - 3 days | YES | YES | N/A |
EOS off-core | Vote for BPs in exchange for share of inflation rewards |
| NO | NO | NO | NO | May vary |
Proposed Functionality
Off-chain functionality
Circulating supply will not be updated to exclude staked tokens.
Post MVP
Staking app
Staking will be incorporated into the future Dashboard Old
A wallet could build a simple UX without the complexity of voting, by simply saying โclick here to stakeโ and behind the scenes the tokens would be proxied.
Rewards can be computed real-time based on current SRT balance and Rate of Exchange.
Staking for FIO Address
There has been a desire to find a path where a user can stake FIO Tokens to keep a FIO Address instead of paying annual fee.
One approach could be, using the above staking method, to add an option to specify a FIO Address when staking and if the staked amount is greater than 25 time the cost of FIO Address registration, the expiration date for the FIO Address is ignored until tokens are un-staked. The user would still have to buy transaction bundles or renew the FIO Address if they were actively using it the address.
Previous approaches
Staking was previously considered in FIP-21, but that approach was abandoned for the following reasons:
Staking was tacked on to transfer locked tokens, which has been designed for a different use case and potentially created some usability issues, where users would not be able to stake multiple times at the same time from same account.
There were regulatory concerns as staking was not tied to voting.
Automatic rewards has a similar challenge to the one we ran into with Co-op:
We can give you a reward when you vote
We can give the proxy a reward when they vote
It's very hard to give a reward to all accounts which are proxying their tokens to a single proxy when that proxy votes. Imagine if 1M wallet users have their tokens autoproxied to a single account and now that account votes. The processing required to pay 1M users is huge and underlying data may be changing.
Stake via Send (send to proxy FIO Address)
Continue to think this is a bad approach. Intercepting a token transfer transaction is just scary and can lead to problems for users. A token send should send tokens and nothing else.
It may create unforeseen complexities, similar to when we wanted to treat FIP-6 lock accounts differently. For example using the "special" FIO Address as a as TPID and then claim reward send is initiated to this special address.
2021-07-30 Staking Committee Call
Activation time will be added to FIP. This will allow for better marketing of the staking program and allow more platforms to develop integration before Staking is activated on chain.
1M activation limit will be kept.
Staking was codes in a way that lets the Staking Rewards accrue before activation. It was decided this is beneficial to the program.
@Eric Butz will put together a security plan and present to Committee.