Bancor Liquidity Pools 101: Reserve Weights

Bancor
3 min readMar 31, 2020

The Bancor Protocol is made up of a series of smart contracts (called “liquidity pools”) designed to perform algorithmic token trades and pooling of on-chain liquidity.

Bancor pools hold reserves (balances) of ERC20 tokens. The “weights” of a liquidity pool refer to the percentage exposure of each token in the pool.

The simplest implementation of a liquidity pool is with 2 tokens and 50/50 weights. Such a pool balances the prices of tokens in its reserves so each reserve always makes up 50% of the pool’s total value.

Creating a USDT/BNT pool on xnation.io with 50% USDT and 50% BNT. (Guides: How to Create Bancor Pools / How to Fund Bancor Pools)

Pool creators set the pool’s initial parameters, including:

  • number of reserve tokens— a pool can be created with an unlimited # of tokens (e.g., ETH/DAI/BNT)
  • reserve weights — each token can be set to make up 0.0001%-100% of the pool (e.g., 33% ETH, 33% DAI, 33% BNT)
  • liquidity provider fee — percentage fee applied to each trade (can be any %)

In terms of slippage, the most efficient weights for a 2-token pool are 50/50. However, a pool creator can also launch a pool with unequal weights.

One reason for launching a pool with unequal weights is if a token project wants to provide liquidity using mostly their own project’s token. For instance, an XYZ/BNT pool with 80/20 weights would allow the XYZ team and its token community to add liquidity with 80% XYZ and 20% BNT. In addition, the pool’s value would be more correlated with the price of XYZ.

While allowing for higher exposure to selected tokens, uneven pools incur higher slippage, reducing trade volume and APR.

On the positive side, the ability to add liquidity with 80% XYZ may be preferable for some users and end up attracting more liquidity (compared to a 50/50 pool), thereby reducing slippage.

Once a pool with unequal weights reaches a desired level of liquidity, a token project can prompt liquidity providers to migrate liquidity into a separate 50/50 pool where slippage is minimized.

Create a Bancor pool with any # of tokens, customizable weights & fees on KatanaPools.com. Warning: The Katana interface is in Public Beta, use at your own risk.

Total Reserve Ratio (TRR)

The “total reserve ratio” defines the ratio between the total value of a pool’s reserves and the market cap of its pool token. It is calculated by summing up the reserve weights, for instance a 50/50 pool has a 100% TRR, while a 40/40 pool has an 80% TRR.

When a liquidity pool’s TRR is set below 100%, it results in the price of a pool token responding to liquidity being added or removed. Users have an incentive to be an early liquidity provider in such pools. The lower the TRR, the more sensitive a pool’s token price is to liquidity being added or removed.

The lower the TRR, the more sensitive a pool token’s price is to liquidity being added or removed.

The design space of liquidity pools is rich, and the flexibility of Bancor pools allows for novel experimentation with different liquidity models.

If you want to learn more about Bancor pools, check out the Bancor Docs or join the Bancor Developers Telegram group.

Further Reading:

About Bancor

Bancor is an on-chain liquidity protocol that enables automated, decentralized exchange on Ethereum and across blockchains. The protocol is made up of a series of smart contracts designed to pool liquidity and perform peer-to-contract trades in a single transaction with no counterparty. Users add liquidity to automated market makers in exchange for trading fees, BNT staking rewards and voting rights in the Bancor DAO. Since 2017, Bancor has processed billions in trade volume across thousands of tokens, with millions in fees generated by liquidity providers.

--

--

Bancor

The only DeFi trading and staking protocol with Single-Sided Liquidity