An example and guide showing how to build an FCL-compatible wallet extension on Flow with EVM support.
Read the docs »
What is FCL?
·
Report a Bug
This guide and sample is based on a winning FLIP Fest submission from the ZayCodes team.
This project consists of two main components:
- Extension (
packages/extension/
): Chrome extension wallet built with React + Vite - Harness (
packages/harness/
): Testing dApp built with Next.js, featuring dual Flow/EVM support with RainbowKit
- Node.js 18+
- pnpm (recommended package manager)
Run all commands from the root directory.
# Install pnpm globally if you haven't already
npm install -g pnpm
# Install dependencies
pnpm install
# Development build (with watch mode)
cd packages/extension
pnpm run dev
# Production build
pnpm run build
- In Chrome, navigate to
chrome://extensions
- Enable the "Developer mode" toggle
- Click on "Load unpacked"
- Select the
packages/extension/dist
folder
If you make changes to the code:
- Rebuild with
pnpm run build
(or usepnpm run dev
for watch mode) - Click the refresh icon in the Chrome extensions page
The harness is a Next.js web app with dual Flow/EVM support for testing wallet functionality.
# Development server
cd packages/harness
pnpm run dev
# Production build
pnpm run build
pnpm run start
Open http://localhost:3000 to view the harness.
The harness includes built-in support for Flow EVM networks:
-
Flow EVM Mainnet (Chain ID: 747)
- RPC:
https://mainnet.evm.nodes.onflow.org
- Explorer:
https://evm.flowscan.org
- RPC:
-
Flow EVM Testnet (Chain ID: 545)
- RPC:
https://testnet.evm.nodes.onflow.org
- Explorer:
https://evm-testnet.flowscan.org
- RPC:
The harness displays both Flow and EVM connection details side-by-side, making it easy to test both networks simultaneously.
See the full guide to building an extension on Flow here.