BTC$104,872.40+2.41% XAU$3,318.12+0.42% SPY$5,917.88-0.18% M2INFINITE+∞%
BLOCK 945,231
CLIENT WORK · CASE STUDY No. 02

Selling into a pool that barely exists.

A dormant BNB position, still in its original 2017 ERC-20 form on Ethereum, sitting on a discontinued hardware wallet. No exchange account. A position large enough to be the market that had to absorb it. This is a guide to exiting thin liquidity without paying for the privilege, and to the uncomfortable discovery that most of the prices on screen were never real.

Two assumptions walked in. Neither walked out.

Assumed № 1

"The keys are lost." They were not. The device was located and unlocked. But the signing account was not where any modern wallet looked for it: it lived on an older derivation scheme, invisible to the default account list. Anyone who stopped at "my wallet doesn't show it" would have concluded the funds were gone.

Assumed № 2

"Worst case, we deposit to an exchange." No account existed. Opening one meant identity verification, days of waiting, and a custodial relationship the client did not want, all to chase a deposit path nobody could confirm would even accept this particular legacy token. Exchanges dropped support for assets like this years ago.

Losing the exchange fallback mattered more than finding the keys. It meant the entire position had to exit through on-chain liquidity, and the real work became understanding exactly how much of that existed, then structuring the exit so the client was not trading against themselves.

The playbook · overview first, details below
  1. Locate the keys properly. The signing account lived on an older derivation scheme the default wallet list never shows. Enumerate legacy paths before declaring anything lost.
  2. Measure the real market. Read the pool reserves for the legacy token directly on Etherscan. Count what exists, not what a price site remembers.
  3. Test construction, not quotes. Ask every candidate venue to build the actual transaction. A quote that cannot become a built transaction is decoration.
  4. Bound every approval to the exact amount being traded, so each permission burns to zero on use and nothing is left standing.
  5. Send a small test clip first, then tranche against pool depth, re-quoting immediately before every signature.
  6. Watch your own footprint. Compare realized price against the underlying spot as you go. When the decay is your own activity, resize or stop.
  7. Stop optimizing when the math says stop. Clear the remainder in a block, then revoke anything still approved at revoke.cash.

Finding the market: one pool, and you are most of it

BNB launched in July 2017 as an ERC-20 token on Ethereum. Binance Chain went live in 2019, the project migrated holders to native BNB, and support for converting the original token eventually wound down. The ERC-20 original still exists and still transfers, but it is a legacy artifact. When we enumerated the venues that could theoretically absorb it and read their reserves directly from the chain on Etherscan, the picture was stark: pool after pool drained to zero, and essentially all remaining liquidity concentrated in a single pool, where the client's position represented a very large fraction of everything available to buy it.

VENUES THAT ONCE TRADED THE TOKEN DRAINED DRAINED DRAINED CLIENT POSITION THE ONLY POOL everyone else When you are this much of the market, you are not a price taker. You are the price.
Fig. 1 · Sell it all at once and you walk the price down yourself, then donate the difference to arbitrage

The prices on screen were not real

This is the finding we most want readers to take away. The first venue we evaluated, a well-known cross-chain platform, quoted attractive, precise, confident prices. Its interface displayed them beautifully. The confirm button glowed, lit and clickable.

None of those orders could actually be built. When we invoked the endpoint that constructs the real transaction, the machinery behind the confirm button, it failed with a server error. Every time. On the direct route and on the workaround the platform's own error message suggested. The prices were decorative. A plan sized around them would have been fiction from the first line.

The same platform, separately, priced a dollar-pegged stablecoin at roughly a twenty-three percent premium to its peg, which made a genuinely poor route render on screen as a windfall. A holder reading that screen alone would have taken it, and paid heavily for the click.

By this point in the engagement we had seen wrong balances, wrong prices, phantom pending transactions, and stale error banners contradicting live quotes, each from a different layer of the stack. Somewhere around the fourth contradiction, this stops being surprising and becomes the operating assumption. The interfaces disagree with each other. The chain never disagrees with itself.

A quote is not an offer. The only proof a trade will execute is constructing the transaction that executes it.
"WHAT'S THE PRICE?" QUOTE ENDPOINT confident number ✓ BUILD ENDPOINT server error ✕ every time What the screen shows. What the confirm button actually calls. Test this one first.
Fig. 2 · Same platform, same trade, two answers. Only one of them spends money
A WORD FROM THE FIRM

Holding a token the market forgot?

The value your wallet displays for a legacy asset is a reference price. The value you can realize depends entirely on how much anyone will pay for the size you hold, and for older tokens those two numbers can diverge by double-digit percentages before you have clicked anything. That gap is measurable. We read the pools directly, test what actually executes, and come back with a real number: what your position is worth to the market that exists, not the market your wallet remembers. Sometimes the honest answer is that the exit is not worth making, and we will tell you that too. Either way you decide with facts instead of a screen price nobody will honor.

The exit: test, tranche, adapt, stop

With an executable venue identified, a decentralized exchange whose orders built cleanly and priced better than the platform that could not build them at all, the exit followed a discipline worth writing down.

A small test went first. It cost a rounding error and proved the full path end to end before real size moved. Every approval was bounded to exactly the amount being traded, never unlimited, so each permission expired to zero on use and nothing was left standing. Every order was re-quoted immediately before signing, because prices moved materially inside minutes and any number older than that was already stale.

Then the tranching, which produced the two lessons the textbooks skip. Early clips barely moved the price and the pool recovered between them, which tempted us toward larger sizes. Later clips walked the price down persistently, and spacing them out stopped helping. A check of the underlying asset's spot price confirmed it had not moved at all: the decline was entirely our own footprint. The premium we were selling was being permanently compressed by our own activity.

START POSITION CLEARED UNDERLYING SPOT · DID NOT MOVE LEGACY-TOKEN PREMIUM, DECAYING WITH EACH CLIP premium still captured
Fig. 3 · The premium was an asset that decayed as it was sold. Recognizing that early is what made the sizing decisions defensible

That framing, the premium is an asset that decays as you sell it, is what turned the tranching from ritual into strategy. Once the marginal saving from continued patience fell below the cost of continued exposure, we stopped optimizing and cleared the remainder in a block. Knowing when to stop tranching matters as much as knowing when to start. And on the second leg of the conversion, where the cost was a flat proportional fee with no depth constraint at all, we did not tranche: splitting that leg would have multiplied operational risk for zero benefit. Tranche when depth is the constraint. Not by default.

A pricing quirk deserves its own paragraph. Legacy ERC-20 BNB traded at a persistent premium to native BNB, the opposite of what intuition expects from an abandoned token. Thin two-sided markets price off whoever last needed to trade, not off consensus. The premium was real, capturable, and fragile. Because of it, the client finished the conversion holding more native BNB on BNB Chain than the ERC-20 BNB they started with on Ethereum.

The same lesson generalizes beyond BNB. In a parallel engagement we priced an exit for a position in Augur's REP v1, another token superseded years ago, this time by an in-place migration to REP v2 rather than a new chain. The executable quote that came back from CoW Swap sat roughly thirty percent below the reference price wallets still displayed for the token. Neither number was a lie. One was a memory, and one was a market, and only one of them would ever settle.

By the numbers

Combined engagement · all four case studies · 2026-08-05 to 2026-08-07
50.8
hours wall clock
871.4M
total tokens
6,536
transcript entries
606
shell invocations
4
chains recovered from
3
frontier models used

Token breakdown: 840,067,913 cache read · 29,112,429 cache write · 2,223,932 output. Models: Claude Opus 5 (1,427 turns) and Claude Fable 5 (376 turns) drove the work, with GPT-5.6 Sol consulted across three structured rounds during the Zcash engagement. All four case studies in this series ran inside the same window and share these totals. Full technical detail for this engagement is held in our internal report series.

01

A quote is not an offer.

Any platform can display a price. The only proof a trade will execute is successfully constructing the transaction. Test that before you plan around a number.

02

Find the liquidity before you plan the exit.

Read the pools directly. If your position is a large share of the only venue that will absorb it, that fact drives every decision that follows.

03

Tranche when depth is the constraint.

Splitting orders helps when you are eating a shallow pool. Against a flat proportional fee it only multiplies risk. Know which regime you are in.

04

Know when to stop.

Patience has a price and diminishing returns. When the remaining saving no longer justifies another round, take the block and be done.

05

Bounded approvals, always.

Approve the exact amount. It expires on use. No standing unlimited permission should exist on an account holding real value.

06

The chain is the only honest interface.

Balances, quotes, price feeds, and pending indicators were each wrong at some point. The chain was never wrong. When they disagree, believe the chain.

WORK WITH US

Exits like this are won before the first order.

The difference between a careful exit and a careless one on a position like this is not luck. It is measured liquidity, tested execution paths, bounded approvals, and the discipline to re-verify at every step against the only source that cannot lie to you. That work does not require you to hand anyone your keys, and it starts with a conversation, not a commitment. If you are sitting on a legacy position you suspect is worth something, find out what it is actually worth and what it would actually cost to realize it. Thirty minutes with us and you will know both numbers.

The assets, chains, and tools in this study are named as they were used. Client identifiers, addresses, transaction hashes, amounts, and the venues that failed our tests are withheld. Previous in the series: Case Study No. 01 · The device the manufacturer forgot. Next: Case Study No. 03 · The wallet that predated the chain.