Should Compound Retroactively Airdrop Tokens to Early Users?

I hear you @Andre1; the good news is that your “linear TVL” proposal is almost identical to the time multiplier in my proposal formula, except that in my proposal this multiplier only ranges from 1 to 2 (which was not chosen for any particularly good reason), while for the linear TVL formula it should range from 1 to 86.26 (i.e. by how many times TVL grew during the eligibility window). I think this is more rational than arbitrarily having it run from 1 to 2, so I think we should adopt it.

I think it will also partially address your concern about the balance of social and capital weights. I agree that 95-5 appears imbalanced, but I don’t see a way for anything closer to 50-50 to keep the “floor” amount at 20 COMP without significantly inflating the 500,000 COMP request (we would already be asking for a 9% boost to bring the 95-5 distribution floor up to 20 COMP).

FWIW a 50-50 distribution shifts the floor to about 10 COMP – with the other ~10 COMP per small user (and by small we’re talking anyone under millions of USD equivalent supplied/borrowed) going mostly to a handful of very deep-pocketed users, as any capital-weighted distribution would do.


Alright I would have several questions then as I am not able to understand this code easily, will be useful for others also who cannot read any code

–1)Basic question, just to make sure I understood the choice you made, as I didn’t see the formula used, your system (for the capital weighted) is allocating a reward which is proportional to the number of blocks during which someone was lending (and possibly borrowing) a Volume on compound., for each block there is a factor (but thats question 2), in a way that your system is kinda similar to the current compound distribution ? I mean by that if someone came and lent 1 million for 1 block, he wouldn’t be elligible for example to a capital weighted reward right, as its proportional to the time he allocated his funds to the protocol?

–2) So you wrote
" * There are compelling arguments for both socialized and capital-weighted distributions. Including both strategies in the formula is a way to reach a compromise on this question."
Do you mean that you applied a “boost” which is linearly decreasing from the start toward the end date that went from 2 toward 1 ? (to take into account TVL change)
I mean by that, providing 10 dollar for 1 block on september 2018, would be equivalent to provide 20 dollar for one block on june 2020 in the amount of capital weighted allocation your calculation generate ?

–3)Were you able to take into account both compound v1 and v2 for the capital weighed allocation (including compound v1 users after the launch of v2)


@Andre1 I agree it would be helpful to share a simpler document laying out the current calculation and hope to add this to the repo; in the meantime, please take a look at the comments (specifically the lines starting with # in The formulas are written out and explained there.

(1) No, the time contribution to the weight is not proportional to the number of blocks during which someone was lending (and possibly borrowing). It is based exclusively on the time of the address’s first interaction with the protocol. Disentangling the duration of supplies and borrows using the on-chain withdraw/repay data is much, much harder because of the way multiple interactions can layer on each other. If a user supplied 100 SAI at block A and withdrew 100 SAI plus interest at block B, that would be easy enough to track with the tx data. But many users executed multiple supplies, withdraws, borrows, and repays of differing amounts that would basically require tracking every address’s “state” at each block to achieve a duration-based weight factor. That would be a much heavier data forensics effort. The current approach is perhaps overly generous to folks who dipped their toes in for just a few blocks and quickly withdrew in the early days; but I’m okay with that, because the risk at the beginning was arguably concentrated in the choice to supply (and how much to supply) rather than in how long the user kept their assets in the protocol.

(2) Yes, that’s correct – although as I was implementing your TVL suggestion, I found a mistake in the previous implementation which basically reversed the effect of the time multiplier, rewarding later users instead of early ones (!) This is now fixed in the repo and reflected in the updated list, which also implements your TVL suggestion.

(3) Yes, interactions with V1 and V2 are treated in the same manner with respect to the weights for the capital-weighted distribution.


Thanks for your answer

Now that it’s clearer I can say

(1)The problem in your method if I get it well is that if someone supplied 1 millions at launch and withdrew it instantly after a minut it would grant him exactly the same compared to if he locked this money for 2 years in the protocol ?

I would argue this is not really fair as, take someone who supplied from 2019, for 2 years, consider he would be treated for the specifically capital weighted the same as someone who deposit for a year then left the protocol for an other, or his bank, after 1 week.

If talking about the risks, I would disagree with your assumption, the risks of oracle hack, liquidation failure, (which we saw in defi are the biggest) etc are proportional to the time you lent.

Do you think there there is an easier way to obtain the total interest earnt+paid by an adress, that would make it easier and would match current comp distribution.

(2) My tvl suggestion works only if we proceed block per block, as we cannot apply a x86 boost for someone who lent (and maybe withdrew btw) for the whole period, this boost would apply only for the first week on his deposit (as if we tried to retroactively distribute COMP as if they started to be distributed since day one)


Do you think the huge difference between alive number of adress and yours is due to the starting date ? (you picked 15 June and he choose 8 June)


Regarding (1), I don’t disagree; however, I think the practical difference between your

“integral over the eligibility window of capital supplied+borrowed times TVL weight factor, int[C(t)w(t),dt]”
and my
“sum of capital supplies/borrows times TVL weight factor at time of the interaction, sum_i[C(t_i]]*w(t_i)”

will be negligible for all but a handful of addresses that supplied and borrowed multi-million USD worth of assets. Both formulas will deliver between 20 and ~21 COMP per user unless the user is in the multimillionaire early user club. But I can’t prove this hunch without actually implementing it, which is a fair amount of extra work.

For the same reasons, I follow your argument (2) but also believe that the impact of replacing the sum involving w(t_i) with the full integral involving w(t) will be minor except at the very, very top of the list.

For (3), the June 15 date is only used as the date at which EndPrice for each underlying token was determined. The EarlyUserCutoffBlock everywhere else (specifically the address list generated by and the distribution list generated by is block 10228172, the last block produced on June 8, 2020.

I can’t speak for @alive but would guess that the 5,000 user estimate was either a back-of-the-envelope calculation (and honestly not a bad one either, off by less than a full order of magnitude) or based on higher thresholds for what’s considered a small-value (dust) transaction and therefore not counted as a bona fide user.

Edited: previously I stated that my formula exclusively used the TVL at time of first interaction, w(t_0), but actually I am using w(t_i), that is, each transaction’s capital is weighted by the TVL factor at the time of the transaction.


Okay, I think it’s time for a poll!

Summary of recent developments for folks just joining or returning to this discussion:

  • There appears to be consensus in this forum toward some kind of airdrop to early users with vesting.
  • Many good ideas about the distribution model have been shared, but the conversation stalled due to the absence of a curated early user list with sufficient data to inform a capital-weighted distribution.
  • I was inspired by @grasponcrypto’s efforts with Dune Analytics data to try my hand at curating a list of early-user interactions by directly querying on-chain data.
  • The community has helped refine this list, e.g. @grasponcrypto and @rleshner provided the guidance I needed to isolate and remove addresses that participated in an early Sybil attack on governance.

I am hearing two main objections to this proposal as posted:

  • Objection 1: the calculation of capital input should be an integral over C(t)m(t), rather than a sum over supply/borrow events of C(t_i)m(t_i), where C is the capital borrowed supplied and m is a multiplier that favors interactions that occurred earlier in the eligibility window (when Compound had a smaller TVL).
  • Objection 2: the 95% weight to the social distribution is too high.

The first objection is addressable but would require considerable additional effort to implement. Given the level of effort required, I would seek support from the Compound grants program to do this.

The second objection is easily addressable; I just happen to disagree with it. As evidence, here are plots of the distributions for the 95%-5% case and the 50%-50% case.

These distributions look almost identical, except the 100 or so addresses that could afford to plow multimillions (or more) USD equivalent into the protocol receive ~10x the rewards in the 50%-50% case. All that extra COMP comes from smaller users, who each end up with only half of the 20 COMP available in the 95%-5% case. I don’t see how that helps achieve the goal of promoting participation in governance by early users.

However, we should hear from more voices than @Andre1 and myself to understand where a consensus lies, if any.

What do you think?

Do you support the current proposed early user distribution list?
  • Yes, I support the currently posted list as-is, not interested in seeing how the more accurate block-by-block capital weights would change things
  • Yes, but I support @allthecolors applying for a Compound grant to implement the more accurate block-by-block capital weights and produce a report for the community
  • No, but I support @allthecolors applying for a Compound grant to implement the more accurate block-by-block capital weights and produce a report for the community
  • No, I don’t support the currently posted list, and the block-by-block capital weights wouldn’t change my mind

0 voters


About the " * Objection 1: the calculation of capital input should be an integral over C(t)m(t), rather than a sum over supply/borrow events of C(t_i)m(t_i), where C is the capital borrowed supplied and m is a multiplier that favors interactions that occurred earlier in the eligibility window (when Compound had a smaller TVL)."

Are you making a sum for one given adress of all the capital that was supplied even in case it was repaid, resupplied, repaid (the same money) ? meaning the whale who withdrew and supplied again next minut the same amount has his supply amount counting twice, three times, or ten times in your calculations for the capital weighted reward ? If yes it’s yet an other flaw of this approach.

If I get it right, let’s say Franklin : he deposited 100kusd on compound in 2018 which he locked for years.

Now you look at Anton : he would deposit 100kusd on compound too in 2019, but then he would play with aave and a dozen of other protocol back and forth, in a way he effectively played with only 100kusd, but deposited and withdrew it often from compound, with effectively dedicating its funds on compound a much smaller time than Anton. Assuming Anton would have done it a hundred times.

We end up with Anton received 100x the allocation that Franklin would get ? Despite Franklin was locking his funds to compound (the same amount) for a far larger time ?

Also I can tell you that the top 100-300 people in your ranking are far from millioneers, we are talking here about some who dedicated a dozen k

I would say there could be intermediate solution like 80-20, but even if keeping 95-5 most of all having that capital weighted allocation in opposition of the socialized, really capital weighted and less arbitrary as possible matching successful distribution as UNI

.I hope a compound grant can already be obtained for all the work you are providing, anyways I will support the proposition choosed by community and which is feasable, it seems people are voting for the current distribution

question : Would there be any easy way to extract that number per adress : Notional value of total interest paid + received ? Would then be a much fairer approach if that’s an easy path, but I don’t know if that number can be obtained


When the COMP Distribution began, it was expected that Governance would alter, improve, and rethink the program–its fantastic to see the community organizing, and doing the research to distribute COMP to early users.

There are a few questions to answer, and build consensus around:

  1. What is the purpose of distributing COMP to early users? Why is this a better use of COMP, than distributing it to current users, or to protocol improvements through development grants?
  2. How many COMP should be distributed to early users?
  3. What should the vesting schedule, mechanics, and implementation be?
  4. Which addresses should be eligible, and how should the quantity of COMP per user be calculated?

A lot of recent discussion has gone in to question 4, and I wanted to document my own views, and some of the historical issues surrounding this question.

The addresses that receive COMP should be early users that risked their time and capital to establish the protocol. This means excluding addresses that were deliberately created to manipulate the protocol; one example of this is the first community vote, which was “sybil” attacked with hundreds of addresses supplying ~0.01 Ether each.

Second, early should be defined as anybody that tested the protocol before the COMP token & distribution was announced on 2/26/20.

Third, users should be measured by usage of the protocol. For an interest rate market, usage is a function of capital over time; how other protocols have distributed tokens to users is irrelevant to Compound. This approach was piloted during the second community vote, and formed the basis of the COMP Distribution when it began for users. Luckily, in Compound’s case, this can be easily measured by interest earned, and interest paid.

Lastly, several members of the community feel that the distribution should exclude or limit “whales” in some way, even though these addresses took the most risk, and contributed the most value to the protocol. This is a political question – but could be implemented in a simple way, by allocating through the square root (or another power) of interest earned+paid, which would partially “flatten” the wealth effect.

I’m excited about the effort occurring here – and wanted to plug the Compound Grants program as a tool to help organize the research, smart contract development, auditing, and proposal work that this distribution will require.


Agree with Robert on all points here. To penalize large users for supplying big capital to a risky protocol (at the time) seems not just unfair, but borderline malicious. If the protocol had been compromised and they lost everything, would the community coalesce and chip in to make them whole? Successful risk taking should be rewarded, not punished.


How about smart contract wallets like Argent and Dharma? I prefer to use Argent to interact with Compound. However I did not see my address in the list.


@Compactivist see post 214 Should Compound Retroactively Airdrop Tokens to Early Users? - #214 by allthecolors

1 Like

I am not sure if the definition of early meaning before the token release in Feb 20 is the best fit. I’d recommend setting the cut off date somewhere when DeFi started gaining traction. I think the COMP distribution update was more meaningul in this regard than the original announcement COMP Governance & Distribution Update | by Robert Leshner | Compound | Medium


My first interaction with the protocol was on March 28th almost a month after the announcement and I wasn’t even aware of a COMP gov token.

Me and many early users interacted with the platform for the first time out of curiosity.

I discovered compound finance because of the integration with the Coinbase wallet.

So I made my first deposit with BAT then DAI then a monthly deposit and so on.

De-Fi wasn’t a thing until the summer, and I believe most early users weren’t aware of the future value of a government token.

I think @alive suggested date is good enough as an starting point and in the case of the Sybil attack, we could filter the wallets that interacted less than 2 times with the protocol as @blck suggested.

Personally, I believe this airdrop could help Compound in reach a better decentralization, as long as it doesn’t discriminate the early users who genuinely believe in the protocol.


If the protocol had been compromised and they lost everything, would the community coalesce and chip in to make them whole?

Already happened.

The rejection of this proposal is one of the reasons of why a Pro-rate airdrop will not work for decentralization.

It’s either a fixed amount for everyone as the social distribution of @allthecolors suggests or a minimum amount as other protocols did.

Making this process more complex it will take longer and longer to achieve, it’s been months since someone decided to take real action and started to share relevant data to finish this proposal.


I think the purpose of COMP distribution to early users should be to increase the degree of decentralization, because it is a COMP governance token (at least that’s what we call it). Early users risked their capital and interacted with the protocol during the bear market without the possibility of liquidity mining. On the other hand, most existing users are attracted to the COMP distribution, so the assumption is that they already have enough governance tokens (if they have sold them then their intention is clear). My opinion is that snapshot need to be taken on token launch (not on announcement).

The only fair distribution of COMP tokens is completely social (100%) so all eligible addreses get the same amount of COMP because it is a governance token after all. If we include capital distribution factor then the act itself has no purpose because the structure of the holders will remain the same (centralized).
Measured by usage is possible only before start of liquidity mining because last months only “whales” can afford to pay gas. Except that, usage metric is super relevant and it is a good idea.
Vesting period is necessary due to the possible DUMP on the market, + distributed and vested COMPs with some collateral feature (for accounts and platform stability, not for leverage).

agree, process will be faster that way


Time to reward those who deserve to be rewarded!

Thank you for your contribution Borovan

1 Like

And/Or a “thank you” gesture to all those who took part in the early days of the protocol, borovan shared his experience and feedback very frankly and if others feel the same it might be a good way to make amends. But other early large contributors may feel otherwise.

1 Like

I agree with you that Pro-rate airdrop doesnt change anything.

You mean early contributors or early investors? Early contributors were paid for that contribution and early investors obviously got their COMP share in which they invested. If I’m wrong, so the contributors worked for charity and the investors donated their funds to the protocol then the problem is in Etherscan data.
The purpose of COMP airdrop distribution should be protocol governance decentralization (in some degree) and treat each user equally regardless of the amount of capital he owns.
The fact that certain persons / funds treat the “DeFi” protocol as shares of the company creates a problem because “Defi” and “user governance” memes obviously serve as good marketing.
Borovan’s situation maybe is unfair, but I don’t believe he didn’t make money from the aforementioned liquidations.


It is clearly.
we hope see the proposal soon

You are totally right, it’s about Fairness. This means something totally different from one person to another.

Maybe his expectations were too high on “how compound would retroactively reward him if ever super successful”.

Something to put more thought into maybe: milestones programmatically enforced for community contributors (i.e. community does xyz and if the project reaches xyz target then the relevant members get an airdrop). Never really heard of this but it may help getting this early community members/contributors more excited, more fairly rewarded and remove implicit hopeful expectations.

1 Like