fully Profile picture
Jun 20 21 tweets 6 min read
I saw the Bancor announcement this morning and decided to do some digging. I'm starting to get concerned so sharing my thoughts here. For disclosure, I have some ETH/DAI deposited in the protocol currently pending withdraw.

Post for context:
Bancor makes it sound like they are doing this out of precaution but I'm starting think they are in serious trouble. Their post is reminiscent of the Celsius situation and their problems are likely similar/related. I'm not sure they're being straightforward about whats happening.
First, to understand the situation, we first need to understand the mechanisms. Bancor is an AMM with "IL protection", allowing users to deposit a single asset that's used for exchange liquidity. LP's earn fees & rewards on this asset and don't incur IL losses from the swaps.
This doesn't mean that the pool doesn't incur IL, however. The protocol mints new BNT to the pool to cover the nominal costs of IL incurred by the swap. The problem, however, is that the amount of actual tokens remaining in the protocol is still lower because IL still exists.
For example let's say 10 people deposit 100 DAI into Bancor for a total of $1000 liquidity. Someone swaps from the pool removing 100 DAI from deposits, so 900 DAI is left. Now one person leaves, and bc of ILP, the protocol pays out all 100 DAI of their deposit (+fees and rewards)
There's still 9 people left in w/100 of DAI owed by the protocol, but only 800 DAI left in the pool. Bancor wouldn't have the liquidity to pay them if they all withdraw. Bancor relies on the fact that there's a 30 day period before ILP activates to prevent this from happening.
My guess as to what happened is, and this is purely speculation, but BNT's pools have incurred a lot of IL over the past few weeks due to market volatility. Particularly in their most liquid pools like ETH.
They also suggest in the post that 3AC and Celsius have been farming massive amounts of volume in Bancor, and they have recently withdrawn their deposits and sold their BNT into the pool for remaining assets.
I'm guessing this happened before Bancor paused their ILP, meaning the protocol paid out these entities in full, plus incurred a huge IL debt on their remaining deposits from the BNT they dumped. As a result, Bancor is experiencing liquidity issues on their outstanding deposits.
I decided to check out some contracts and did some preliminary digging. I'm not confident this is all entirely accurate, so use your judgement as I share what I'm seeing. Given that I had some deposits, I wanted to check how much IL I would experience if I were to withdraw now.
I pulled up the master vault contract to look at their balances. According to the Bancor documentation, this is where they keep all their token assets.
I then looked at the outstanding supplies for their protocol-paired tokens (denoted by "bn") to see how many deposits they have for that asset, e.g. 1 bnETH = 1ETH deposited. Then I divide the difference to get my assumed IL loss for that asset (since they don't disclose this).
Currently, there's about:
~35,176 bnETH outstanding
~7.58M bnLINK outstanding
~15.04M bnDAI outstanding

In the master vault, they have the following assets:

~20,769 ETH (-40.9%)
~4.07 LINK (-46.3%)
~ 13.71M DAI (-8.84%)
I know that this was never a risk free play, and I don't have an issue with booking IL losses. I'm comfortable with the risks I took doing single sided LP into the protocol and I've always respected what Bancor's done in the space and didn't mind supporting new experiments.
With that being said, however, I think Bancor's being somewhat disingenuous with their communications. Clearly they've experienced significant externalities from the 3AC contagion and buying time to figure out solvency, but they're framing this issue as a "user safety precaution"
Deposits are not accepted likely because they will immediately get pooled with outstanding IL losses and lose 40% of their value instantly. My issue is: why is trading still active? Just let us get our deposits back.
By keeping trading active, they are allowing all BNT holders to continue dumping into the liquidity they're now keeping hostage... I'm not sure what their plan is, but the situation sounds critical while trying reassure everyone not to panic.
Semi unrelated thought: this whole situation has reinforced my skepticism in upgradable Proxies. Bancor upgraded their contracts to disable withdraws right before their announcement so nobody could react. It completely breaks the trust and immutability promise of smart contracts.
It's been long overdue, but recent events have really shown me how much we need to rethink protocol design, governance, and token economics if we want to truly demonstrate the promise of crypto. I know it's there and I still believe 100% that this is the future.. but holy fuck
There's so many things we need to improve on before we get to the next cycle. But I'm looking forward to building with you all in the bear. Peace ✌️
Like... sheeeeeesh

• • •

Missing some Tweet in this thread? You can try to force a refresh

Keep Current with fully

fully Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!


Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @fullyallocated

Apr 25
Over the past few weeks I've been working with solidity devs on their protocols and had some thoughts about contract architecture. I've summarized these thoughts into this doc:


Here are the main points for a TL;DR:

Most projects take a process-centric approach towards protocol development: each contract is developed as a single process in a chain of logic that is triggered when external interactions occur. This is generally the intuitive approach because it’s how our brains think.

However, there’s an inherent issue in building a protocol this way. Over time, as the protocol evolves, more “steps in logic” are added across the system, creating long and convoluted chains of processes that look like this:
Read 12 tweets

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!


0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy


3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!