NairaToCrypto
Instantly convert your naira to crypto with a simple bank transfer—no P2P, no delays.
Demo
About
Why are you participating for Based Africa? I’m participating in the Based Africa Buildathon because I want to create real, practical solutions for everyday problems people are facing, especially here locally in Nigeria. I see Base as an amazing tool for that. The Base ecosystem is affordable, reliable, and super inclusive—whether you’re an artist, developer, or just someone curious about the web3 world, it makes it easy to jump in. I want to help remove the barriers and make it simple for people to access the web3 economy. It’s all about making this tech useful and accessible for everyone.
How it's made
What challenges are you focusing on? One of the biggest challenges I’m focusing on is simplifying the process of getting people onchain. Right now, most people locally rely on peer-to-peer (P2P) to convert their naira to crypto, and it’s a hassle. You have to find someone trustworthy, deal with sketchy escrow services, haggle over exchange rates, and wait forever for a response. Sometimes money goes missing or appeals just fail, leaving people frustrated. We’re using Base to streamline that entire process—making it automatic, faster, more secure, and headache-free for everyone. How does your submission address this challenge? **NairaToCrypto** makes getting onchain super easy by cutting out all the middlemen and headaches. Users get their own **personalized bank account**, and whenever they transfer local funds, it’s **automatically converted to crypto**—instantly, without delays, and no dealing with third parties. We use **Gnosis Safe** to securely hold the crypto, and each user gets a unique **virtual bank account** through Flutterwave. Our backend listens for those transfers and immediately sends the equivalent **USDT** (or other supported tokens) to the user’s wallet at the **best rate** available. The impact is pretty significant—this solution slashes the time and effort needed to onboard to crypto, especially for newbies or people frustrated with the current **P2P methods**. Plus, by supporting **multiple tokens**, users have more choices in how they manage their crypto. And the best part? **It’s scalable**. With just a few tweaks, this can be rolled out to other African countries or even globally, making crypto accessible through simple API changes. Challenges we ran into Building NairaToCrypto came with its fair share of challenges: 1. **Virtual Account Creation**: One of the biggest hurdles was finding a local service that allowed the creation of virtual accounts. Many APIs for this were hidden behind strict business requirements, like needing a registered company with a bank statement, which we didn't have during the buildathon timeframe. We overcame this by carefully crafting our application process, which led to Flutterwave approving the API functionality for us.. 2. **USDT Automatic Transfers**: Initially, using Gnosis Safe to hold USDT and a Safe Wallet module for transfers seemed like a good idea. However, since smart contracts need to be manually invoked and aren't always online, this became a bottleneck. We solved it by using the backend server with the private key for a multisig wallet linked to the Gnosis Safe, ensuring smoother transactions. 3. **Push Notifications**: On the frontend, Next.js doesn’t support websockets, which we needed for real-time transaction notifications. After spending two days, including trying to deploy the Next.js app as a web service on Render, we still couldn't fix the issue. We overcame this by using Ably channels to mimic websocket functionality, and it worked flawlessly. 4. **Signature Verification**: We faced challenges when integrating Coinbase Smart Wallet and verifying signatures for both externally owned accounts (EOA) and smart wallets. The varying signature lengths caused issues. After trial and error, we solved this by using the `wagmi` usePublicClient hook, which made the verification process seamless. 5. **Handling Multiple Components**: Lastly, it was my first time writing code for all three components—backend, frontend, smart contracts, and webhooks—singlehandedly. Though daunting, I received constant support from the community, which helped me push through. In the end, these challenges not only improved my problem-solving skills but also made the product more robust.