Dynamic Time-Weighted Quadratic Voting

I have shared my views on voting a while ago. After getting positive responses and suggestions I am turning it into a proposal. A similar one trying to address the same issues is suggested by Crypto_Chemist, which includes rewarding as well. I believe we will soon have a satisfactory voting mechanism that will bring us closer to be the best dex on the market.

I have copied the original post for newcomers and added FIFO at the end.

We are all disturbed by the behaviour of some huge PNG holders. Some of them have been so far malicious. We want to prevent any possible attacks that might hurt Pangolin in the future. Our community is not against whales. We just want to protect our DEX.

On the other hand we also want to help and protect small investors who believe in this project, while sustaining a functioning democracy.

I guess we need to think slightly out of the box to address the issues. Combining these two aspects I would like to suggest:

Dynamic time-weighted quadratic voting. This will result in every PNG being valuable as much as they contribute to the community.


  • There will be no minimum cap (or a very small amount if really necessary) per address to be able to vote, hence every PNG holder is motivated to contribute and yet not able to fully manipulate
  • Sudden transactions for possible manipulations will be fully eliminated
  • It will create less volatility
  • There will be no restrictions on staking/pooling. Free to withdraw/claim anytime.

The basic formula:

The voting power will be based on the quadratic value of total number of PNGs an account has and will be multiplied by the number of days (per day the multiplier will increase 0.001) it holds the PNG.

VP = √PNG x Days

VP = Voting power
PNG = The total amount of PNGs an account has at the time of voting
Days* = Multiplier based on the total number of days an account holds the total number of PNGs. Multiplier increases by 0.001 per day.
*please see below for further details


Account #1
Holds 64 PNGs for a day.
√64 x 0.001 = 0.008 voting power

Account #2
Holds 64 PNGs for a year
√64 x 0.365 = 2.92 voting power

Account #3
Holds 1,000,000 PNGs for a day
√1,000,000 x 0.001 = 1 voting power

Account #4
Holds 1,000,000 PNGs for a year
√1,000,000 x 0.365 = 365 voting power

Ceteris paribus, a whale has much more power as it should have and yet cannot dominate the decisions. Small investors are protected as long as they contribute to the community by keeping their PNGs.

In a perfect setting, airdrop PNGs should be eliminated from voting power but I do not think it is technically possible.

For liquidity pools, multipliers can be adjusted. AVAX-PNG pool contributors can get three times more, other PNG pool contributors get two times more.
I tried to address all the issues mentioned above in the discussions. Feel free to modify as much as needed.

*One question would be the calculation of some accounts with constant transactions. To make it fair, just and easy to calculate at the same time, I would suggest FIFO (first in, first out) method. It might look complicated at first glance but it is pretty easy to calculate and formulate.

Total number of days multiplier for the total number if PNGs an account has should be based on the days calculated backwards from today starting form the latest transaction. Hence, FIFO.

Days = T-b
T = Today
b = the latest date for the amount of PNGs added to the account.


Account #1
Holds 64 PNGs for a day. There is not much to calculate since there is no history.
√64 * 0.001 = 0.008 voting power

Account #2
Holds 64 PNGs for a year. But there might be such cases:

A) This account had initially 64 PNGs. During the course total PNGs increased and decreased.

T-180 (180 days ago): 64 PNGs
T-90: 256 PNGs (+192 PNGs)
T-60: 64 PNGs (-192 PNGs)
T: 64 PNGs (no change since the last transaction)

Without FIFO, this account would have 1.44 voting power.
√64 x 0.180 = 1.44

With FIFO, 64 PNGs this account has acquired on T-180 are gone on T-60. Thus, total number of days for current 64 PNGs is 90. Hence, this account would gave 0.72 voting power.
√64 x 0.090 = 0.72

B) This account had initially 64 PNGs. During the course total PNGs increased.


T-180 (180 days ago): 64 PNGs
T-90: 256 PNGs (+192 PNGs)
T: 256 PNGs (no change since the last transaction)

Without FIFO, this account would have 2.92 voting power.
√256 x 0.180 = 2.88

With FIFO, 64 PNGs this account has acquired on T-180 and the additional PNGs it acquired on T-90 will be calculated separately.
(√64 x 0.180) + (√192 x 0.90) = 1.44 + 1.25 = 2.69

In a nutshell:
We look how far the current PNG value in an account stretches back and then add the days to the multiplier for that amount.


I don’t get the point of stopping whales of having influence. First, the idea that someone is being malicious simply because they swapped your favorite coin for another is ridiculous. Second, whales are rich and they didn’t get rich by being bad with money or bad at making business decisions.

This proposal is not about stopping whale influences. They are actually welcome to contribute. The more they contribute, the more they gain influence. It is encouraging actually.

A whale being successful is another topic. They might be pretty good at getting rich and making business decisions that benefits them. We are here to protect our own interests. A whale might want to get richer at any cost. We want to prevent it happening at our cost.

This is a proposal for joint gains. Some whales might find it interesting and join us. They are welcome. Some might want to get rich by destroying us. We will not let it happen. They can go and vampire drain other projects.


Your proposal reduces the voting power of a whale to that of a couple of minnows even thought he might have 1000x more PNG than those minnows combined.
Also, your proposal makes PNG less desirable as a buy because of the time dependent value. Why buy 100 PNG if it has the same voting power as 1 PNG held for a few months?

My prediction: the moment this proposal gets accepted, the price will insta-dump because of whales selling up and leaving, and it will not go back up again because the buying power of the whales will be gone and also because newly bought PNG is unattractive as it has no governance power.

Under the same circumstances a whale has more voting power than a “minnow”. Taking the example above as a base, the whale has 125 time more voting power than a “minnow”. Hence, this proposal does not reduce voting power per se.

1 PNG needs to be kept 100 days in order to reach to 100 PNG value which is kept a day. The whole idea is to motivate people keep it. Hence, target acquired.

That is what precisely happening right now. Malicious ones dump anyways. At least they will not be able to manipulate voting for their own desire.


By your own calculation you’ve roughly reduced the voting power of that whale by a factor 100.
How is 100x less not a massive reduction?

Thank for another contribution.
I think we will find the perfect formulas between us all.
Your proposal doesn’t seem unfair to me, or anti-whale, just new investors have to wait to have significant vote.
I think a limit on the holding period like the average over 1 month might give investors a more acheivable goal, and maybe we could have a road map for increasing the time period, to give investors ambition for the long term.

1 Like

I somewhat like the suggestion, it’s quite interesting, here’s the downside of it: it would be an entry barrier, why would I buy PNG for the purpose of voting if I would have to hold it for years until I get enough voting power?

1 Like

I guess this is one of the decisions we need to make.
Do we want voters appearing suddenly or do we want to govern by contribution. Fom my personal point of view, buying PNG just to be able to vote is a ridiculous idea. I really do not see the benefit of it for the platform.

Imagine for a second that the country you live in suddenly gives right to vote for general elections to someone who is not a citizen, never lived there, won’t stay more than a day after the election. Does not make sense at all to me.


That’s a good point.
But I think the time period needs to be shorter to start with.
That’s why I prefer the 30 day.
I think we could move to yearly later, but now we are still young and need more ‘founders’.

The country comparison doesn’t make sense. Pangolin is not a country, it is a business. And in a business share holders decide based on the number of shares they hold. The more shares, the more impact their vote has because they have a higher stake in the potential losses or gains.
If business decisions were made using a version of a democratic 1 person / 1vote, then a large group of activists could destroy any business just by all buying 1 share, and vote against the business interest. All without much financial risk for themselves.

It is a recipe for disaster and it will be gamed. No doubt about it.

What if we do the same process, but instead of looking into own’s wallet, we actually open the vote for 2 month, and earlier you deposit your PNG, the more vote it’ll yield. The only downside is that the voting might become irreversible at the end, the upside is that no one will have unexpected huge voting power at the end

I think a pre-voting period is a good antidote against potential bad actors. This can simply be done by taken snapshots at random intervals (say once a week, using some on-chain contract with a random number generator) and using the latest snapshot to determine voting power.
Using random snapshots counteracts whales that do flash buys for voting.

But Pangolin is fungable and not just used for voting, so not really the same as owning a share in a business either.
I think mild time weighting could definatly help reward long termer.
I agree if we go too extreme people will try to abuse it.
I think taking random daily snapshots and working out the average is fair.

Shares in a business can be bought and sold just as easy as tokens. It’s a perfectly fine analogy.
I don’t think there should be a reward for long termers. That reeks of a ponzi scheme with early users trying to take all profits and then leave new users holding the bags. Pangolin should stay far away from it.

Actually I agree with what you say. Newcomers should not be punished or be in a disadvantaged position.

My biggest concern is that we found ourselves in the middle of a low-intensity conflict. Our initial decisions will determine the future during these wobbly times. In our specific case, our survival depends on it. There will be no newcomers and/or long-termers if we do not exist.

Maybe we can combine both in such a way. What about using dynamic time-weighted in the beginning, and switching to mild time-weighted after a period of time. It is totally acceptable once we get rid of the danger of being manipulated by possible threats. Once PNG is listed on a CEX and C chain is supported some CEXs, the danger of a single handed manipulation will not be as strong.

We just need to put things back in shape for a while.

But if one only hold shares in a business for short periods, they don’t have long term intentions. With the mechanism proposed @ Loyal Votes & Loyal Rewards, one would have 70% of their voting power after just 2 weeks. In contrast to a Ponzi, it’s security against short-termism.

Are you not trying to solve a problem that is not there? Buying enough PNG to influence votes would be quite costly. Dumping them after votes would be even costlier.
I think a randomly timed snapshot a few days before a vote is security enough. It would be much easier to implement. And also much easier to explain to newbies. Sushi does it like that and it works fine.