Netcoins
Crypto exchange · iOS and Android · Canada
Netcoins is a Canadian crypto exchange. It was one of Speer's clients, and my part was sign-up (onboarding) and the asset transfer screens, all in React Native.


Context
Sign-up is the first thing a new user sees. Asset transfers are where their money moves.
Constraint
Real money made me a lot more careful about retries.
Picture a phone on a bad connection: the server finishes the transfer, the response gets lost on the way back, and the app, which has no idea, sends the whole thing again.
The problem
On top of that, the old sign-up and transfer screens were slow to load.
And there was no idempotency key, so the server had no way to tell that second request apart from a brand new transfer.
What changed
We rebuilt both flows.
Every transfer request got an idempotency key. When a key shows up that the server has already seen, it returns the first result instead of moving money again.
Result
A retry can't send money twice.
After the rebuild, registrations went up and load time went down, around 20 to 30 percent each.