Skip to content

FluxWallet/flux-web-wallet

Repository files navigation

Flux Wallet

Self-custodial smart wallet with 2FA — as easy as a Google account, secured by zero-knowledge proofs.

Flux Wallet is an ERC-4337 smart contract wallet that brings familiarity to self-custody. It replaces seed phrases and private key anxiety with Google Authenticator 2FA, social recovery, and a clean web app — all verified through zero-knowledge proofs so your secrets never leave your device.

Built for the ETH Next Billion Fellowship — because the next billion users won't use crypto until it feels like an app, not a terminal.


The Problem

  • Self-custodial wallets lose billions of dollars every year to hacks, phishing, and user error
  • 60%+ of web3 users fear their wallet will be compromised
  • Seed phrases are not a user interface — they are a liability
  • Cold wallets cost $50–$200 and are impractical for daily use
  • Most users keep only 20% of their portfolio in hot wallets because they don't trust them
  • dApp interactions expose private keys on every single transaction

The Solution

Flux Wallet solves all of this at the smart contract layer:

Problem Flux Fix
Private key compromise 2FA via Google Authenticator — every transaction needs a TOTP code
Seed phrase anxiety Social recovery — recover your wallet with trusted guardians
Sign-everything risk Session keys — authorize once, use without re-signing
Key loss = funds lost No seed phrase required — recover via guardians
Complicated UX Web app interface — familiar, clean, works like a bank app

How It Works

User opens Flux Web App
        │
        ▼
Deploy smart wallet (ERC-4337 account abstraction)
        │
        ▼
Set up 2FA — scan QR code with Google Authenticator
        │
        ▼
Merkle tree of future OTPs generated client-side
        │
        ▼
To send: enter recipient, amount, and 6-digit TOTP code
        │
        ▼
ZK proof verifies OTP off-chain → transaction authorized on-chain
        │
        ▼
Gas paid via ERC-4337 bundler — no ETH needed in wallet

The key innovation: your TOTP secret never touches the network. OTPs are verified via ZK proofs against a Merkle root stored on-chain. The secret stays on your device, generated by Google Authenticator.


Features

  • OTP 2FA via ZK Proofs — verify transactions with Google Authenticator codes using zero-knowledge circuits (Circom + SnarkJS)
  • Social Recovery — designate guardians who can help recover your wallet if you lose access
  • ERC-4337 Account Abstraction — gas sponsorship, batched transactions, no ETH required for gas
  • Smart Contract Wallet — fully customizable logic (recovery, session keys, spending limits)
  • On-ramp via Stripe — buy crypto directly into your wallet with fiat
  • WalletConnect — connect to any dApp through your smart wallet
  • Push notifications — real-time alerts for wallet activity (coming soon)

Tech Stack

Layer Technology
Frontend Next.js 12, React 18, TailwindCSS, daisyUI
Wallet Connection Wagmi 0.6, RainbowKit, Web3Auth
Smart Contracts Solidity, Hardhat, ERC-4337
Zero Knowledge Circom, SnarkJS
Account Abstraction EntryPoint v0.6, Custom Wallet API
2FA TOTP (Google Authenticator), Poseidon Hash
Network Ethereum (Goerli / Sepolia), Gnosis Chiado
Infrastructure IPFS (Infura), Stripe OnRamp

Smart Contract Deployments

Ethereum Sepolia

Contract Address
EntryPoint 0x43ccc7277E12d6dD3363B9897e0cf5BB22e93735
FluxWalletFactory 0xfaf2900c2063573f2faa347d0f5e735f403eb66a
SampleRecipient 0x72c186Fbff451a87E2b538219BC6Ffefd19F7aEA
SignerAddress 0xdeaa150597535Eed8c95Ad090757815F1B9Da15d

Etherscan

Gnosis Chiado

Contract Address
EntryPoint 0xf3E04ec30d589cF4Ec62CEc425FC0d1D6DA3596B
FluxWalletFactory 0x33a15964328a3419ec55f6192fccb81a3e3861e2
OTPFactory 0x72c186Fbff451a87E2b538219BC6Ffefd19F7aEA
Verifier 0x2cDc47369bb86C05198Ea2CFF8c548b73b919Bb1

Screenshots

Main Dashboard Dashboard
Connecting Wallet Connect
Deploying Wallet Deploy
2FA Setup 2FA
Send with 2FA Send
Guardian Setup Guardians
Recovery Dashboard Recovery
Start Recovery Recover

Getting Started

git clone https://github.com/your-org/flux-wallet.git
cd flux-web-wallet
yarn install
cp packages/app/.env.example packages/app/.env.development
# fill in your API keys
yarn dev

Open http://localhost:3000 in your browser.


Architecture

┌──────────────────────┐
│   Next.js Web App    │
│  ┌────────────────┐  │
│  │  Wallet UI     │  │
│  │  Auth Flow     │  │
│  │  Send/Receive  │  │
│  │  Recovery UI   │  │
│  └───────┬────────┘  │
│          │            │
│  ┌───────▼────────┐  │
│  │  ZK Circuit    │  │
│  │  (Circom)      │  │
│  │  Witness Gen   │  │
│  │  SnarkJS Prove │  │
│  └───────┬────────┘  │
└──────────┼───────────┘
           │
┌──────────▼───────────┐
│  ERC-4337 Bundler    │
│  (Goerli/Sepolia)    │
└──────────┬───────────┘
           │
┌──────────▼───────────┐
│  Flux Smart Wallet   │
│  ┌─────────────────┐ │
│  │  OTP Verifier   │ │
│  │  Social Recovery│ │
│  │  Session Keys   │ │
│  │  Dead Man Switch│ │
│  └─────────────────┘ │
└──────────────────────┘

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors