🏦 FNB Token
A programmable, blockchain-based stablecoin solution built for First National Bank (FNB) to digitize the Botswana Pula (BWP) and enable transparent, secure, and compliant digital transactions.
🚀 Inspiration
The inspiration for FNB Token stems from the need to modernize banking infrastructure using blockchain technology. We wanted to explore how a regulated financial institution like FNB could issue a digital currency anchored to fiat (BWP), while ensuring compliance, scalability, and ease of use for both individuals and businesses.
💡 What It Does
FNB Token is a fully integrated platform for issuing, managing, and transacting a bank-backed digital currency. It includes:
✅ Smart Contract written in PyTeal to:
- Mint and burn tokens
- Enforce reserve backing
- Require KYC for transfers
💼 Wallet App built with React Native:
- Lets users send and receive FNB Tokens
- Displays balances and transaction history
🛠️ Admin Dashboard built with Next.js:
- Approves and manages KYC users
- Sets reserve limits
- Mints and burns supply
🔗 Backend API (Node.js):
- Powers both the wallet and admin dashboard
- Handles off-chain logic, user authentication, and KYC status
- Interfaces with the smart contract securely
🏗️ How We Built It
- Blockchain: Algorand (chosen for low fees, high throughput, and native smart contracts)
- Smart Contracts: PyTeal (compiled to TEAL)
- Wallet App: React Native (for mobile iOS/Android)
- Admin Dashboard: Next.js (for performant web UI)
- Backend: Node.js + Express
- Database: Rethink DB (for KYC/user tracking)
- Wallet Integration: Pera Wallet via WalletConnect
We designed the system using modular architecture to make it easy to scale and maintain different parts independently.
⚠️ Challenges We Ran Into
- Enforcing KYC logic inside smart contracts when users may use third-party wallets like Pera.
- Handling atomic transactions using grouped transactions for things like transfer + fee enforcement.
- Designing for interoperability between mobile, web, blockchain, and off-chain components.
- Balancing regulatory constraints with blockchain decentralization principles.
🏆 Accomplishments That We're Proud Of
- Successfully integrated multiple systems—smart contracts, backend APIs, mobile and web frontends—into a cohesive platform.
- Built a secure, compliant, and programmable stablecoin solution with real-world financial applications.
- Achieved a level of functional completeness that positions the project for production testing in a regulated banking environment.
📚 What We Learned
- The importance of cohesive architecture when bridging blockchain and traditional finance.
- How to enforce smart contract rules like KYC, reserve limits, and fees, even with third-party wallets.
- Building trust into the system with audit-friendly, transparent logic in both on-chain and off-chain layers.
- Interfacing with Algorand in a resource-constrained mobile environment using React Native.
🔮 What's Next for FNB Token
- 🧾 POS System Integration: Enabling FNB business clients to accept FNB Token at checkout using compatible point-of-sale systems.
- 🏧 ATM Redemption Support: Integrating with FNB’s ATM software to let users redeem FNB Token for cash.
- 🌍 Cross-Border Payments: Exploring regional payment corridors via Stellar bridges or custom sidechains.
- ⚖️ Regulatory Sandbox Trials: Deploying in a controlled environment for testing under financial authority oversight.
- 🪢 Merge with Main FNB App: Integrating the FNB Wallet app directly into the main FNB mobile application for a unified banking and token experience.
Built With
- algorand
- javascript
- node.js
- pyteal
- rethinkdb
Log in or sign up for Devpost to join the conversation.