Skip to content
This repository has been archived by the owner on Jan 11, 2024. It is now read-only.

Add pallet allowing users to stake and receive rewards #155

Merged
merged 13 commits into from
Jun 10, 2022

Conversation

shelbyd
Copy link
Contributor

@shelbyd shelbyd commented May 19, 2022

Re: #156

Some questions @nikoladimitroff

  1. Should we have a minimum stake amount? Power users may make frequent staking TXNs, but I don't want to gatekeep poorer users.
  2. What should the staking lock period be? I set it to 30 days for now, but we can change it.

Small TODOs before submitting:

  • Minimum stake amount
  • Stake for multiple durations.
  • Investigate using ReservableCurrency instead of our own holding account.
  • Increment amount instead of replacing if multiple stakes for a user in the same block.

@nikoladimitroff
Copy link

@shelbyd

  1. the avg daily income right now is > 4 FCL so I think a minimal stake amount of 10 FCL is reasonable (~3 days worth of current data capture, ~5 days worth of future KYC + data capture)
  2. Let's have a couple of locking periods which increase the number of shares you get from the rewards (just like we wanted the holder program to reward people with more coindays). Let's have 30d, 60d, 90d as options for now

@shelbyd
Copy link
Contributor Author

shelbyd commented May 25, 2022

@nikoladimitroff Do we want to automatically withdraw the staked amount (plus new tokens) when the lock period expires, or allow it to stay staked, but unlocked, until the user chooses to withdraw?

With manual withdrawals, the user could have a significant balance currently unlocked and be receiving a large share of rewards. For example, if they locked for the maximum duration and haven't withdrawn. Additionally, users will need to pay a TXN fee to withdraw their stake.

With automatic withdrawals, users need to re-stake tokens and actively maintain this locked stake.

There are some more benefits / drawbacks, but I wanted to start the conversation. We can also VC about it with Julio and/or Antoni if we think that's necessary.

Base automatically changed from shelbyd/incentives/remove-purposes to master May 30, 2022 12:49
@nikoladimitroff
Copy link

@nikoladimitroff Do we want to automatically withdraw the staked amount (plus new tokens) when the lock period expires, or allow it to stay staked, but unlocked, until the user chooses to withdraw?

With manual withdrawals, the user could have a significant balance currently unlocked and be receiving a large share of rewards. For example, if they locked for the maximum duration and haven't withdrawn. Additionally, users will need to pay a TXN fee to withdraw their stake.

With automatic withdrawals, users need to re-stake tokens and actively maintain this locked stake.

There are some more benefits / drawbacks, but I wanted to start the conversation. We can also VC about it with Julio and/or Antoni if we think that's necessary.

@shelbyd I propose a third one - similar to how bank deposit work.

  1. You lock some currency for a certain amount of time
  2. After that time expires, you get access to your funds + the interest
  3. You could choose to re-deposit. You could choose to withdraw. You could just to do nothing and the funds just stay there without earning anything further.

This approach:

  • forces people to actively manage their staked funds (which increases engagement)
  • doesn't reward people who haven't manually withdrawn their funds as in your first proposal
  • since people are incentivized to either restake or withdraw, this gives us a better understanding of the amount of FCL currently locked and the liquid amount
  • allows users to restake without paying a TXN fee

@shelbyd
Copy link
Contributor Author

shelbyd commented Jun 1, 2022

This seems effectively identical to automatic withdrawals, but with more explanatory and implementation complexity. I think that we should go with automatic withdrawals for all the reasons listed.

Note: Users would still need to pay a TXN fee to restake/withdraw. Users need to pay TXN fee for any user-initiated on-chain activity.

@shelbyd shelbyd merged commit 61850c4 into master Jun 10, 2022
@shelbyd shelbyd deleted the shelbyd/incentives/staking branch June 14, 2022 20:28
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants