Proposal: Use protocol owned ETH to buy and burn BNT from the markets

I think you misunderstand - from the perspective you are looking at it: it would initially offer to buy at half the market price, and slowly increase until someone is willing to buy it.

Jaredfromsubway got nothing from the POL sale and would get nothing from this. The only MEV bots I’m aware of that profited were ‘transaction replay’ bots, and because they were calling the Fastlane contract, Bancor kept its share of the arbitrage transaction.


I am generally in favor of this approach.

I have been working on a method to achieve the same outcome as is proposed, but with an execution method that is a lot more hands-off.

Everything starts the same way; the process needs to be kicked-off by choosing a price point, doubling it, and letting the exp decay do its work to touch down on the market approx. 10 days later:

There are some new variables here that warrant further explanation. The max ETH offer and min ETH offer define boundaries of the POL auction. The difference between them is more or less akin to @alphavalion’s proposed 16 and/or 32 ETH increments, but gives the system some elasticity as auction ETH reserve becomes depleted.

The setup is simple:

  • If the auction ETH reserve < min ETH offer, then:
  • top-up the auction ETH reserve from the primary ETH reserve, such that:
  • auction ETH reserve = max ETH offer

Thereafter, everything is 100% automated. The POL contract continues as normal - starting with an asking price way above the market, and slowly coming to meet it. If the price of ETH and BNT stay relatively consistent, then it is safe to assume the auction will start getting some attention around day 10:

This is just an example scenario for illustrative purposes. The thing to note is that eth amount and bnt amount columns are recording swaps made, and the bnt per eth rate is recording a literal market price. As the remaining eth offer is diminished below the min ETH offer, we actually have a true market price. the significance of this will become apparent shortly.

Whereas the process to start required a manual price input, now we can simply begin the auction anew, using the last known auction price as a reference.

After that the process is self-sustaining. The setup is simple auction ETH reserve topped-up from the primary ETH reserve, until it is back to max ETH offer.

The initial asking price is then thrust back up to 2x the last known market price achieved on the contract. Meaning, we expect another 10 day delay as the half life of the exp decay function approaches the last known market price point.

This predictably sporadic break in the auction cycle is largely in-line with what @alphavalion was proposing in his original proposal. However, rather than have a fixed time interval, the interval here is largely dependent on the market conditions. If BNT continues to gain on ETH, then the intervals will be slightly shorter, if ETH gains on BNT they will be slightly longer; however, they are also self-correcting. Over even a moderate number of cycles, the average time interval ought to near 10 days, unless there is a sustained rally or capitulation in one of these assets versus the other, for the entirety of the auction.

As before, when the remaining ETH offer is less than the min ETH offer, the last price is multiplied and used as the next reference point.

Then, the auction ETH reserve1 is replenished back to the max ETH offerfrom theprimary ETH reserve`.

And by now you get the idea. This process can continue uninterrupted, and without manual intervention, until the primary ETH reserve is depleted. After that, there are essentially no more updates, and the remaining ETH offer will have to run itself to zero.

This achieves a relatively robust TWAP, without having to face down the challenges of, for example, oracle price feeds - and especially the risks of trying to get a decentralized entity to execute a swap as a taker on Ethereum, Twitch plays DeFi style.

More importantly, the approximate time this thing will run for is not too difficult to anticipate. If you read over the process above, you should be able to convince yourself that the procedure will shed whatever the difference is between the max ETH offer and the min ETH offer, about once every 10 days (on average). So, dialing in a reasonable time frame is straight forward:

For what it is worth, I would think 3 or 6 months to be acceptable. A year is a little on the long side, but also fine. Any longer than that I think is a waste of time.

I have seen a few comments about the “impact” being dependent on the time - just know that absolutely no one is able to make such a claim with any level of confidence. As with any purchase - the objective should be to get the best price possible. “All at once” is a dumb idea, but so is “over the time it would take to get a degree in finance”. There is a sweet spot somewhere between these two extremes, but it is unknowable where it is. But, I also think the returns diminish very quickly as we approach that efficiency asymptote.

I like the idea of 3 or 6 months - with no strong preference for one or the other.


And @foxsteven is right here - makers cannot be front run, only takers.

The risk of selling large quantities all at once is that the market might simply not have the appetite for it. The “market price” on coin gecko etc. might only be good for a few thousand dollars worth of pressure - and overwhelming it can depress the price of ETH in this case.

However, ETH being superbly liquid as it is - especially on its own chain, I doubt there is too much to be concerned about. It still deserves caution and due process, but overcaution is also probably a mistake.


not sure your answer is correct.
the POL offers to trade ETH for BNT at a given price. this price starts 2x current market price. if anyone is willing to buy it at premium, go ahead as the DAO only benefits from it.
there is no need to manipulate the entire market as the POL sell price is not related or affected by it.

example i can think of
current market price of BNT is $0.6
POL sell price starts at $1.2
if a taker is willing to pay $1 to take the BNT, there is a $0.4 premium on the price for the POL.

there is no need to manipulate the entire market as the POL sell price is not related or affected by it.

We are using the coingecko BNT price and adding a 2x premium to start the auction which then decreases over some time period. At some point the auction is going to reach the market price of BNT or be below it and then someone will take the ETH to give the Bancor DAO BNT. Giving us BNT for ETH will increase the price of BNT.

This is a good example and what I am saying is that the current market price of BNT will be higher at the beginning due to front running if this becomes a 1 time large 1800 ETH purchase or multiple large purchases such as 100 ETH or more.

Someone can profit by anticipating a large BNT buy to happen because they have knowledge after the DAO proposal passes. They can increase the price of BNT by buying it first and then the price will further increase after the DAO performs its 1800 ETH purchase. Everyone can agree that us buying BNT with ETH WILL increase its price by some amount. If the Bancor DAO is buying BNT after the market is manipulated then we are getting front run no matter if we are makers or takers.

I already think that we are buying BNT in a bad time after a large rally has occurred. Anyone can easily take a look at the last 30 day BNT TWAP and find that this is about .47 and a 25% difference from current price.

snapped_at price
2023-09-24 00:00:00 UTC 0.402787065
2023-09-25 00:00:00 UTC 0.389801342
2023-09-26 00:00:00 UTC 0.399996852
2023-09-27 00:00:00 UTC 0.39408705
2023-09-28 00:00:00 UTC 0.396093857
2023-09-29 00:00:00 UTC 0.407676777
2023-09-30 00:00:00 UTC 0.407678422
2023-10-01 00:00:00 UTC 0.414804877
2023-10-02 00:00:00 UTC 0.423713015
2023-10-03 00:00:00 UTC 0.40015437
2023-10-04 00:00:00 UTC 0.39727697
2023-10-05 00:00:00 UTC 0.39829523
2023-10-06 00:00:00 UTC 0.389550407
2023-10-07 00:00:00 UTC 0.397498108
2023-10-08 00:00:00 UTC 0.39306847
2023-10-09 00:00:00 UTC 0.581009965
2023-10-10 00:00:00 UTC 0.532874229
2023-10-11 00:00:00 UTC 0.499373541
2023-10-12 00:00:00 UTC 0.541956281
2023-10-13 00:00:00 UTC 0.509031126
2023-10-14 00:00:00 UTC 0.505216061
2023-10-15 00:00:00 UTC 0.498013222
2023-10-16 00:00:00 UTC 0.555835016
2023-10-17 00:00:00 UTC 0.572170146
2023-10-18 00:00:00 UTC 0.570343676
2023-10-19 00:00:00 UTC 0.562564529
2023-10-20 00:00:00 UTC 0.586846144
2023-10-21 00:00:00 UTC 0.556297872
2023-10-22 00:00:00 UTC 0.546629302
2023-10-23 00:00:00 UTC 0.560081584
2023-10-24 00:00:00 UTC 0.575320397

When was the last time the Bancor DAO did an 1800 ETH purchase for BNT?

I see @0xkeyrock.eth is a participant in this DAO and maybe they can comment on whether any large onchain BNT purchases of 100 ETH or more will be subject to frontrunning if such a proposal passes.

My proposal will stand at buying 32 ETH worth of BNT every week and this process lasting for 1 year. This achieves about 1% slippage with current onchain liquidity. If someone wants to put up a competing proposal with other amounts they can do so. Bancor is a DAO and anyone can participate.


I really like this idea and support this approach. The mechanics that make it auto-adjust to the market after each cycle is intuitive, and its important to remember we have the arb bot that will add value along the way, along with making the whole process efficient towards the protocol.

Mark commented at the end about the impact, and I fully agree. The way I’ve viewed this is a way to reduce BNT supply, not a mechanism by which to move markets. Clearing the excess BNT supply from last year solves many problems at once, and to be clear I see it as one necessary component to right-size the protocol. To that end I view this whole POL exercise as an accelerated means to that end.


Thanks for all the input @alphavalion.

I’m looking forward to see two proposals being up for a vote at the same time so we can make a choice.


Hi @alphavalion ,

Firstly, thank you for putting up this proposal. While I have a different opinion when it comes to the mechanism design - our goals are aligned.

I have posted a competing proposal. I chose the same date for snapshot so they can be voted on at the same time for maximum fairness.

One last comment, I greatly appreciate your contributions at @alphavalion - I think your recent proposals are pushing this DAO forward.

Great work :muscle:


I second this @alphavalion really appreciate all of the hard work.


if you mean single clip 100ETH buys of BNT, then this could be subject of someone capturing arbitrage of CEX-DEX pricing depending on the liquidity conditions.


Easy, $0.6 seams to be a major resistance right now. Put a 1800ETH buy order at $0.6 on cowswap → turn it into a support. If you buy BNT for 16ETH/week you end up buying BNT for $5 a year from now and still fixing the deficit.

ETH/BNT ratio may vary so buying BNT at $5 may be a good deal…


I also like to see two proposals go on for vote and agree with the assessment from keyrock that large clip of BNT buys will be subject to greater arbitrage capture at the loss of the Bancor DAO.

As the saying goes, slow and steady wins the race.

No one is going to use cowswap when you havel limit and range orders that can be put on Carbon below the current BNT buy price if the DAO wants to go in that direction.

Coincidence of Wants is a meta DEX aggregator and the solvers are matching the orders.

hey bigbrains, @alphavalion @foxsteven

i am rather new to the deficit issue because i just left my funds unattended for a while. so i am reading up and try to wrap my head around this.

in this discussion it seems to be important not to move markets but only to reduce BNT tokens. so for a given ETH value, it is better BNT stays cheap, so that we can burn as much BNT as possible.

how does that help my deficit? so far, i experience that my deficit relies on the ratio TKN/BNT, so to get into surplus, a high BNT valuation would be the key.

my biggest position is in ETH, so the recent rally does help us to burn more BNT, but my deficit gets worse as BNT/ETH worsens.

can anyone untangle these opposing forces for me?

and to put things into perspective: how big is the deficit? how many BNT do we need to burn? and how is that related to the available POL/ generated fees?


This is a misunderstanding. If you burn BNT, it has no impact on the deficit unless that BNT was first purchased.

Also, the proposal that was eventually passed is here: Proposal to Use POL to Reduce B3 Deficits

Thank you for your fast response!

I understand now that there is no hidden mechanism that I don’t understand. Price action is the only key to get rid of deficit.

But reading the discussion above I still get the impression we try to stretch the sale in order to prevent pumping BNT. Why, if a high BNT price is beneficial?

I feel there is a piece in this puzzle that I don’t get.

  • BNT is $1 and whatever X token is $2 in a bancor pool. (deficit in the pool)
  • If BNT pumps to $2 a token. this will match the same price as the other X $2 token (pool is now equal)
  • The pool can then be closed as an arb bot or trader will trade X token for BNT filling the gap in the pool.

This has happened for quite a few pools already this year as a bunch have closed on v3.

1 Like

I believe that relates to the perspectives and biases of people involved in the process. For some, their loyalty lies with Bancor itself, for others it lies with Bancor LPs affected by the deficit. For the latter group it’s clearly the case that relative BNT price performance is the most important factor for them, bar none, because it’s the ONLY mechanism whereby their deficits can be recovered. For the former group it isn’t quite so simple.

An update has been provided in this post: