25 Sept 2026
48 hours, a hundred contracts
Migrating PancakeSwap from V1 to V2 on no sleep, with a team new to on-chain work. What held up and what I'd change.
In April 2021 PancakeSwap moved from V1 to V2. Publicly it was an upgrade. Internally the timeline was about 48 hours, for reasons that aren't mine to share. This is about the 48 hours.
The platform held billions in deposits. None of us had shipped on-chain before this project. The migration meant deploying roughly a hundred new contracts, standing up every farm and pool again, and getting users to move their liquidity across. It was all or nothing: there was no version of this where half the pools moved and the rest waited a week.
What held up
- A spreadsheet, not memory. Every contract, its address, its status, its checks, in one place the whole team could see. Under pressure, the boring tool wins.
- Checks for the dumb mistakes. A typo in an address is the kind of error that costs real money on-chain. We built verification into the checklist so nothing shipped on a human's eyes alone.
- Both versions live. V1 kept running while V2 came up. Users migrated when ready instead of being cut over. It doubled what we had to watch, but it meant no cliff.
- Everyone stretched. Product, frontend, contracts: nobody stayed inside their lane. That's what "generalist" means when it counts.
What it cost
We gave the ecosystem almost no warning. Projects with tokens on the exchange found out with hours to spare and had to tell their own users to migrate. Several published open complaints. They had a point.
I'd defend the speed. I wouldn't defend the silence.
What I'd do differently
- Draft the partner announcement first. If the change can't be explained to partners in a paragraph, even a vague one, the plan isn't finished.
- Give comms an owner. Nobody owned it during the 48 hours, so it happened late and badly. It's the one job that needs no technical skill and it was the one we dropped.
- Decide the sleep plan up front. Two days awake is a risk you take on top of every other risk. Shifts would have cost little.
Why it matters
Most delivery advice assumes you have time. This was the other case: a fixed deadline in hours, a team learning the tooling as it went, money on the line. What got us through wasn't heroics. It was a checklist, verification for the obvious mistakes, and running old and new side by side. The part we got wrong needed no code at all.