Vether Pool Fees
Want to know how slip-based fees in Vether Pools compare with fixed-rate fees from Uniswap? Read on for examples to help you understand Vether Pool slip-based fees.
WARNING: If the words “slippage”, “impermanent loss”, and “pools” scare or confuse you then please use Google to research or read my previous article before going further.
There is also some math below. If you don’t like math then you probably won’t like this article.
I use * to mean multiply and / to mean divide.
The other operations should be obvious (+,=, etc.).
Finally, please note, most of my work is based off of the hard work done by the THORChain team on slip-based fees. Kudos to them for putting together clear documentation of their ideas.
What is a Vether Pool?
Vether pools are like Uniswap pools — people put up liquidity (add to the pool) and allow others to buy and sell out of that pool.
Pools like Vether pools are decentralized exchanges without an order book. Instead of an order book, Vether pools utilize an Automated Market Maker (AMM). This algorithm sets the buy/sell price along a curve rather than setting prices yourself.
Unlike Uniswap, Vether pools do not charge a flat percentage fee per trade. Instead, Vether pools charge a slip-based fee which is the percentage of slippage multiplied by the expected output. This helps ensure people who pool their assets receive a fairer return on the liquidity they provide.
Sample Comparisons of Fees Earned
Below are calculations for fees earned in a slip-based fee model vs. a fixed rate fee model. I suggest slowly reading through a few times. This stuff makes more sense the more you review it.
Because slip-based fees differ depending on liquidity, it makes more sense to review by a single transaction rather than an aggregate of multiple transactions.
Below are two examples, both with someone selling 100 Vether, but selling into pools of differing liquidity. This helps illustrate the effects of liquidity on a slip-based fee. While I do not go into it in this article, there are similar effects on fees based on the size of the transaction as well (larger orders = more slippage).
- Pool 1 has 2000 Vether : 20 Ether (price: 1 Vether = 0.01 Ether)
- Someone sells 100 Vether (input) for Ether (output)
- Original Pool of Input token (Vether) is 2000 Vether
- Original Pool of Output token (Ether) is 20 Ether
- Slippage = 4.76% = the amount of input (100 Vether) divided by the sum of the original pool of the input and the input itself (2000 Vether + 100 Vether) = 100 / (2000 + 100) = 100 / 2100 = 4.76%
- The original output (what the person gets in return) based on the XYK (Constant Product Market Maker) AMM = the product of the amount input (100 Vether) and the original pool of the output (20 Ether), all divided by the sum of the original input pool (2000 Vether) and the input itself (100 Vether) which = (100 * 20) / (100 + 2000) = 0.952 Ether
- Slip-based fee = slippage multiplied by the output = 0.0476 * 0.952 = .0453 Ether or 4.53 Vether (priced at 1 Vether per 0.01 Ether)
- Note: 0.952 Ether does not include the fee that would be taken from it in a slip-based fee model. The total output would be the original output minus the fee (0.952 minus the fee of 0.0453) so in a slip-based fee model you’d be selling 100 Vether for roughly 0.9 Ether.
- Note: Vether pools take the fee in the output token (Ether in this case) so the fee helps offset the affect of the trade (as in the following — after the trade, the pool gains 100 Vether but loses Ether so it charges the fee in Ether to offset some of the Ether taken out).
- Uniswap fixed rate fee = constant rate of 0.3% of each trade = 100 Vether x 0.003 = 0.3 Vether
- Note: Uniswap pools take fees in the input token (Vether in this case), so the fee would be in Vether (so you’re technically selling 99.7 Vether for about 0.95 Ether). This means the pool gains 99.7 Vether and loses 0.95 Ether.
- Depending on your share of the pool, you would get a percentage of the trade. Own 10% of the pool? You will gain .00453 Ether (equivalent to .453 Vether) through slip-based fees vs. the equivalent of 0.0003 Ether (technically you would receive 0.03 Vether) in Uniswap’s fixed rate pool.
- In simpler terms, a 4.53% slip-based fee is 15.1x bigger than a 0.3% fixed rate fee.
- Results: The seller makes more off of Uniswap (99.7 Vether for 0.95 Ether) than a Vether pool (100 Vether for 0.90 Ether), but the liquidity providers only earn 0.003 Ether in total fees. A seller makes less off of a slip-based model (100 Vether for 0.90 Ether), but in return, the liquidity providers earn most of the difference in total fees (0.0453 Ether).
Now, let’s try the same transaction with more liquidity and fewer explanations.
- Pool 2 has 20,000 Vether to 200 Ether (10x more liquidity on each side, price remains 1 Vether to 0.01 Ether)
- Same sell of 100 Vether
- XYK Output = 20000/20100 = 0.995 Ether
- Slippage = 100 / 20100 = roughly 0.5% (technically 0.4975%)
- Slip-based fee = Output * Slippage = 0.995 * 0.005 = 0.004975 Ether (equivalent to 0.4975 Vether)
- Uniswap fixed-rate fee = 100 Vether * 0.003 = 0.3 Vether (or 0.003 Ether)
- 0.5% slip-based fee is 1.67x bigger than a 0.3% fixed rate fee
- The liquidity providers in a slip-based model receive more fees than the fixed rate model (0.005 Ether vs. 0.003 Ether).
- Slip-based model output = 0.995 minus 0.004975 = roughly 0.99 Ether
- Fixed-fee model output = 99.7 Vether sold = (99.7 * 200) / (99.7 + 20,000) = 0.992 Ether
- The amount the seller makes in each model are roughly the same.
Lessons of Slip-based Fee Pools:
As you can see in both examples, slip-based fees are often higher than the Uniswap fixed-rate fees. While the seller may end up getting less, this is mostly offset by the fees to the liquidity providers. If you think of this in reverse, sellers in fixed-rate fee pools gain what liquidity providers lose.
We can also draw some other lessons:
Be Careful with Arbitrage & Large Trades— If you look carefully, you’ll see slippage is partially calculated based on the amount you’re selling (whatever you’re trading in). This means that you have smaller fees if you make more smaller trades. Making larger trades equal higher fees. As a result, it is harder to make simple one time arbitrage moves. If someone notices a large price discrepancy between a Uniswap pool and another exchange, they can exploit it in one trade. If you try to exploit a large price discrepancy on a Vether pool then you are better off completing smaller trades with smaller fees. There is a chance that Uniswap pools encourage a bit more arbitrage as the fixed-rate fees don’t eat up some arbitrage opportunities (though at the cost of liquidity providers).
Pool Size Matters — Slippage is also affected by the original pool size of the input token. Therefore, low liquidity may lead to higher slippage and greater risk for liquidity providers in smaller pools in a fixed-rate fee model.
Slip-based Fees Counter Impermanent Loss — Impermanent loss comes when the price (calculated by taking token ratios where price = input token pool size / output token pool size) in your pool deviates from the original ratio/price causing the total value of your pooled assets to go down compared to when you first entered (you have more of a cheaper token and less of the more valuable one).
As slippage is based on how much you’re affecting a pool ratio (which in turn affects the price), liquidity providers receive much greater reimbursement to cover impermanent loss with a slip-based fee compared to a fixed-rate fee, which takes the same percentage no matter what you do to the price/token pool ratio.
There are trade-offs, but the Vether community believes the slip-based model gives greater incentive for liquidity providers to provide liquidity, leading to a stronger and more stable ecosystem. By greatly reducing impermanent loss you reduce the risk of losing by pooling and potentially give liquidity providers much greater returns on their pooled assets.
Want to discuss more or still have questions? Join our Discord channel.
Catch a mistake? Please let me know if you see a mistake or inaccurate statement.
Want to read more? THORChain has multiple articles which I learned a lot from. Here are just a few: