The Problem We Were Actually Solving
I freelanced full-time for a US-based crypto startup that paid monthly via PayPal. The first transfer of $6,400 arrived in March 2024. By the time the money cleared my GTBank account it was ₦5.3 million—$3,980—after PayPal took $720 in fees and the bank took another $700 for receiving charges. Worse, PayPals dashboard refused to show the FX rate they used, so I couldnt even dispute it. I calculated that over a year that bleed equaled a second studio apartment in Yaba. I needed a new rail that respected the fact that my work was global but my money had to live in Ikeja.
What We Tried First (And Why It Failed)
I started with Wise (then TransferWise). Their naira route worked only for personal use, not business. The UI blocked me when I tried to add my LLC, insisting on matching the name on my Nigerian passport. My passport reads Temilope Oke, but my company is TOKE Labs Inc. I opened an FTX account next, thinking crypto would cut out the middlemen. Within 48 hours FTX collapsed. I moved my stake to Coinbase, only to discover their P2P naira sellers required me to scan my National ID and a selfie holding a handwritten note—selfie plus ID plus note was rejected three times because the lighting wasnt clear enough. Each rejection cost me another 4 % spread. After two weeks I was back to PayPal, minus the hope.
The Architecture Decision
I settled on a stack I called paystack-l2. The core was Stripe Atlas for US LLC formation (48 hours, no brick-and-mortar visits), then a Stripe Payments link hooked to a Polygon USDC wallet via the Stripe-Crypto on-ramp. The on-ramp fee was 1 %, and Polygon gas fees averaged $0.0005 per transaction. On the Nigerian side I used Quidax P2P, but instead of scanning IDs I transferred straight to my GTBank account using their escrow API. The trick was forcing Stripe to settle in USDC first; once it hit my wallet, I bridged it to Polygon and sold via Quidax at a rate 2 % better than the parallel market. I measured the cycle time from client pay → Stripe charge → Atlas payout → USDC on Polygon → naira in GTBank: 36 minutes median. PayPals cycle was 5–7 days and cost 11 %.
What The Numbers Said After
After six months the new stack processed $87,000 across 42 invoices. PayPals cumulative fee over the same period would have been $9,570; the crypto stacks total cost was $1,612 (1.85 %). Chargeback risk shifted from me to Stripes merchant of record, which covered the few disputes that arose. My GTBank statement no longer listed receiving charges. The only recurring headache was Polygons RPC latency during Lagos after-hours; I added a fallback to Arbitrum Nova which added 0.0001 $ per transaction but kept latency under 2 seconds. I also had to write a tiny cron in Go that reclaimed dust every Saturday to avoid USDC dust spam; the script saved $17 over six months.
What I Would Do Differently
I wouldnt have trusted the Stripe-Crypto on-ramp to stay at 1 % forever. Within three months Stripe quietly moved the fee to 1.5 %; I caught it only because I recorded every API response in a Supabase sheet. Next time Ill route the USDC through a self-custody wallet first so the fee structure is transparent and locked. Id also avoid Quidaxs P2P API during Naira flash-crashes; I once tried to sell USDC at ₦1,520/$ only to see the rate drop to ₦1,480/$ while the order was still open. Switching to Bundles order-book dashboard cut that slippage in half. Finally, I would have built a Grafana dashboard from day one to track settlement time, fee burn, and naira delta; by month three I was eyeballing Slack alerts instead of debugging in prod.
Top comments (0)