Open EngineerCharlie opened 1 year ago
Some messages from @fliebenberg from the tg, pasting here so they don't get buried:
I have been thinking how best to distribute a "reward" to fungible token holders, as you are not certain who is actually holding the token at any point in time. This is also much harder on Radix, since there is no central list of token holders like you have on ethereum.
One way you could do it is to just scan the whole Radix ledger for accounts/components that hold the tokens, but that will become unpractical very quickly.
Another solution is to have a smart contract that distributes the "reward". Token holders will have to occasionally "commit" their tokens to the distribution component for a short while (say 3 days). The distribution component will then allocate the "reward" to everyone who committed tokens in proportion to the tokens they committed vs overall committed tokens. The tokens holders can then claim back their tokens and the reward. This will mean that token holders will have to actively claim "rewards" rather than just receiving it and you wont get a reward if you do not claim it by committing your tokens for the period. But this at least keeps the fungibility of the tokens and allows for rewards to be distributed to token holders.
You could also build a separate pool component that will automatically claim DEXTR rewards for its users. So you will send your DEXTR to the pool and it will give you a pool token back. The pool will then automatically send all its DEXTR to the distribution component whenever it is time for distribution and will then claim the rewards and DEXTR at the end of the reward. This way the pool will grow and pool token holders can exchange their pool tokens for actual DEXTR at any time.
To me 3. seems by far the best option for us, as it's the most "hands free", and feels like the most natural way to do things with Scrypto. This seems like a problem that other projects will encounter, is anyone aware of anyone building a relevant blueprint?
I think both 2 and 3 will be components that other projects would also want to use. I am definitely planning to build something like this as it will also be useful in future for other ideas I have. BTW, 3 will only work if there is already something like 2. So 2 will definitely be needed and then we can have 3 to make it more convenient for people to claim. The only problem is to get time for everything....
We only really have to focus on this once the project is ready to launch though, so we have time. SInce this issue is not directly related to the Website, should we create a separate project for scrypto components @EvgeniiaVak?
@fliebenberg different repo for sure, and maybe different project too or we can rename this project if you want to have one space for all issues
UPD: I renamed the project to development
I think we already implemented that on rewards component. So irrelevant?
@fliebenberg can you assess whether this issue can be closed and do so? I have not enough context.
As it is we are distributing Dexter tokens, but we will need to link this to the platform badge. Will flesh this out next week.