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

Implement GIVbacks claim window #912

Open
laurenluz opened this issue May 23, 2024 · 21 comments
Open

Implement GIVbacks claim window #912

laurenluz opened this issue May 23, 2024 · 21 comments
Assignees

Comments

@laurenluz
Copy link
Member

We might have some GIV from GIVbacks that has been distributed but left unclaimed for a long while. We should set up a process for reclaiming that GIV back to the DAO.

Is there a way to track how long GIV has been left unclaimed for to get an idea of what there is here?
Do we have a process for being able to reclaim that GIV or redirect it back to Giveth? Where do we send it back to? the rGIV DAO?

Creating this issue to start the conversation. I think we'll need a forum post for it.

@divine-comedian @aminlatifi @WhyldWanderer

@laurenluz
Copy link
Member Author

cc @wmb81321

@laurenluz laurenluz transferred this issue from Giveth/giveth-dapps-v2 May 23, 2024
@wmb81321 wmb81321 self-assigned this May 29, 2024
@aminlatifi
Copy link
Member

@laurenluz We can retrieve the list of givback recipients who have not claimed their tokens (have not claimed the liquidated part of their stream at all). It means, their stream is added up by GIVBack, but they have not interacted with TokenDistro to claim tokens directly or indirectly (like farming and harvesting reward)

There is a point in defining "How long GIV has been left unclaimed". Because potentially a user can receive givbacks in multiple rounds. If the user has not claimed any GIV, which round must be the origin time to calculate duration?

@laurenluz
Copy link
Member Author

yeah good point @aminlatifi

is it easy/fast to get the info about how much GIV is allocated to addresses that have never interacted with the tokendistro to date? We could use it to decide next steps... if that number is in itself large, it is worth it to continue to define a clear system and communicate it to users.

As for "which round must be the origin time to calculate duration?" I Think we should consider the furthest back time as the "origin". so if a user interacted with the token distro since launch... but the last time was 1 year ago... we could consider relclaiming their GIV.

So we can basically define a system like "you need to claim/harvest/interact with the token distro at least one time per year, or your GIV will be sent back to the DAO".

@aminlatifi
Copy link
Member

yeah good point @aminlatifi

is it easy/fast to get the info about how much GIV is allocated to addresses that have never interacted with the tokendistro to date? We could use it to decide next steps... if that number is in itself large, it is worth it to continue to define a clear system and communicate it to users.

As for "which round must be the origin time to calculate duration?" I Think we should consider the furthest back time as the "origin". so if a user interacted with the token distro since launch... but the last time was 1 year ago... we could consider relclaiming their GIV.

So we can basically define a system like "you need to claim/harvest/interact with the token distro at least one time per year, or your GIV will be sent back to the DAO".

I will prepare a query to return users with allocated tokens who have never claimed their tokens.
Regarding your example, it seems to explain "last time", not "furthest back time". Am I right?
Suppose a user has claimed once 2 years ago and once 1 year ago, the expected outcome must be 1 year. Right?

@aminlatifi
Copy link
Member

@laurenluz I prepared this query to show users with allocated GIV who have not claimed any of it.

https://dune.com/queries/3799716/6388453/

It also has separate columns for allocations associated with the explicit GIVBack pay calls. FYI, some allocations like this were not done with explicit givback pay method
https://gnosisscan.io/tx/0x586b61eec3677f1c2c9e54ca452ee7ea6deab0380a6747508648a8022c43e186#eventlog
@divine-comedian may know better why.

All above is done for gnosis network. If it's okay we can prepare the same for other chains.

@aminlatifi
Copy link
Member

aminlatifi commented Jun 5, 2024

Sample response image

On gnosis

total_unclaimed total_unclaimed_givback
8382074.288546356 6961985.869643101

@divine-comedian
Copy link

@laurenluz I prepared this query to show users with allocated GIV who have not claimed any of it.

https://dune.com/queries/3799716/6388453/

It also has separate columns for allocations associated with the explicit GIVBack pay calls. FYI, some allocations like this were not done with explicit givback pay method https://gnosisscan.io/tx/0x586b61eec3677f1c2c9e54ca452ee7ea6deab0380a6747508648a8022c43e186#eventlog @divine-comedian may know better why.

All above is done for gnosis network. If it's okay we can prepare the same for other chains.

The only users I could think of would be those who haven't claimed their praise rewards or vesting

@laurenluz
Copy link
Member Author

wow this is great @aminlatifi!

8.4M GIV is actually quite a lot, and I think this might be worth the effort to make a system around. Let's chat about it in the GIVeconomy call today.

@laurenluz
Copy link
Member Author

Hey @aminlatifi, as we discussed in the last GIVeconomy call:

We want to implement 2 conditions for if an address should have the GIV claimed back by the DAO:

  1. Address should not have interacted with the token distro ever, AND
  2. It has been at least 6 months (or 1 year) since the last time they were allocated any new GIV

We should include allocations from GIVbacks, praise & vesting.

Can you run some queries (and check the existing query for bugs) to compare also what is the GIV amount we could "claim back" if condition 2 considers the time frame to be 6 months vs. 1 year?

Once we have those GIV amounts, I can make a forum post & a vote so that we can implement this and send those tokens back to the GIVgarden multisig.

@aminlatifi aminlatifi assigned aminlatifi and unassigned wmb81321 Jul 31, 2024
@aminlatifi
Copy link
Member

Hey @aminlatifi, as we discussed in the last GIVeconomy call:

We want to implement 2 conditions for if an address should have the GIV claimed back by the DAO:

  1. The address should not have interacted with the token distro ever, AND
  2. It has been at least 6 months (or 1 year) since the last time they were allocated any new GIV

We should include allocations from GIVbacks, praise & vesting.

Can you run some queries (and check the existing query for bugs) to compare also what is the GIV amount we could "claim back" if condition 2 considers the time frame to be 6 months vs. 1 year?

Once we have those GIV amounts, I can make a forum post & a vote so that we can implement this and send those tokens back to the GIVgarden multisig.

@laurenluz I made this query. The number of days since last allocated can be set with a parameter called daysSinceLastAllocate. You can change it and execute the query.
As I run it now, the total value we can get back to DAO is
365 days: 4352354.1046977
180 days: 6575959.732925157

As an intro to the query, I queried all allocations to accounts that have not ever claimed from token distro.
You said you are interested to allocations via givback, praise and vesting. There is no way for us to distinguish allocations for praise and vesting, only givback has explicit defined event on token distro. So, you can look at more details of allocations
here
image

@laurenluz
Copy link
Member Author

As an intro to the query, I queried all allocations to accounts that have not ever claimed from token distro.
You said you are interested to allocations via givback, praise and vesting. There is no way for us to distinguish allocations for praise and vesting, only givback has explicit defined event on token distro.

I think when we were discussing it, we said that we can't just decide to claim back "givbacks" because if we claim it back, we grab back their entire allocation. So we should consider basically all allocations from the token distro (not just ones market GIVbacks). Is that basically what you check @aminlatifi ? Or is the query only considering allocations from givbacks?

@aminlatifi
Copy link
Member

As an intro to the query, I queried all allocations to accounts that have not ever claimed from token distro.
You said you are interested to allocations via givback, praise and vesting. There is no way for us to distinguish allocations for praise and vesting, only givback has explicit defined event on token distro.

I think when we were discussing it, we said that we can't just decide to claim back "givbacks" because if we claim it back, we grab back their entire allocation. So we should consider basically all allocations from the token distro (not just ones market GIVbacks). Is that basically what you check @aminlatifi ? Or is the query only considering allocations from givbacks?

It considers all. But I can only reports GIVbacks as well if you like

@laurenluz
Copy link
Member Author

All is good! We can make a decision about 6 months of 1 year in the GIVeconomy call, and then move forward with this :-D

@laurenluz
Copy link
Member Author

ok! forum post is up! so if this passes the gov process, we can proceed: https://forum.giveth.io/t/implementing-a-giv-claim-window-and-a-givbacks-minimum-donation-amount/1512

@aminlatifi we know how to "claim back" that GIV right? can you example how we could do it?

@aminlatifi
Copy link
Member

ok! forum post is up! so if this passes the gov process, we can proceed: https://forum.giveth.io/t/implementing-a-giv-claim-window-and-a-givbacks-minimum-donation-amount/1512

@aminlatifi we know how to "claim back" that GIV right? can you example how we could do it?

Yep, using this method on token distro
image

@laurenluz
Copy link
Member Author

Ok this vote passed! https://snapshot.org/#/giv.eth/proposal/0x6bb75975839c993db2cddd9254fd18f3fb20624cca00551408e4e9fe3ee0a4f2

So we can implement the condition that:

  • if the user's last allocation was 270 days ago
  • and if the user had never claimed from the token distro

So we can execute this, and take all the streams and send them to the GIVgarden multisig instead... at least on Gnosis Chain.

@divine-comedian can you help to deploy the GIVgarden multisig on Optimism too, and then we can do on OP.

@laurenluz
Copy link
Member Author

https://app.safe.global/settings/setup?safe=oeth:0xd10BAC02a02747cB293972f99981F4Faf78E1626

this is the givgarden safe on OP

@laurenluz
Copy link
Member Author

and this is the givgarden safe on GNO: https://app.safe.global/settings/setup?safe=gno:0xd10BAC02a02747cB293972f99981F4Faf78E1626

I asked almond to prep a tweet warning people "last chance to claim your old GIV allocations", and once that goes out, I think we can wait another 5 days before actually redirecting this GIV to the garden multisigs. will update here once that timing is done.

cc @aminlatifi @divine-comedian

@laurenluz
Copy link
Member Author

almond will post a tweet tomorrow that says that people have 1 more week to claim... so basically, we can execute on this on September 12, 2024 @aminlatifi

@laurenluz
Copy link
Member Author

@aminlatifi this is ready to start up tomorrow

@laurenluz
Copy link
Member Author

from the GIVeconomy call, there are about 3677 address we will need to "transfer allocation" for. Here are the results: https://dune.com/queries/3799716/6388453?daysSinceLastAllocate_t6c1ea=270

@aminlatifi can check how we can do these in bulk or batched

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

No branches or pull requests

4 participants