[Proposal] Balancer Exchange Gas Reimbursement

The Proposal
For a pilot of four weeks starting at 00:00 UTC on Monday, January 25, with possible extension until the launch of Balancer v2, we would allocate up to 7,500 BAL each week to the reimbursement of gas costs for swaps performed through the Balancer Exchange Proxy.

Motivation
We understand that gas costs and usability issues in Balancer v1 have been a bit of a hindrance for many users. Balancer v2 is on the way and set to improve this situation immensely, but in the meantime we have recently launched the new and improved exchange UI and would be thrilled to invite users to give it a try without incurring undue personal cost.

Mechanics
Similar to the current liquidity mining claims process, where calculations are run once for each weekly period and claims are made available via a MerkleRedeem contract. The script used for computing the reimbursements would live off chain, along with the liquidity mining scripts, and it would be fully open source and auditable by anyone.

Eligible transactions: transactions made from externally owned accounts directly to the Balancer Exchange Proxy (contract address: 0x3E66B66Fd1d0b02fDa6C811Da9E0547970DB2f21). The goal is to target traders who are using the Balancer Exchange UI. We would use “EOA interacts with Exchange Proxy directly” as a heuristic to determine that the trade comes from a user of the Balancer Exchange UI. This should prevent most on-chain arbitrage bots from benefiting from the program, as most make their trades via proprietary smart contracts.

Eligible swaps: swaps between two of the following tokens:

  • WETH (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)
  • WBTC (0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599)
  • USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)
  • DAI (0x6B175474E89094C44Da98b954EedeAC495271d0F)
  • BAL (0xba100000625a3754423978a60c9317c58a424e3D)

The token list may be expanded following evaluation of the initial pilot.

It is important to distinguish between a swap and a transaction and to note that a transaction through the Balancer Exchange Proxy can contain a number of swaps; a swap is simply one leg of an exchange transaction. For example, a transaction that routes BAL->WETH->DAI contains two eligible swaps: BAL->WETH and WETH->DAI. Similarly, a transaction that routes ineligible token XYZ through XYZ->WETH->DAI contains only one eligible swap: WETH->DAI, and a direct swap of XYZ->WETH is wholly ineligible. Finally, a transaction that routes a BAL->WETH trade through two BAL-ETH pools contains two swaps.

The gas reimbursement would be the lowest of either:

  1. the total gas effectively used by the transaction; or
  2. 100,000 (one hundred thousand) times the number of eligible swaps in the transaction

The gas price used for reimbursing each transaction would be the lowest of either:

  1. the gas price of the transaction itself; or
  2. the median price of all transactions within the enclosing block

It follows that any transaction totaling less than 100,000 gas per eligible swap and utilizing a gas price less than or equal to the block’s median would be fully reimbursed, while others partially reimbursed.

Reimbursements would be made in BAL, while gas is priced in terms of ETH, so a conversion is required. The price oracle would be CoinGecko’s API, with the median BAL/ETH price from the week being used for all of that week’s reimbursements.

Claims would be made available via the same MerkleRedeem contract currently used in the liquidity mining program. Reimbursements and liquidity mining proceeds for the week would be summed and be claimable in a single transaction.

For this pilot, we would set aside 7,500 BAL tokens per week for four weeks. Tokens would be provided by the Balancer Ecosystem Fund. This is a weekly cap for this pilot, so it will not necessarily be fully used. Data from the week of January 4 shows that about 1,500 BAL would have sufficed for reimbursements, so a 5x overhead of 7,500 BAL would be budgeted to account for an influx of transactions and possible swings in the Ethereum gas price. This program would affect neither the ongoing Liquidity Mining campaign nor Batch #2 of the Ecosystem Fund Grants, as both draw from pots that have already been separately allocated. In case more than 7,500 BAL are needed in a given week, reimbursements will be reduced proportionally.

6 Likes

How many new users / new volume do we expect from this proposal to cover gas costs? Or are we seeking some other outcome? How do we know if this was well spent BAL?

I think Matcha did something similar when they launched?

We don’t know quite what to expect from this pilot program, but we will certainly be monitoring exchange users and volume for the next four weeks to see what kind of effect it has!

I was thinking, it might actually make more sense to not do the full amount of the gas transaction but rather a percentage? Like it can be a high percentage otherwise you may have wash trading if the trades are completely free.

We should probably get some analytics up and running so we can see the before and after. Would be interested to see if this moves the needle at all.

There’s still no benefit to wash trading, though - at best you will be reimbursed exactly what you paid, so it’s net-zero for you. And more likely, you’ll incur a swap fee and you’ll pay for transaction speed so the reimbursement will be partial.

I think this should also apply to those who add liquidity to selected pools. I just added liquidity and it costs me $50-$100.

It’s just a four-week pilot program, so it can be reevaluated later. Our impression has been that gas costs are more of a factor for traders than for LPs, which is why the emphasis is on traders here.

Why don’t you just integrate gastokens like $CHI and $GST2 into your router? Then 41% of gas costs would be reimbursed automatically via on-chain SELFDESTRUCT gas refunds

That’s a bit of a different thing: users would buy gas tokens to “store” gas for later. It’s a “reimbursement” when it is actually used but you still paid for it at some point in time, presumably when gas was cheaper. Here, we are actually paying the users’ gas costs - from their perspective, it was free to use (if they were fully reimbursed and if they sold the BAL they received). It’s also a means of further distributing the protocol’s governance tokens to one of its most important user classes: traders. We already provide BAL tokens to LPs via liquidity mining, and now we do it for traders too. If they want, they can keep the tokens to participate in governance, rather than selling them for reimbursement.

Balancer can buy the gas tokens. 1inch did this for a while before switching to what you described.

Though gas tokens won’t completely reimburse the fees, you can currently buy them well-below the current gas price, so this would be much cheaper for your company. There would also be less downward pressure on $BAL, and traders wouldn’t have to take the extra step of claiming and selling every week. Much less gas consumed overall. Plus if you buy in bulk at the current price you would be insured against future increases to gas price and ETH/BAL.

Ah, I see. Yes, what you’re suggesting is a viable alternative that works better in real time for users. But it skips one aspect of the program that we feel is very important, which is the distribution of governance power to traders. We feel it’s important to give our users a stake in the protocol, and we’ve been distributing to LPs for a long time under that notion. Now we’re adding traders into the mix which is equally important. We still have a lot of tokens to distribute and want to decentralize governance power as much as possible, especially during the early days of the protocol.

1 Like

I am new to Balancer, can somebody help me get started please?

This forum is for more long-form governance discussion. Please hop on over to our Discord for more general Balancer chat and support. https://discord.gg/ARJWaeF

When we will get firsts reimbursement of gas costs?
If I bought from here Balancer BAL with ETH, I am eligible ?

Every Wednesday, reimbursements for the previous week (00:00 UTC Monday - 23:59 UTC Sunday) will be made available here: https://claim.balancer.finance/#/. If you swapped ETH for BAL this week on https://balancer.exchange/#/swap, then you are eligible for a claim on Wednesday.

1 Like

I think this is a wonderful idea and will pull some volume over from Uniswap. However, I agree with the above comment about making it applicable to LPs as well. I literally just paid right under $200 to approve and provide liquidity to a pool after my initial tx stalled, I attempted to speed it up, then attempted to cancel it, then reinstated it.

Furthermore, would the fee for “Approving” the tokens on the platform be refunded also, or ONLY the swap gas. I know it’s only $10, but to pay $10 just to approve the token before swapping is aggravating also lol.

1 Like

This applies only to swaps right now, not approvals. The logic is that Balancer swaps are particularly expensive, but approvals are identical in all protocols, so you aren’t paying any extra to use Balancer in this case.

1 Like

Wanted to buy a Razor Network LBP today and decided against it. Because it is not one of the pairs listed above…Balancer v2 needs to come quick and fast. somewhere the development needs to quicken up faster…Also the claim page is a gas guzzler…some design thinking to give rewards in L2 will save amazing amount of fees…

2 Likes

OK, here’s my use case: I swapped 1 ETH for BAL last week. Although high in gas fees, I thought I’d make use of this reimbursement and get those costs back. Now I am able to claim these, but that transaction has gas fees again—even higher than the reimbursement itself.

Can anyone help me understand this? Am I wrong in assuming more and more of these claims and harvests are just going to get locked into De-Fi products due to gas fees being too high? How is Balancer (or any other DEX for that matter) currently a useable product? Or is 1 ETH considered peanuts and is the De-Fi eco-system only interesting starting at transactions of >10 ETH?

2 Likes

I purchased 10,000k bal last week with the hopes of this refund only to be disappointed in being charged $495 in gas to set up my proxy…yes, I refused and would like to know who will bring in new liquidity when they are charge $500?..