Inspiration
December 24th, 2024. My family and I sat around our small living room in Lagos, waiting. My brother had sent money from Liberia three days earlier, funds we desperately needed for Christmas. The transfer finally arrived that evening, but only after the banks had carved out their "fees." We quickly made our shopping list, excited to finally prepare for the holiday.
December 25th. Network error. Network error. Network error.
I must have tried withdrawing the money fifty times that day. Each attempt met with the same soul-crushing message. My wife looked at me with questions in her eyes that I couldn't answer. My children asked when we'd go shopping for Christmas dinner. I had no answer for them either.
We slept hungry that night. All of us.
I kept trying through the darkness, phone screen lighting up my face every thirty minutes. Nothing. On the 26th, I had to swallow my pride and borrow garri from neighbors just to feed my family. It wasn't until December 28th, four full days after the money arrived, that I could finally access our own funds.
That night, after my family had eaten and fallen asleep, I made a promise to myself: I would build my own bank. Not just for me, but for the 435 people out of 500 I surveyed who shared similar horror stories. For the mother in Accra who couldn't pay for her daughter's emergency medicine because her remittance was "processing." For the small business owner in Nairobi whose supplier payment arrived a week late, costing him his biggest client.
But reality hit hard. Traditional banking licenses require billions in capital. My dream seemed dead before it started.
Then, months later, an email from DevPost changed everything. Polkadot hackathon. I started reading the documentation, Moonbeam, cross-chain bridges, EVM compatibility. Suddenly, pieces started falling into place. I didn't need billions to get banking licenses. I needed blockchain. I needed Polkadot.
Zorah was born from that realization: What if we could give people the simplicity of traditional banking without the fees, delays, and barriers? What if a grandmother in rural Nigeria could send money as easily as she sends a text message? What if we could build a bank that serves Africa's 2 billion underbanked people, not despite their circumstances, but because of their needs?
What it does
Zorah is a global banking protocol that makes cryptocurrency feel like traditional banking, simple, secure, and familiar, while delivering blockchain power underneath.
For users, Zorah provides:
11-digit account numbers (like 12345-678901) instead of scary "0x..." addresses. No seed phrases. No technical jargon. Just banking.
Instant cross-border transfers with 1% fees (capped at $10), compared to the 6-8% traditional banks charge. A $100 transfer costs $1, not $8. Settlements happen in seconds, not days.
Smart escrow for P2P and B2B transactions with automated dispute resolution. Buy, sell, and trade without needing to trust the other party. The smart contract handles everything.
Cross-chain deposits from any blockchain, Ethereum, Avalanche, Polygon, everything settles as stablecoins on Moonbeam. Users see USD balances, not crypto complexity.
Yield generation where users earn 60% of returns on their balance, with no lock-up periods and the ability to withdraw anytime.
Merchant payment processing at 0.25% (versus Stripe's 2.9%), with instant settlement and no chargebacks.
The core innovation: You interact with account numbers. The blockchain handles everything else. Your wallet is encrypted and hidden. Gas fees are abstracted, Moonbeam's ~$0.01 costs are invisible. Bridging happens automatically. Smart contracts work silently.
Result: Banking UX + Blockchain power + Zero complexity.
How we built it
Technology Stack:
Backend: PHP 8.3 with modern JIT compilation, MongoDB for document storage, Redis for caching, Web3.php for Ethereum JSON-RPC communication Smart Contracts: Solidity 0.8.30 on Moonbeam, using OpenZeppelin libraries for security Cross-Chain: Axelar bridge for testnet (moving to LayerZero Stargate for production) Frontend: Vanilla JavaScript with ES6+, Tailwind CSS, Web3.js/Ethers.js for wallet connections
Why Moonbeam/Polkadot:
We chose Polkadot's Moonbeam parachain for critical technical reasons:
- ~$0.01 transaction costs enable profitable micropayments (impossible on Ethereum at $10+ gas)
- Shared security from 1000+ Polkadot validators means enterprise-grade protection from day one
- EVM compatibility lets us use proven Solidity contracts and familiar tooling
- 12-18 second finality provides real banking speed
- Native cross-chain messaging (XCM) positions us for future DeFi integrations with Acala, Astar, and Parallel Finance
Architecture:
Users create accounts with 11-digit numbers. Behind each number, we generate an encrypted EVM wallet on Moonbeam. The wallet never appears in the UI, it's pure abstraction. When users deposit via our bridge interface, Axelar handles cross-chain messaging while we monitor Moonbeam contracts for balance updates. Everything settles as stablecoins (aUSDC on testnet, USDC/USDT on mainnet).
The escrow system uses time-locked smart contracts with juror-based dispute resolution. Transactions are trustless, neither party can rug pull, and disputes are resolved democratically.
Why PHP 8.3?
People raised eyebrows when I said "blockchain backend in PHP." But here's the truth: PHP 8.3 is a first-class blockchain citizen. The JIT compiler makes it 40% faster than PHP 7.4. Strict typing and enums are perfect for financial operations. Most importantly, PHP powers 77% of the web, WordPress, Laravel, Shopify, because it works everywhere, including shared hosting.
We're building for 2 billion underbanked people, not just crypto natives. That requires pragmatic tech choices, not hype-driven ones. Our separation of business logic (PHP) from settlement logic (smart contracts) means traditional businesses can integrate Zorah without learning Solidity.
Challenges we ran into
Technical Challenges:
Wallet abstraction complexity: Balancing non-custodial architecture (users own their keys) with simplified UX (hiding seed phrases) required careful encryption design. We settled on encrypted key storage with account-number-based derivation.
Cross-chain bridge integration: Axelar's documentation was comprehensive, but mapping their bridge flow into our "simple deposit" interface took multiple iterations. Users shouldn't need to understand what a bridge is, they just want to deposit money.
Gas abstraction: Moonbeam's low fees ($0.01) helped, but we still needed to handle transaction failures gracefully without exposing "out of gas" errors to users. We implemented gas estimation with 20% buffers and clear error messages like "Transaction failed - please try again."
Real-time balance updates: Reading directly from smart contracts introduced latency. We implemented Redis caching with 30-second refresh cycles, striking a balance between accuracy and speed.
Smart contract security: Writing financial contracts is terrifying. Every line could lose user funds. We leaned heavily on OpenZeppelin's battle-tested libraries and will conduct full audits before mainnet.
Personal Challenges:
Building alone meant wearing every hat, smart contract developer, backend engineer, frontend designer, technical writer. There were nights I questioned if I could pull it off. The hackathon deadline felt crushing when the escrow UI wasn't working three days before submission.
But remembering my family's hungry Christmas night kept me going. This isn't just a project, it's personal.
Accomplishments that we're proud of
Working cross-chain deposits in 6 weeks: From zero to deployed contracts, working UI, and successful Axelar bridge integration. Users can deposit aUSDC from Avalanche/Polygon and see balances update on Moonbeam.
Wallet abstraction that actually works: Hiding 0x addresses behind account numbers isn't novel conceptually, but executing it securely while maintaining non-custodial principles is hard. We did it.
Smart escrow contract deployed and verified on Moonbeam testnet: Time-locked contracts with juror voting, dispute resolution, and fee distribution, all working transparently on-chain.
Banking-grade UI: Our interface looks and feels like Venmo or Cash App, not MetaMask. No Web3 jargon. No confusing buttons. Just "Send," "Receive," and your balance.
Documentation that anyone can follow: Our README has gotten GitHub stars from people who just appreciate the clarity. If grandmothers will use Zorah, developers need to understand it first.
Proving PHP 8.3 belongs in blockchain: We silenced doubters who said "PHP can't do blockchain." Modern PHP with JIT, strict typing, and proper architecture absolutely can.
What we learned
Technical Lessons:
- Moonbeam's EVM compatibility is real magic, we copy-pasted Ethereum tutorials and they just worked
- Gas estimation is harder than it looks; always buffer by 20-30%
- Redis caching is essential for blockchain UX; users won't tolerate 5-second balance loads
- Smart contract events are your friend for tracking state changes
- Cross-chain bridges have 2-5 minute settlement times; users need clear progress indicators
Product Lessons:
- UX abstraction is everything, if users see "0x" addresses, you've already lost them
- Familiar mental models (account numbers) beat novel ones (wallet addresses) for adoption
- Fee transparency builds trust, show exactly what users pay, no hidden costs
- Error messages must be human-readable: "Network error" is useless; "Your deposit is processing, check back in 3 minutes" helps
Personal Growth:
- I can build complex systems alone if motivated enough (though I shouldn't have to)
- Documentation is as important as code
- Asking for help in Discord channels isn't weakness, every developer was stuck once
- The Polkadot community is incredibly supportive; Moonbeam DevRel answered my questions at 2 AM
Ecosystem Insights:
Polkadot isn't just "another blockchain", it's infrastructure for the next decade. Shared security, native interoperability via XCM, and parachain specialization create opportunities impossible on monolithic chains. Moonbeam being EVM-compatible means we can leverage Ethereum's massive developer ecosystem while enjoying Polkadot's technical advantages.
The future of blockchain isn't about one chain winning; it's about chains working together. Polkadot makes that vision real.
What's next for Zorah
Phase 2 (Q1 2026) - Core Banking Features:
- Complete escrow UI integration (contract is ready, wiring last pieces)
- P2P fiat withdrawals through liquidity partner networks
- Account-to-account internal transfers (free, instant)
- Enhanced security: 2FA, withdrawal confirmations, address whitelisting
- Smart contract security audit (CertiK or Trail of Bits)
Phase 3 (Q2-Q3 2026) - Multi-Chain + Business Tools:
- Migrate from Axelar to LayerZero Stargate (lower fees)
- Support multiple stablecoins: USDC, USDT, DAI
- Multi-chain deposits: Ethereum, Polygon, Arbitrum, Avalanche
- Payment gateway API for merchants
- Merchant dashboard with analytics and invoicing
- React Native mobile app with push notifications
Phase 4 (Q4 2026-2027) - Token + Compliance:
- Launch $ZORA utility token for fee discounts, LP rewards, and governance
- KYC/KYB provider integration
- AML transaction monitoring
- Begin R&D on proprietary Polkadot Parachain Bridge for stablecoin transfers
Phase 5 (2028+) - Ecosystem Expansion:
- Zorah Parachain Bridge: XCM-based stablecoin routing between Acala, Parallel, Astar, Centrifuge, and Moonbeam, lower fees than external bridges for the Polkadot ecosystem
- Astar Network deployment: Escrow protocol and yield vaults on Astar, tapping into dApp staking rewards
- Acala integration: Bridge aUSD and access Acala's DeFi yields
- Phala Network: Privacy-preserving KYC and confidential transactions
- Debit cards: Physical and virtual cards for spending Zorah balances
Our North Star:
By 2031, we aim to serve 300,000+ users across Africa and beyond. Freelancers receiving international payments. Migrants sending remittances home. Small businesses accepting global payments. Savers earning yields better than traditional banks.
Every user will have one thing in common: They won't know they're using blockchain. They'll just know it works.
December 24th was the worst Christmas of my life. But it sparked something bigger than my pain, a solution for millions facing the same broken system. Zorah isn't just a protocol; it's a promise that money should move as freely as information. That banking should serve everyone, not just the privileged few with access to infrastructure.
We're building banking without borders. Banking without barriers. Banking that just works.
And we're doing it on Polkadot, because the future of finance is multi-chain, decentralized, and radically open.
Built with ❤️ for the 2 billion underbanked people who deserve better.
Built With
- axelar
- blockchain
- javascript
- moonbeam
- node.js
- php8.3
- pokadot
- tailwind


Log in or sign up for Devpost to join the conversation.