Inspiration
In South Africa and similar markets, crypto users face a major friction point: while sending crypto is instant, spending it in real life is delayed by slow off-ramp systems, banking clearance times, and exchange withdrawal delays (often 1–3 days).
We built SpendBit to solve this gap.
The goal is simple:
Make crypto behave like money you can actually use immediately
Instead of waiting for fiat withdrawals or bank settlement delays, users should be able to deposit crypto and instantly see usable value in their account.
What it does
SpendBit is a crypto-to-digital balance system that:
- Lets users connect a wallet (MetaMask)
- Accepts USDC deposits on the Polygon Amoy network
- Verifies transactions on-chain using secure backend validation
- Ensures funds were actually received by the treasury wallet
- Converts verified deposits into a real-time user balance
- Provides a transaction history dashboard for full transparency
Each deposit is:
✔ Verified on-chain ✔ Matched to a user account ✔ Stored in a secure database ledger ✔ Reflected instantly in user balance
💳 Vision (Future Expansion)
SpendBit is designed as the foundation for:
Instant virtual card issuance (Stripe Issuing or similar providers) Real-world spending directly from crypto-backed balances A replacement layer for slow crypto-to-bank withdrawal systems
The long-term vision is to let users spend crypto instantly anywhere cards are accepted, without waiting for bank settlement delays.
How we built it
Frontend 1. Vue 3 (Composition API) 2. Bootstrap 5 UI 3. Ethers.js (wallet + blockchain interaction) 4. MetaMask integration Backend 1. Laravel 13 API 2. Sanctum authentication 3. MySQL database 4. Secure crypto verification controller 5. Polygon RPC integration Blockchain Layer 1. Polygon Amoy Testnet 2. ERC20 USDC-style token 3. Transaction receipt validation via eth_getTransactionReceipt 4. ERC20 log parsing for Transfer events
Challenges we ran into
1. Parsing raw ERC20 logs correctly from transaction receipts
2. Handling unreliable public RPC endpoints
3. Preventing duplicate transaction submissions
4. Managing token decimal conversions correctly
5. Designing a secure system where frontend cannot fake deposits
Accomplishments that we're proud of
1. Fully working end-to-end crypto deposit system
2. Secure backend validation layer (no trust in frontend data)
3. Real-time balance updates after blockchain confirmation
4. Clean user transaction history system
5. Strong separation between blockchain logic and application logic
What we learned
1. How Ethereum logs and ERC20 transfer events work internally
2. How to securely verify blockchain transactions from a backend
3. The importance of trust boundaries in Web3 systems
4. How to combine Vue, Laravel, and blockchain APIs effectively
5. Real-world fintech constraints in crypto payments
What's next for SpendBit
1. Multi-token support (USDC, USDT, ETH)
2. Advanced transaction analytics dashboard
3. Virtual card integration via Stripe Issuing or fintech partners
4. Instant crypto-to-spend conversion layer
5. Scaling to mainnet with production-grade RPC infrastructure
6. IOS/Android Mobile app
Log in or sign up for Devpost to join the conversation.