Skip to content
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

Permanently Locked Vesting Accounts #8283

Closed
4 tasks
clevinson opened this issue Jan 8, 2021 · 7 comments · Fixed by #8520
Closed
4 tasks

Permanently Locked Vesting Accounts #8283

clevinson opened this issue Jan 8, 2021 · 7 comments · Fixed by #8520

Comments

@clevinson
Copy link
Contributor

Summary

Add support for vesting accounts that can hold permanently locked tokens, for usage in governance voting and staking, but which cannot be traded or moved to different accounts.

Problem Definition

In Regen Network, we have a % of tokens at genesis that are to be allocated to a set of Community Staking DAOs. These organizations must have tokens allocated to them (controlled via a group account), which can be used for governance voting, but which are not tradable or liquid.

We have a corresponding issue on Regen Ledger (regen-network/regen-ledger#188), but it is our hope that this feature would be welcome by other projects besides Regen Network, which is why we are proposing this as a feature for the Cosmos SDK.

Proposal

Add a new type of vesting account LockedVestingAccount or PermanentVestingAccount, where all of the tokens held by this account never become spendable. These accounts should be able to be set in genesis, as well as through an MsgCreateVestingAccount msg in the case where the relevant account owners are not necessarily known at genesis time.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@alexanderbez
Copy link
Contributor

alexanderbez commented Jan 8, 2021

Why you can certainly do this explicitly through a new PermanentVestingAccount type, you could also just use the existing DiscreteVestingAccount type with an EndTime that is so far into the future (i.e. max time possible), it's practically permanently locked.

@aaronc
Copy link
Member

aaronc commented Jan 8, 2021

I think the argument for a new permanent account is 1) greater clarity and 2) we could more easily separate potentially liquid supply from totally non liquid supply for exchanges, etc.

@alexanderbez
Copy link
Contributor

Makes sense, I just wanted to point it out ;-)

@clevinson
Copy link
Contributor Author

@alexanderbez Yes, an obscenely large EndTime with DiscreteVestingAccount is what we had originally planned on doing, but as it seemed a bit more like a hack, we thought it'd be worth discussing adding as an explicit feature. Also for the reason @aaronc mentioned around more easily querying liquid supply.

@hxrts
Copy link
Contributor

hxrts commented Feb 3, 2021

@hxrts
Copy link
Contributor

hxrts commented Mar 4, 2021

I'm starting to wonder whether we should have "vesting accounts" at all, or if any account should be able to put coins into a "covenant" that defines conditional distribution of funds. UX patterns would need some research (non-transferrable shares may be one such pattern), but a few standard methods may suffice + maybe an optional method to call cosmwasm for advanced logic.

@aaronc
Copy link
Member

aaronc commented Mar 4, 2021

Vesting accounts should definitely go away. It will just take some design work. See #8528

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants