Back to projects
Completed
MetLabs Bank
A 60-hour technical challenge: banking with blockchain — JWT auth, user-to-user transfers and a custom ERC-20 token deployed on Sepolia testnet.
What it is
A banking system with blockchain, built as a 60-hour technical challenge for MetLabs: traditional banking features (users, balances, transfers) combined with a custom ERC-20 token on Ethereum’s Sepolia testnet.
What I built
- JWT authentication and user management.
- User-to-user transfers fully recorded in PostgreSQL, with a timestamped history.
- ERC-20 smart contract in Solidity, deployed to Sepolia, with backend interaction through Ethers.js.
- An Ethereum wallet per user, generated at sign-up.
- Next.js + TypeScript + Tailwind frontend with a balances-and-activity dashboard; Node/Express backend, documented in the repo (API.md, BLOCKCHAIN.md).
The contract (Solidity)
// ERC-20 token for MetLabs Bank
contract MetLabsToken is ERC20 {
constructor() ERC20("MetLabs Token", "MLB") {
_mint(msg.sender, 1000000 * 10 ** decimals());
}
}
The honest part
A technical challenge with a hard time cap: the value is in shipping a working, documented full-stack + blockchain system in 60 hours, prioritising the critical path (auth, transfers, testnet contract) with mature libraries.
Stack
Next.js · TypeScript · Tailwind CSS · Node.js + Express · JWT · PostgreSQL · Solidity (ERC-20, Sepolia) · Ethers.js.