Bancor3 Tokenomics: A New Token Model
--
With a novel single-sided staking design, Bancor3 necessitates a new tokenomic analysis model in order to evaluate the value flows within its’ ecosystem. Key to understanding this new model is the fact that Bancor3 decoupled the base token balances from the pool token total supply. The reasons for doing so are covered in an earlier article but for our purposes, Bancor3 effectively introduced new mechanisms which allows the protocol to handle base token reserve amounts and pool token valuations separately. This in turn enables a slew of other functionalities, key amongst them the ability for the protocol itself to force an arbitrage opportunity in order to counterbalance the pools via external market incentives.
Admittedly, the mechanisms in Bancor3 are significantly more intricate and therefore less intuitive but that is where this article comes in. The goal of this piece is to shed some light on new value channels and effectively answer the elephant in the room:
Is Bancor printing BNT in order to cover impermanent loss?
Having spent the last few weeks combing through the Bancor code base and documents, I am of the opinion that Bancor3 is only as complicated as it needs to be in order to achieve a very lofty goal of instantaneous 100% impermanent loss protection. I highly recommend having a look at the key concepts underlying the Bancor3 design which will frame this analysis. With the shameless self-promotion out of the way, let’s dive straight into Bancor3 tokenomics.
TLDR: Skip down to the “The Answer” section if you just want a summary.
Full disclosure, I hold some BNT as part of my portfolio but have tried to keep this as objective as possible. No favourites just interested in building antifragile systems. Happy to discuss if there are questions or if there are flaws in my reasoning/understanding :)
Tokens: Representing Value
In order to get to the value flows, we first need to understand how value is represented in the system. Fortunately, no philosophy degree is required here as Bancor3 has already defined 5 forms of value within its ecosystem, each conveniently packaged as a token:
Base Token (TKN)
An ERC20 token on the Ethereum chain that is managed by various core teams external to Bancor (ie. USDT, LINK, ETH). Consequently, no minting/burning of TKN takes place in the Bancor protocol. TKNs are only aware of their protected value which is in turn determined via external factors to Bancor. TKN stakes are a transfer of ownership between the user and the protocol. All TKNs are stored in a secured master vault contract.
Pool Token (bnTKN)
The single-sided pool tokens on Bancor3 represents pro-rata ownership of a store of insured value. Pool tokens in Bancor3 are prefixed with the “bn” tag (ie. bnUSDT, bnLINK, bnETH). bnTKN can be transferred between wallets and serves as a claim to the TKN staked, and accumulated fees, on Bancor3.
BNT
BNT is the Bancor Network Token, the common reserve asset facilitating automated trading between any two integrated tokens on Bancor3, and allowing users to stake and earn fees from trading that occurs via the protocol.
bnBNT
The BNT pool token equivalent. bnBNT pool tokens are handled differently from other pool tokens as BNT forms the base for the omnipool. Given the BancorDAO’s responsibility to set the BNT trading liquidity for each pool, the BancorDAO is provided with the ability to redirect BNT and the corresponding bnBNT to the respective pools. Per the BNT omnipool design, this means that the protocol is the only entity capable of providing BNT directly to the system.
vBNT
BNT holders who deposit their BNT on Bancor receive vBNT, Bancor’s governance token. vBNT can be staked to participate in Bancor governance, traded for other tokens, or deposited to the vBNT pool for trading fees. Of note, the same amount of vBNT tokens which were originally received must be returned to the protocol to withdraw deposited BNT.
Superfluid Liquidity: Managing Protocol Solvency
Pools in Bancor3 have 2 major components: the trading liquidity, which is used to support exchange, and the superfluid component, which can be used for essentially any purpose. Tokens staked in Bancor3 will be added to a pool’s superfluid component but the BancorDAO governs the pool’s trading liquidity. Consequently, the superfluid component is partitioned such that the minimum TKN liquidity is always available for trading.
This design, where the BancorDAO can essentially manage the trading liquidity to superfluid ratio, enables the BancorDAO to determine the protocols risk exposure to individual pools. This is one of the main levers through which the BancorDAO manages protocol solvency. Tokens held outside the bonding curve (in a liquidity pool) reduces overall IL impact of sudden changes and can be deployed in alternative fee earning strategies.
Staking Ledger: Valuing Pool Tokens
Unlike base tokens whose value is derived externally, pool tokens are a Bancor construct. Coupled with the fact that single-sided pool tokens are no longer explicitly linked to the sum of the pool reserve balances, the protocol is required to maintain a separate ledger to act as the de-facto source of valuation of any pool token. Each pool token issued by Bancor3 has its own staking ledger to which fees are accumulated to.
Given such a design, the unit value of a pool token is a function of the total TKN reserve amount divided by the staking ledger. Of note, fees in Bancor3 are always deducted from the target token. This means that for any trade where the TKN is the target token (BNT is the source), the staking ledger is incremented by the fee amount. Recall that the staking ledger essentially values the pool token and as such, by incrementing the staking ledger for each swap, the value of the pool tokens also increases accordingly.
BNT Omnipool: Bancor’s Index Fund (of sorts)
Given that every ERC20 TKN forms a trading pair with BNT, value accrual for BNT vastly differs from that of other TKNs. While TKN stakes support trades against its own pool, BNT stakes supports trades across all Bancor3 pools. As such, the bnBNT pool token represents all BNT staked in all pools across the network. This design also means that there is no spot or moving average price for BNT as the price is a function of the valuation ratios.
As BNT forms the numeraire, swaps between 2 TKNs are performed with only 2 transfers while virtualizing the intermediate BNT hop. Recall that the trading fee (which are appended to the staking ledger) is always taken from the target token and as such, bnBNT value also increases whenever a non-BNT swap is performed (as it will be the target token for the first hop). So compared to TKN, BNT pool tokens do not only increase in value when a trader swaps TKN for BNT but also when said trader swaps TKN for another TKN.
Interestingly, as the BancorDAO has the ability to determine a pools’ trading liquidity via specifying BNT trading liquidity per pool, the BancorDAO is also able to influence the APY for bnBNT holders. For example, the BancorDAO might decide to increase BNT funding for a more actively traded TKN (ie. ETH) which in turn increases the amount of fees accumulated to bnBNT holders (assuming more trades and no IL). Crucially, this means that APY for BNT liquidity providers is homogenized, and reflects the whole protocol performance as directed by the BancorDAO.
BNT Co-investment: Aligning Incentives
It becomes apparent that the BancorDAO’s ability to determine a pools trading liquidity is a key value flow lever in Bancor3. A consequence of this design is that the protocol also becomes one of the largest Bancor3 stakers. To see why this is the case, we have to go back to a rather obvious statement that an active market requires there to be sufficient liquidity of both tokens in a trading pair.
Up until trading is enabled for a pool, all TKN stakes have only been added to the Bancor3 reserves and not the TKN pools trading liquidity. As all pools are paired with BNT, a minimum amount of BNT needs to be allocated to a TKN pool in order for trading liquidity to be created. Given that the BancorDAO has the ability to redirect BNT liquidity, the protocol itself indirectly becomes a co-investor in every pool.
This co-investment perspective becomes more intuitive once it is viewed from the angle of token issuance. For a start, BNT is minted when the BancorDAO increases the BNT liquidity for a particular pool. As the protocol is minting BNT to a pool, it is simultaneously issuing new bnBNT pool tokens for itself. The reason behind this issuance logic is rather simple: pool tokens are always minted to the the responsible party. TKN providers implicitly select which TKN pool to support and hence receive the corresponding pool token. For BNT, it is the BancorDAO that decides the BNT allocation and thus receives bnBNT.
As the protocol is the only entity capable of providing BNT directly to the system, user BNT stakes must also be handled differently. Instead of minting bnBNT to a BNT provider, the protocol sends its own bnBNT to users in exchange for their burning of the equivalent BNT amount. Consequently, BNT liquidity withdrawals require the protocol to mint new BNT tokens, which are then exchanged for the user’s pool tokens. In effect, BNT stakers are foregoing the opportunity cost of holding their own BNT in order to benefit from Bancor’s overall performance in the form of appreciating bnBNT.
Bancor Vortex: Impermanent Loss Insurance
Before we tackle the elephant in the room, there is one more value lever which we must cover and that is vBNT. As the Bancor’s governance token, vBNT has value insofar as users are willing to stake their vBNT in order to participate in Bancor governance. This might be for various reasons but key amongst them would be to influence the BancorDAO’s BNT trading liquidity allocation. In terms of the actual token, vBNT is minted to BNT providers in a 1:1 ratio with bnBNT. BNT liquidity withdrawals require vBNT to be provided back to the protocol in the same ratio.
It’s quite straightforward that users who want to participate in Bancor governance will have to source the tokens either by purchasing it off the market or staking their own BNT. Hence, a BNT provider has 2 options when staking BNT: either participate in the governance process (holding vBNT effectively means abstaining from a vote) or sell this governance right to a willing buyer. Selecting the latter would mean that they would have to buy back the vBNT in the future when they do decide to withdraw their BNT stakes.
Where the relationship between vBNT and BNT becomes interesting is due to the Bancor Vortex. The vortex seeks to create a new passive revenue stream for users with active BNT stakes. This is achieved via a protocol-wide administration fee that charges providers for impermanent loss insurance. Functionally, this is achieved by collecting a portion of trading fees in BNT, swapping the accumulated BNT for vBNT and burning the corresponding vBNT amount. During the burn, BNT is removed from trading liquidity but continues to reside in the vault; and the vBNT pool is updated as though a trade was performed. The portion of BNT that can not be claimed are indirectly subsumed by the protocol as it sits in the vault.
The overall effect of the depleting vBNT supply relative to the total staked BNT value is a long-term, sustainable incentive for market participants to purchase BNT, and bring it back into the protocol, regardless of their bias or loyalty to Bancor. This is because as the price of vBNT rises above the price of BNT, an immediate opportunity emerges to market-buy BNT, stake it and generate vBNT, which can be immediately swapped into BNT for profit.
BNT in Greater Depth: Infinitely Printable?
Having covered the main value flows, it is now time to address the question raised at the start and that is whether Bancor3 is eliminating IL risks by infinitely printing BNT. So far, we have seen that the protocol is able to mint BNT when adding trading liquidity to a pool. The other remaining channel through which BNT can be minted is when providers withdraw their BNT or TKN stakes.
BNT withdrawals are more straightforward whereby the protocol mints new BNT in exchange for the return of bnBNT and vBNT. This is effectively an exchange within the system as the vBNT is burned and the protocol repossesses the bnBNT. No pool tokens are created nor destroyed as a result of BNT provider actions. To be explicit:
- BNT holder stakes their BNT to get a portion of the protocol trading fees, bnBNT, and also the right to participate in the governance process, vBNT
- To get back BNT (with accumulated fees), BNT staker must return the initial bnBNT and vBNT amounts after which BNT is minted to their wallet
BNT minting in the case of TKN withdrawals is significantly more complex as the system needs to account whether there is a surplus/deficit of the TKN amounts in the vault.
TKN withdrawals during protocol surplus
For the sake of completeness, TKN vault surpluses are more easily handled as the protocol is able to return the user TKN stakes fully in TKN. Bancor3 can be in a surplus state if there is significant demand for BNT relative to TKN, that is:
- The protocol mints BNT to a pool based on BancorDAO target liquidity
- A trader sells their TKN for BNT
- The TKN is now owned by the protocol and stored in the vault
- TKN staker initiates a withdrawal
- The vault amount is greater than the staking amount (which is only incremented by deposits or TKN trading fees)
- Protocol transfers the full TKN amount to the TKN staker and burns the pool tokens
In this case, the protocol is able to cover 100% of the withdrawal, including the accumulated TKN fees, from the vault and hence no BNT needs to be minted. Of note, BNT mints to a pool is effectively an exchange of value between TKN and BNT as the protocol adds the excess TKN to its assets. The IL in this case is protected via market demand for BNT.
TKN withdrawals during protocol deficit
It is when the protocol is in a TKN deficit that the withdrawal algorithm determines whether BNT needs to be minted to the TKN staker. In keeping as close as possible to it’s 100% IL protection goal, the Bancor3’s priority when it comes to rebalancing the pool is as follows:
- Source TKN via forcing an arbitrage opportunity
- Withdraw only from superfluid component without touching pool trading liquidity
- Only touch the trading liquidity when it is unavoidable
As such, for a TKN withdrawal during protocol deficit, the protocol gives up what is left of the non-trading TKN, and then the remaining balance is taken from the trading liquidity. If the trading liquidity is affected, the protocol renounces the BNT component of the pool which effectively burns the BNT. Put in another way:
- The protocol mints BNT to a pool based on BancorDAO target liquidity
- Traders swap a significant amount of BNT for TKN
- Trading liquidity ratio between TKN:BNT increases significantly (assuming more than what can be recovered via arbitrage opportunity)
- TKN staker initiates a withdrawal
- Protocol transfers the maximum amount of TKN available in the superfluid component (and external protection vault) to cover the withdrawal
- If superfluid component is insufficient, withdraw TKN from trading liquidity and renounces the corresponding BNT amount
- BNT liquidity from the TKN pool is burned
- Transfer to TKN staker the max amount of TKNs based on their pool token proportion
- For any remaining value that is unaccounted for, transfer the corresponding amount of BNT
In the worst case where the protocol is unable to cover 100% of the withdrawal in TKN, the staker could easily immediately sell the issued BNT for the TKN that was withheld. In doing so, the user indeed removes additional funds from the protocol; however, such an action also opens an opportunity wherein an arbitrageur will return the pool to balance, and restore the relative deficit of the system.
The number of BNT burned from the trading liquidity is equal to the amount that would be returned in a hypothetically perfect arbitrage, assuming the rate inside the pool is in agreement with consumer expectations (i.e. the rest of the market). This anticipatory BNT is part of the process — while BNT is lost from the trading liquidity in this case, the protocol does not relinquish its pool tokens. Consequently, this liability is instead absorbed by bnBNT holders as each bnBNT now represents less BNT.
It might be helpful to think of this as a small trade of TKN to BNT having just occurred. Whether or not the apparent arbitrage opportunity is closed immediately is irrelevant; for example, it is likely that these small adjustments will occasionally close existing arbitrage opportunities. It is only important that a compensatory action is taken by the protocol that addresses the implicit BNT valuation and/or its liquidity equilibrium state.
Implicit Value: Why would anyone want to hold BNT?
To frame this discussion, it is crucial to understand the value flows into and out of BNT. Of note, a system’s design is only as effective as the value to which the community attributes to it. The system can only influence the value flows within its ecosystem but it is up to the community to determine if the system itself brings any real value to them. This is not to give BNT a free pass but to highlight the fact that value is always relative and this is vital to remember in the crypto space where everything is abstracted in code form.
In the case of BNT, its value flows derive from:
- Providing holders the opportunity to earn a portion of the protocol fees if BNT is staked. Trading fees on Bancor3 are taken from the target token and per the omnipool design, fees will accrue to BNT whenever there is a trade for BNT or a TKN-TKN swap. A portion of all trading fees are also converted to BNT for burning on the Vortex which adds to BNT overall demand. These factors result in value flowing into BNT.
- Providing holders governance rights to influence BancorDAO’s decisions if BNT is staked. vBNT only holds value within the Bancor governance process but the proposals which it enables have the potential to change value flows significantly. By whitelisting or increasing TKN trading liquidity, Bancor3 would likely absorb a not insignificant amount of the TKN liquidity, which results in an inward flow of capital. Of course the opposite is also true if a TKN is delisted or has its liquidity reduced.
- Facilitates BNT trades on the Bancor ecosystem via the omnipool. Even if only for a short while, this indirectly generates demand for BNT as arbitrageurs/traders will need to hold BNT to trade against the Bancor ecosystem.
- For TKN to TKN swaps, BNT reduces the gas cost by capping the number of trades required to a maximum of 2 hops. The gas savings accrue to the trader but the trading fee value for the intermediate hop is added to BNT.
- Reduces gas cost required to distribute external rewards. Rather than mint BNT for users as part of the rewards schedule, it is more efficient to allow protocol to burn its own pool tokens.
- Traders selling BNT for TKN. This is effectively an outflow of capital from the protocol which is slightly offset by the portion of trading fees which accrue to BNT.
One unique aspect of BNT which is a step up from other DEX tokens is that the BNT token itself is actually facilitating trades instead of just enabling holders to get staking rewards. Given that BNT is the numeraire, the majority of the BNT supply in Bancor3 will likely be allocated as trading liquidity across various TKN pools. This means that a large portion of BNT will be actively accruing revenue via token swaps which increases capital efficiency.
The Answer: Technically Yes BUT Market Forces…
Having covered all the above, it is finally time to actually tackle that elephant. To do this, we can look at the 3 channels through which BNT can be minted.
Adding trading liquidity to the pool
This occurs when there is relatively more demand for BNT as compared to the TKN and as such the inward flow of external capital makes this minting sustainable. The adding of BNT trading liquidity also affects the price ratio for the pool and hence traders are only willing to purchase BNT up till the market price. That is, BNT printing is kept in control by market forces.
Withdrawal of BNT stakes
This occurs when the user no longer wants to benefit from the trading revenue generated by the protocol. BNT mint amount is capped by the amount of bnBNT and vBNT which the user has. bnBNT supply is limited to all the BNT stakes across the pools. vBNT is issued 1:1 with bnBNT and hence also indirectly capped by market forces.
Withdrawal of TKN stakes
This occurs only when the protocol does not have sufficient TKN reserves to cover the withdrawal. Guardrails against this include:
- A cooldown period, which enables the protocol to continue recapturing TKN from the external markets via repricing strategies during the period of the cooldown.
- An exit fee, which allows the pools from which a withdrawal is processed to retain a small amount of residual value, which alleviates the insurance burden by the same amount.
- A superfluid component, which allows the BancorDAO to specify the TKN amount that is partitioned for trading and as such also exposed to IL.
- A minimum trading liquidity target per pool, which disables trading against a particular pool if trading liquidity falls below the threshold.
- An exponential moving average, which reverts the withdrawal transaction if there is a strong disagreement between the moving average and the spot rate. This allows the protocol time to counterbalance the pool state in the case of sudden shocks.
If all else fails, then yes, the protocol has to fall back on minting BNT tokens in hopes that the BNT intrinsic value is sufficient to cover for the IL. Depending on the size of the TKN pool, the protocol will likely be able to recover the IL value for that specific pool via trades on other TKN pools. Nevertheless, the outcome that you are probably more interested in is if BNT suddenly collapses.
BNT to Zero: Unlikely But If It Did…
In the unlikely event that BNT does collapse, it is important to note that TKN stakers do not lose out on the full value of their stakes. Crucially, earlier withdrawals do not drawdown completely the TKN balances in the vault (ie. it is not fist-come-first-serve).
First off, the superfluid component of a TKN is not exposed to IL and therefore sets a baseline with regards to the portion of the TKN stake the user can expect to claim. That is, if the BancorDAO only allocates 30% of a TKN superfluid component as trading liquidity, the user can expect to receive at least 70% of their stake back in TKN.
Adding to the superfluid component is the residual amount of TKN left in the trading liquidity component when the TKN trading pool was disabled. These TKNs are still under the ownership of the protocol and therefore can be added to the TKN withdrawal portion.
The remaining value of the withdrawal which are unable to paid out in TKN is then paid in BNT. This BNT might be worthless then but based on the intrinsic value of BNT covered above, there will likely be a few hodlers (ie. people like me) left which would set a baseline for the BNT value.
Insurance: Something We Pay For In Hopes We Never Use
Going back to Bancor documentation, the IL protection afforded in Bancor3 is always referred to as “insurance” and this is as apt a description for such a novel solution. As per how an insurers survival relies on probabilities, so does that of the Bancor protocol. The likelihood of a single TKN appreciating drastically against BNT is high but the protocol is able to cover the IL via revenues from other pools. The likelihood of BNT collapsing is not zero but a certain amount of risk management has been put in place. To my knowledge, this is the first time that any system has so elegantly interwoven insurance into the market making process.
Having been in crypto long enough, I can never confidently say that a project won’t go to zero (you all know what I’m referring to). In this crypto winter, it becomes even more important that the protocols which survive bring real value and are sustainable in order to build the infrastructure of the future. Whether Bancor falls within this category is yet unknown but I’m insuring my portfolio in the case that it does happen.
Do note that I have left out additional details around the repricing mechanism, external protection vault, as well as auto-compounding rewards. This post was getting a little long and I wanted to cover the core value flows within the Bancor3 ecosystem.
Thanks for staying till the end. Would love to hear your thought/comments so do drop a comment. I’m active on twitter @AwKaiShin if you would like to receive more digestible tidbits of crypto-related info or visit my personal website if you would like my services :)
Bancor3 Deep Dive Series
Analysis
- Introduction to Bancor3: Redefining DeFi Playbooks Once Again
- Key Concepts in Bancor3: Key Concepts Driving The Next DeFi Wave
- Bancor3 Tokenomics: A New Token Model
- Bancor3 Governance Tokenomics: The Voting Premium
Smart Contract Guides
- Token Whitelisting: Code Guide
- Pool Creation: Code Guide
- Depositing ERC20 Tokens: Code Guide
- Depositing BNT Tokens: Code Guide
- Trading: Code Guide
- Withdrawal Request: Code Guide
- BNT Withdrawal Claim: Code Guide
- ERC20 Withdrawal Claim: Code Guide
Other Links
- Personal Smart Contract Gitbook: https://kai27.gitbook.io/bancor/
- Glossary of Terms (WIP): https://kai27.gitbook.io/bancor/glossary
Official Links
- Bancor Home: https://home.bancor.network/
- Bancor Support: https://support.bancor.network/hc/en-us
- Bancor App: https://app.bancor.network/earn
- Bancor Official Documentation: https://docs.bancor.network/about-bancor-network/bancor-v3