PTIP-72: single-sided POOL staking with IL protection on Bancor (former PTIP-64)
Following PTIP-61 and concerns expressed over the value held by the protocol’s treasury being higher than POOL’s market cap, proposal PTIP-64 sought to deposit 600k POOL tokens on the Bancor POOL pool.
This proposal comes as result of discussion between the community and core contributors of Bancor and PoolTogether:
The staked amount has been reduced from 600k POOL to 100k POOL.
Dual LM rewards information is removed - the program is still available until the end of May and can be discussed in the future if there is interest from the PoolTogether DAO.
POOL has recently been whitelisted on Bancor, and space for 115,214 POOL to be staked single-sided has been opened.
To increase liquidity with a more risk-averse option following security concerns about malicious actors that could attempt to take control of the PoolTogether treasury at a profit, as well as obtain yield with idle treasury funds.
This proposal seeks to deposit 100k POOL on Bancor 3, which will benefit from single-sided staking and impermanent loss protection, as well as other features described below.
Bancor’s two main distinguishable features are single-sided staking and impermanent loss protection. These are ideal for treasury stakes as PoolTogether wouldn’t have to deposit any pairing assets in the pool. Furthermore, impermanent loss protection means that the treasury wouldn’t lose value with its stake due to IL - which can be significant for some LPs as we’ve observed in a recent study Bancor did in collaboration with TopazeBlue  .
The PoolTogether DAO would stake 100k POOL on Bancor. The process to add liquidity is:
Press “Stake and Protect” and accept the transaction.
There will be a migration process from Bancor v2.1 to Bancor 3 which will involve a 1-click migration tool.
Bancor 3 Phase 1 of 3 (Dawn) relevant features
LP tokens: Bancor 3 will bring LP tokens that represent a single-sided stake with no potential IL downside. This means that they represent an increasing value over time of the liquidity+fees+rewards in the POOL pool, when expressed in the token numeraire. These properties make the LP tokens ideal collateral, and can also be used for other strategies such as native staking and governance.
Instant impermanent loss protection - Bancor 3 will be offering impermanent loss insurance from day 1. A 7-day cooldown period has been added to safeguard the system. After the 7-day cooldown period, an LP may choose to leave the pool and the fees and rewards accrued during the cooldown period are sent back to the pool. If the LP does not leave, then it is as if they had never attempted to unstaked. There will also be a 0.25% withdrawal fee.
Infinity pools - There will be infinite single-sided staking space in the pools. Some of the liquidity in the pools will be on-curve, i.e., used for swapping, while the rest of the liquidity can be used for internal and external strategies. The next Bancor 3 phases will explore some of these internal strategies.
Lower gas fees - On the staking side as the contracts have been greatly simplified, and on the swap side as the swaps moved from being two-hop swaps to one-hop (BNT is used to price the assets instead).
Multichain - Contracts are being written with multichain portability in mind, and will be much easier to deploy to new chains compared to the v2.1 contracts. The DAO will vote on which chain/s Bancor will be deployed on.
And many more features such as revamped tokenomics for vBNT, BNT Omnipool (one place to stake BNT), third-party Impermanent Loss Protection, new frontend and auto-compounding fees and rewards.
courtesy of apy.vision. I am not sure what the rewards APRs have been on this pool historically (there is an ongoing LM campaign) but some of it has been negated by IL that has been experienced by LPs.
I would also like to add some data about liquidity for the $POOL token on some DEXes:
Most of it is coming from the Uniswap v2 and Sushiswap pools. At current time, this is roughly:
The $POOL/$ETH 0.3% Uniswap v2 pool with ~$407k liquidity
The $POOL/$ETH 0.3% Sushiswap pool with ~$37k liquidity
Here is what the price impact % is for some trades at different sizes when coming in via USDC:
Note: Paraswap/1inch are aggregating across different pools and potentially using private market makers.
a 100K injection of single sided $POOL into Bancor should increase liquidity by $300K at current $POOL prices (~$1.50). Assuming $750K in total liquidity then an estimated price impact for trades at different sizes:
Price Impact %
One of Bancor’s goal is to enable projects/protocols to have a healthy and viable token. Market participants typically tend to lose confidence when a token is illiquid as its price is not accurate since it can be easily manipulated. I think both of our communities can collaborate together towards the goal of increasing the liquidity of $POOL on DEXes
I’m speaking for myself here, but with the fact that we just have to provide single sided POOL liquidity and on top of that we can get IL protection, I fully support this proposal.
Moreover with the upcoming release of Bancor V3 which includes really interesting features, it’s good to have a position on Bancor which we may decide to migrate to V3 in the future.
The caveat to this is that we will be fragmenting liquidity between UNI V2 and Bancor, which is not ideal. However, I think that while we figure out the end-strategy for our POL, this is a good step forward.
Thanks for this proposal. I have no experience using Bancor and have somehow managed to barely notice it’s presence in the space despite it being a top DEX by TVL. I formally completed the application for the whitelisting of POOL on Bancor and appreciate the opportunity being presented here.
I agree with BRONDER about fragmented liquidity and also wonder broadly where POOL is headed because with the “Prize Network” and cross-chain governance I’m not sure we will see the volume of POOL on mainnet increasing. It’s another discussion I’d like to see more of - are we building at all for mainnet (for the token and the prize pools) or are we building moving away from it?
I would like to reframe the 100% IL protection as advertised by asking - would we swap 20k POOL over the counter today for an equivalent amount of BNT tokens? Unless I’m understanding it wrong, if we do experience impermanent loss that loss is essentially insured with compensation in BNT. I have found that when we have some other tokens in our treasury there is usually some opinion to keep them. So I suggest we have the practical discussion now about what we plan to do in the event of receiving BNT for our IL, because if they are not liquidated immediately it’s not really IL protection in my mind.
I think we all agree more liquidity for POOL is a good thing and we have idle tokens in the treasury. I would really like to see us develop an overarching liquidity plan that jives with our direction as a protocol and has the ability to support POOL in the most efficient way possible. This feels similar to the FEI/ONDO deal to me in that our perspective is “it won’t hurt”. While I see the mechanics are clearly different I wonder if that should be ongoing approach to liquidity for POOL. Overall I’m undecided if this proposal will move us in the right direction.
In my opinion, the pooltogether project finds itself in a similar position as lyra and thales (both projects native to optimism) in the sense that they are building and incentivizing liquidity not on mainnet (optimism in this case) but they both understand the importance of having liquidity in Ethereum proper:
and we are working closely with both DAOs to make their token liquid and viable on Ethereum as ultimately that’s where the majority of economic activity occurs and it is still advantageous to have deep liquidity in mainnet. Both are looking to build large pools with Bancor by deploying their treasury funds into our single sided IL protected pools.
To provide more details around Bancor, you can think of the Bancor protocol as an insurance provider that covers IL. Not all pools suffer IL and essentially if the fees that the protocol earns from its trading liquidity (the protocol provides half of the other side i.e. BNT in the BNT-POOL pair) are greater than the IL that it needs to cover for LPs then it is profitable. We can offset risk by controlling how much trading liquidity we provide to a token with more mature tokens having higher trading liquidity than riskier tokens that are brand new. In Bancor 3, we can further control IL by adjusting trading liquidity in the down direction to remove a portion of tokens from the bonding curve and not expose them to any IL. Furthermore, there are other mechanism such as the vortex burner (you can think of this as an insurance premium), pool fees, and advanced withdrawal logic in Bancor 3 that help us manage the health of the protocol. Full details in our Bancor 3 proposal:
all this to say that we have mechanisms in place that will guarantee with high probability that an LP receives their funds in the token that they deposited at withdrawal. In the rare case where we are at a deficit (due to IL) then we cover the difference by providing BNT in return. BNT is one of the most liquid tokens in the DeFi ecosystem (see trading pairs in bancor.network) and can be easily swapped to any of the major stables (USDC/USDT/DAI) or ETH/BTC if not the original token if that is the LPs preference.
Some other points to add:
Bancor does not charge any “extra fees” for providing trading liquidity to projects/protocols. Rather, we split the trading fees that occur in the underlying pool evenly since half the pool is composed of BNT. This applies to all pools on Bancor (fees get split evenly between the BNT and Token side LPs)
The fees in the BNT-POOL pool are set at .2% at the moment but can be adjusted. We typically adjust the fees on the pool as it becomes more liquid. If it becomes the largest source of liquidity on mainnet (which some pools on Bancor already are) then a higher fee is typically warranted for having a lower price impact on trades. Having a lower price impact on trades outweighs the trading fees that you normally would pay when swapping. Most of our pools range between .2% and 1% with more volatile tokens having a higher fee.
Any fees that you earn from your LP position is earned entirely in the token that you deposit ($POOL in this case).
You can leave your LP position at any point in time. There is no lockups but note that in version 2.1 of the protocol you build up 1% of IL insurance per day until you reach 100% at day 100. In Bancor 3, you get instant IL protection but we have a 7 day cooldown period at withdrawal instead. The cooldown period is to prevent someone from abusing our IL protection.
You don’t have to give the Bancor DAO any of your tokens, provide bribes, purchase BNT, etc… We thrive together with all the projects that we onboard and one of our core missions has always been to make the long tail assets of crypto viable.
There is a 0.25% withdrawal fee that is used by the protocol and prevents against economical exploit, backrunning exploits, etc.
This fee is used in the case where there is a POOL deficit in the pool on Bancor 3 and an LP is withdrawing their POOL. Naturally, in this case, the protocol would mint BNT to make the LP whole. However, the protocol first attempts to open an arbitrage opportunity and essentially buy POOL from the open market and pay the LP as much as possible in POOL. If this isn’t possible - there is a technical and economical limit above which the protocol can’t execute this mechanism - then BNT is minted to compensate the LP for any IL.
The LP on withdrawal always gets the value of their protected stake and as Glenn said, BNT is highly liquid. As an example, a $1,000,000 swap from BNT accrues a 1% price impact to ETH and 0.88% to wBTC.
In order to move this PTIP to on-chain vote, I’m posting the technical specifications:
Approve 100000000000000000000000 POOL (0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e) from PT Governance Timelock (0x42cd8312d2bce04277dd5161832460e95b24262e) to the LiquidityProtection contract of Bancor V2.1 (0x63308861249ad775a4b6ceb6544ce30c952b311a)
AddLiquidity of 100000000000000000000000 POOL (0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e) from PT Governance Timelock (0x42cd8312d2bce04277dd5161832460e95b24262e) through the LiquidityProtection contract of Bancor V2.1 (0x63308861249ad775a4b6ceb6544ce30c952b311a) to the POOL/BNT pool (0x7d8e87893b0cb8b3c77a5dcaf41d836ae4e04b8f)
We’ve been discussing the different possibilities at the Treasury Working Group. Right now we can either deploy on V2.1 and wait 3-4 months to migrate to V3, or wait until the pools are deployed to V3 and deposit there.
Our recommendation is to wait for the V3 pools and deploy directly there, simplifying the process (though the Alpha Governor contract we cannot take advantage of the one-click migration process). We’re closely following the audits on V3, and also considering the possibility of getting an insurance at Nexus Mutual for our deposit on Bancor V3 (more details on that in the near future).
We currently have 3 options as a community. It’s clear that we’re in favor of deploying 100K POOL on Bancor. The question is if we want to do it on V2.1 or V3. Also, given how V3 is a new product, the option of getting an insurance on our deposit should be considered.
Bancor V2.1 is a great product, but when there’s more innovation, it will probably end up being fully substituted by V3. This means that although V2.1 offers good stability, is not a permanent solution. If we decide to deploy our liquidity there, in 3/4 months we should reconsider migrating to V3 once it is more battle tested. This option potentially offers greater security, but will require a follow up, extra PTIPs and interacting with more contracts.
Bancor V3 offers a better solution in the long term, however, it has launched pretty recently so the smart contract risk might be a bit higher. As of today, there are 2 audits published (with 2 more audits to be published):
If we decide to deposit directly in V3, we also have the possibility of getting insurance on Nexus Mutual (full disclosure, BraveNewDefi, member of the TWG, works for Nexus Mutual). Roughly calculating, 90 days of coverage for 100K day would cost us around $125 + gas costs (taking advantage of the wNXM discount).
As a temperature check, which option sounds more attractive to you? Once we get an idea we will indicate all the required details + interactions with smart contracts.
Like I said in the Community Call, if we trust Bancor in V2, then we can also deposit POOL Tokens into V3 in my opinion.
Protecting the deposit via Nexus Mutual insurance makes sense, especially when the fees to do so are so low. Thx @BRONDER for pushing this Proposal forward.
I really like Bancor and the ability to put POOL Tokens in the treasury to use, single sided and with IL protection.
Is there any estimation on accumlated rewards the protocol gets from depositing into Bancor after for example 3 and 100k POOL tokens deposited?
What @BRONDER said, depends on volume which is hard to predict. However, we do have a Dual LM program incentive that has already been pre-approved by the BancorDAO that you can participate in. Details below.
Dual LM rewards campaign
There will be a migration process from Bancor v2.1 to Bancor 3, which will go live in the next couple of weeks. To incentivise migration, we’re running a dual LM campaign which might be of interest to the PoolTogether DAO:
Any tokens committed for rewards will be matched in dollar value up to 50,000 BNT (roughly $100k).
The POOL rewards will be auto-compounded in the pool, and can be used for trading up to the trading liquidity limit (which can be increased via DAO vote).
The BNT rewards will be emitted over 24 months to POOL LP token holders that stake their LP tokens in the rewards contract.
The LM rewards will increase the APR in the pool and attract more POOL holders to stake their tokens on Bancor 3.
Cut-off date to commit the rewards to be a part of the program is at the end of August 2022.
Great, thx for all that information, I’m in favour of pushing this PTIP on chain!
It probably makes sense to do it together with PTIP 75 Grants Renewal and PTIP 74 TWG Renewal
Someone needs at least 10k POOL to push a PTIP on chain, I think the TWG has enough to do that and they also have the expertise to make sure the technical details are correct (I saw that @BRONDER already took care of that, thx! )
After a week since the start of the poll, it seems that the preferred option is deposit in Bancor V3 with insurance.
Unfortunately, it is not possible to buy insurance through the governance contract. Instead, it’s necessary that a KYC’d entity buys coverage. That entity is the one that needs to make the deposit and also will be the one that will be able to make a claim if it’s needed in the future.
@BraveNewDeFi can get KYC on behalf of the TWG so that we can buy coverage. Therefore, the steps to follow in the PTIP will be:
Transfer 100000000000000000000000 POOL
(0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e) from PT Governance Timelock
(0x42cd8312d2bce04277dd5161832460e95b24262e) to the TWG Ethereum Gnosis Safe (0xB74659A1011F6DCA3BA6F6e22a71bA8f414F36A1)
Afterwards, the TWG would deposit the 100K POOL on Bancor V3 (this would be done through the Bancor UI):
Approve 100000000000000000000000 POOL (0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e) from the TWG Ethereum Gnosis Safe (0xB74659A1011F6DCA3BA6F6e22a71bA8f414F36A1)
to the BancorNetwork contract of Bancor V3 (0xeef417e1d5cc832e619ae18d2f140de2999dd4fb)
Deposit() 100000000000000000000000 POOL (0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e) from the TWG Ethereum Gnosis Safe (0xB74659A1011F6DCA3BA6F6e22a71bA8f414F36A1) through the BancorNetwork contract of Bancor V3 (0xeef417e1d5cc832e619ae18d2f140de2999dd4fb) to the POOL pool (0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e)
Finally the TWG would buy insurance for the value of 100K DAI for a period of 90 days.
Before posting the PTIP, I want to make sure that there is no problem on trusting 100K POOL to the TWG in order to buy cover for the DAO funds. Please let us know if you have any concerns.