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.

Explore more projects

View all