Field Notes · Fintech Infrastructure
Building a username-first crypto bank in Nigeria
Ask someone in Kebbi to pay you in crypto and watch what happens. You send them a 44-character Solana address. They copy it into WhatsApp, where autocorrect mangles it, or they screenshot it, retype it, and pray. If one character is wrong, the money is gone — not delayed, not reversible, gone. We normalised this because the people who built crypto infrastructure were building for traders, and traders tolerate anything. Ordinary people don't, and they shouldn't have to.
That's the design failure Zipa exists to fix: you send money to @amina, not to 7xKp...q3Fz. This piece is a set of field notes on what that actually takes to build — and what I deliberately haven't built yet.
The address is the bug
Every crypto UX problem in Nigeria compounds from one root: the address format is hostile to humans. Bank transfers here already work through short account numbers and instant name resolution — you type ten digits, the bank shows you "MUSA SULAIMAN", you confirm, done. Crypto asked people to regress from that to hex strings with no name check and no undo. The fix isn't education. The fix is making the address disappear.
Username-first means the handle is the primary key of the entire product. Claim @yourname on sign-up, and every flow — pay, request, QR, public payment page — resolves through it. The on-chain addresses still exist underneath, but a user can go months without ever seeing one.
Embedded wallets, invisible custody plumbing
Seed phrases fail the same people addresses fail. So wallets in Zipa are created silently in the background at sign-up — Solana, Ethereum and Base — using embedded-wallet infrastructure (Privy) rather than asking anyone to write twelve words on paper. Sign up with email, phone or Google; the cryptography happens where users can't be hurt by it.
The trade-off is real and worth naming: embedded wallets shift trust from the user's memory to the infrastructure operator. That's the right trade for this audience — but it obliges you to be honest about custody status, which is why Zipa's beta explicitly does not hold real money yet.
Two rails, one ledger
The architecture splits payments into two lanes. Transfers between Zipa users settle on an internal ledger — instant, free, no gas, because nothing needs to touch a chain when both sides of the trade live in the same system. External transfers settle on the actual rails: Solana, Ethereum, Base, with Helius doing the heavy lifting on indexing. This is the same pattern every serious fintech converges on — internal book transfers plus external settlement — and it's why a Zipa-to-Zipa payment feels like sending a text.
AI where it earns its place
Every transaction in Zipa gets a plain-language explanation generated by AI: what happened, to whom, what it cost, in words a first-time user understands — with naira context, because a balance denominated only in SOL means nothing to most Nigerians. This is the standard I hold for AI in products: it has to remove confusion, not add novelty. An AI that explains your money beats an AI that chats about it.
The same philosophy applies to language: the interface supports five Nigerian languages, because financial confidence collapses when you're translating in your head.
What I refuse to claim
Zipa is a live public beta on test networks. It's free, it works end to end, and it does not custody real money yet. I could dress that up — plenty do — but the fastest way to lose the trust of the exact users who need this product is to blur the line between a beta and a bank. Mainnet, custody and compliance are the current frontier, and they'll be announced as facts when they're facts.
Notes for builders
If you're building fintech for African markets, three things I'd underline. First, steal the account-number-plus-name-check pattern from Nigerian banking — it's the best payments UX ever shipped here and users already trust it. Second, build the internal ledger before you obsess over chains; most of your volume will be internal if your product works. Third, label your claims. Beta means beta. Test networks mean test networks. The credibility you bank now is the moat later.
Building something in this space?
I take on AI-native product and fintech infrastructure work — design through deployment, end to end.