Skip to main content

Wallet Overview

EXTRA WALLET is a next-generation browser wallet designed for security, flexibility, and extensibility. It moves beyond the traditional "single account" model to offer a powerful portfolio management system.

Architecture & Hierarchy​

The wallet is organized into a three-level hierarchy to help you manage diverse assets across multiple networks:

  1. Portfolio: The top-level container protected by a password. It can include multiple wallets (e.g., Personal, Business, Cold Storage).
  2. Wallet: A container within a portfolio that is linked to a specific mnemonic phrase. From this single mnemonic, the wallet can derive and manage accounts across multiple blockchains (e.g., Bitcoin, Ethereum, Solana).
  3. Account: An entity related to a blockchain-specific address derived from a wallet’s mnemonic.

Dashboards​

Portfolio Dashboard
Gives you a bird's-eye view of your entire portfolio's performance, aggregated across all wallets and networks.

Portfolio Dashboard

Wallet Dashboard
Drill down into a specific wallet to see asset breakdowns and transaction history for that specific mnemonic phrase.

Wallet Dashboard

App Store & Extensions​

EXTRA WALLET is built on a modular extension architecture. Instead of bloating the core wallet with every possible feature, we offer an App Store where you can enable only what you need.

  • Lazy Loading: Extension code is loaded only when you enable it. If an extension is disabled, its code is never fetched or executed in your browser.
  • Security: This approach minimizes the attack surface. Potentially unsafe or experimental third-party extensions cannot run code in your wallet unless you explicitly turn them on.

πŸ‘‰ Explore the App Store Extensions docs

Key Features​

Offline Mode​

The wallet automatically detects when your network connection is lost and switches to a limited offline mode. In offline mode you can:

  • Safely import or create wallets to the portfolio and export them online using the Wallet Expander
  • Encrypt and decrypt QR codes
  • Securely sign transactions exported from online wallet, and download them

πŸ‘‰ Explore the Offline Wallet docs

External Wallets​

You aren't limited to keys generated inside EXTRA WALLET. You can connect external wallets (Ledger, MetaMask, Trust Wallet, etc.) to manage them within the same unified interface.

EVM Testnet Support​

EXTRA WALLET comes with native support for EVM testnets, making it easy to switch between Mainnet and Testnet environments for development and testing.

Security​

Security is the core of EXTRA WALLET. We use a split security model where all sensitive operations (key management, signing) happen in an isolated Signer application running in a separate iframe.

  • The main wallet UI never sees your private keys.
  • All secrets are encrypted and stored only in the Signer's isolated storage.

πŸ‘‰ Read the full Security Model

Developer Info​

Simple Start​

  1. Install dependencies: Run nvm install (if needed) and nvm use, then yarn in the root directory.
  2. Configure Environment: Fill in .env:
    • VITE_API_URL: https://api-staging.extrawallet.app (see API docs)
    • VITE_URL_IFRAME: http://localhost:5001 or the production URL.
    • PRIVATE_KEY: EVM private key for build signatures.
    • VITE_BUILD_TARGET: offline or online.
    • VITE_WALLET_CONNECT_PROJECT_ID: Your WalletConnect ID.
  3. Start Signer: If using localhost for the iframe, ensure the signer is running on port 5001.
  4. Run App: yarn dev.
Developer Rule

All sensitive operations (mnemonic access, signing) must be implemented inside the signer iframe. The main app never touches raw private keys.

Build and Test​

To build the application for production:

# Build for online mode
yarn build:online

# Build for offline mode
yarn build:offline

What happens during build:

  1. Module Parsing: Scans module.config.ts files to determine which modules to include.
  2. Core Build:
    • Copies files to a temporary build directory.
    • Computes checksums and signatures of core files.
    • Generates public/build.manifest.json or public/offline-build.manifest.json.
  3. App Build:
    • Bundles the application using Vite.
    • Outputs to the dist directory.

Preview: Run yarn preview to serve the production build locally.

  • Built and maintained by the EXTRA WALLET team.
  • Source: EXTRA WALLET