oasis-core
oasis-core copied to clipboard
Support restricted use accounts
SUMMARY
At genesis block, create way to set tokens locked up from investors, grantees, employees to be used for delegation on the network.
ISSUE TYPE
In order to allow for broader token engagement on the network without creating too much liquidity early on, we'd like to have a way for stakeholders to use the tokens promised to them before they're able to transfer them or sell them on an exchange.
COMPONENT NAME
Consensus layer
ADDITIONAL INFORMATION
when does lockup end? -- example would be a tiered lockup with a certain amount of tokens released at 4 months, 8 months, 12 months.
- what exactly can be done with locked up tokens -- locked tokens can be delegated and rewards can be earned on those tokens. locked up tokens cannot be sold or transferred.
The safest way to implement this would probably be a separate "restricted" sub-account with its own balance and a policy that would define what the account holder can do. This way the balance would not be part of the general balance.
A downside of this is that it adds more complexity to the consensus layer.
locked up tokens cannot be sold or transferred.
While you can prevent transfer, you can't really prevent selling them. Someone could record the sale off-chain and do the transfer when the tokens thaw.
If you're going to do this (and I'm against it for complexity reasons), it probably should store a vector of balances, just so that the inevitable "we want to add more tokens to the restricted pool with a different thaw date" is easy to implement.
While I'm here, I would also be against making the thaw process automatic because it's additional unneeded complexity.
any updates on this?