Simple Wallet is a publicly available Next.js boilerplate for building a non-custodial Ethereum wallet web app, using Ethers.js for blockchain interaction and ChakraUI for the interface.
What is Simple Wallet?
Simple Wallet is a starter template that generates a running Ethereum wallet web application from an Infura API token and a random encryption key. It runs on Next.js and serves a client-side interface on localhost:3000 where users can create a wallet and manage ETH. The project is authored by jonallamas and hosted on GitHub with a contribution guide and a Figma UI kit.
Key Features
- Next.js framework — React-based framework that provides server-side rendering and file-based routing for the wallet app.
- ChakraUI styling — Component library offering pre-built, accessible UI components and a theming system.
- Ethers.js client — Library that handles Ethereum wallet creation, transaction signing, and contract interactions.
- Infura API integration — Requires an INFURA_TOKEN_API environment variable to connect to Ethereum nodes through Infura.
- crypto-js encryption — Uses a CRYPTO_SECRET_KEY environment variable to encrypt and decrypt sensitive data like private keys.
- Figma UI Kit — Design files are linked for developers who want to match the original interface mockups.
- Paradigm Faucet link — Includes a direct link to the Paradigm faucet to obtain test ETH on supported networks.
Who is it for?
- Web3 developers: quick way to get a wallet UI running locally with real Ethereum testnet connectivity via Infura.
- DApp frontend engineers: useful as a reference implementation for integrating Ethers.js with React and Next.js.
- Blockchain educators: can use the minimal codebase to explain non-custodial wallet mechanics and environment-based configuration.
Use cases
- Prototyping a wallet product: start from this template and extend it with token transfers or dapp browser functionality.
- Learning Ethers.js: inspect how the client library is wired into Next.js pages and API routes.
- Testing with a faucet: run the app locally, create a wallet, and use the Paradigm faucet link to get test ETH for experiments.
How does it work?
The README lists a three-step setup: clone the repository, create an .env.local file containing INFURA_TOKEN_API and CRYPTO_SECRET_KEY, and run yarn run dev. After that, the application becomes available at http://localhost:3000. The app then uses the Infura API for blockchain data and crypto-js for local encryption and decryption.
FAQ
What environment variables does Simple Wallet need?
The template requires two environment variables in an .env.local file: INFURA_TOKEN_API, which is an API key from Infura, and CRYPTO_SECRET_KEY, a random string used to encrypt and decrypt data. Both are read at runtime.
Does Simple Wallet support Ethereum mainnet or testnets?
The template connects to Ethereum via Infura, so it can work with any network that Infura supports, including mainnet and testnets. The README links to the Paradigm faucet for test ETH, implying testnet usage is common.
Can I contribute to Simple Wallet?
Yes. The repository includes a CONTRIBUTING.md file linked from the README, which describes the contribution process. The project is hosted on GitHub and accepts contributions.
What is the tech stack?
The stack is Next.js for the web app, ChakraUI for style components, Ethers.js for client-side blockchain interaction, and Infura for blockchain API access. The repository topics also list crypto-js, react-feather, and reactjs.








