-
Notifications
You must be signed in to change notification settings - Fork 24
FLIP 353: Automatic Restaking #353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Thanks for the feedback, @AlexHentschel! I addressed your comments and made some other changes to improve clarity |
|
I'm unsure if auto-restaking by default is desired by all users, as there are potential tax implications when being awarded tokens. Have we considered an opt-in approach? |
|
Yeah, I agree with @JeffreyDoyle. This should probably be a flag. Not everyone checks weekly, and they’ll have to unstake and wait weeks if they miss the window. Even if it’s not a taxable event, some users wait to move funds so they can make fewer transactions. |
|
I'm definitely open to changing it if there is enough pushback, but I would argue that even if you want to make fewer transactions and only withdraw once a month or once every few months or something like that, this system is still better because instead of just sitting in your rewards bucket not accruing any additional rewards, your tokens were restaked and gave you some additional rewards while you were waiting. Also, about taxes, I am not a tax expert, so this is not legal advice, but as far as I know, your rewards are not taxable until you withdraw them from the staking protocol, so I believe automatic restaking would likely not be a taxable event, especially since it is something that the protocol would do automatically with no input from the user. But we'll need to talk to some tax experts |
|
I'm 1000% for this and agree with a flag, but making it opt out. I think that the users who would benefit from choosing to defer rewards to defer taxes etc. will find the option they need. |
|
Issue to track this FLIP: #354 |
|
IANAL, not tax advice I think this depends on jurisdiction, some regard "withdraw of reward" as taxable event, others regard "calculation of reward" as taxable event. But I think also the biggest problem here, it changes your cost basis when restake, in second case. ( Not sure about the first case ) If I had 1000 flow with 1$ each, and staked , when I got 10 flow reward ( let's say flow was $0.5) and restake, income tax on $5 and my cost basis will be ~0.9950. So went I unstake & sell 100 flow at $1.5 I should calculate ((1.5-0.9950)*100) for taxes. Opt in seems safer. |
|
Disclaimer: none of the following is tax advice. I chatted with our tax person a while back. She was hesitant to provide a conclusive statement because crypto regulations are still developing and she felt she didn't know all the details yet that factor into the equation. Anyway, she referred me to some documents and explained how the CRA typically approaches the question whether something like staking / unstaking is a taxable event in Canada. TLDR: The canadian tax system uses the notion of "Identical Properties", which very broadly says that any two assets are considered different kinds, if they for example [quote]:
This is clearly the case for liquid vs staked tokens (one produces rewards the other doesn't; one needs to be unstaked and only then is transferable, the other is immediately transferable). Therefore, in agreement with my tax advisor, I have been treating any conversion between liquid and staked tokens as a taxable event. From a Canadian tax perspective, the change seems subtle but important:The detailed means don't matter, fact is that when they are received, reward tokens are transferable and don't produce revenue. Hence, I think they are "identical properties" as liquid tokens (in Canada).
To the best of my understanding, the canadian tax system considers the point in time when you receive the rewards and could withdraw them as a taxable event, not when they are actually withdrawn. So receiving the rewards is a taxable event anyway. What changes with this flip is whether I have an additional taxable events every week converting reward tokens to staked tokens. Status Quo: No taxable events from converting rewarded to staked tokens, unless I explicitly re-stake (taxable event) some of the reward tokens manually. Also, if selling some of the rewarded tokens to cover taxes due on the rewards (to the best of my understanding count as income in canada), one can just use the reward tokens that have accumulated and sell some of those from time to time. With the Flip: Unless I withdraw reward tokens manually every week, there will be automatically an additional taxable event every week that I need to include in my accounting. This is major additional effort. If I wanted to sell a portion of the reward tokens from time to time to cover taxes due on the rewards, I need to unstake some of the auto-restaked rewards, which is another taxable event. My perspective as a user:RecommendationCan we implement this with an opt-in or opt-out? I understand that the benefit of the current proposal is that it would be uniform for all accounts, i.e. it could be implemented in the staking smart contract. In contrast, what I am asking for is an account-individual solution. However, as it stands right now, for me personally (only speaking as a user, not as a developer of the flow platform), I would rather have no change to the status quo than the proposed "one-size fits all" approach. Of course, the ideal would be a solution where users could pick. |
Closes #354
Adds a FLIP that proposes automatically restaking all stakers rewards every epoch