Skip to content

bbachain/bbawallet-extension

Repository files navigation

BBA Wallet Extension

A secure, user-friendly browser extension wallet for BBAChain - providing seamless interaction with the BBAChain ecosystem directly from your browser.

πŸš€ About BBA Wallet

BBA Wallet Extension is a non-custodial cryptocurrency wallet that enables users to:

  • Store and manage BBA tokens securely on BBAChain network
  • Connect to dApps and decentralized services on BBAChain
  • Send and receive transactions with an intuitive interface
  • Import/Export wallets using standard BIP39 mnemonic phrases
  • Multi-account support with HD wallet derivation (BIP44)
  • Transaction history and portfolio tracking

Built with modern web technologies and following industry security standards, BBA Wallet provides a bridge between users and the BBAChain ecosystem.

πŸ› οΈ Technology Stack

  • Framework: Plasmo - Modern browser extension framework
  • Frontend: React + TypeScript
  • Styling: Tailwind CSS
  • Crypto: BIP39/BIP32 HD wallet implementation
  • Blockchain: BBAChain Web3.js integration

πŸ“¦ Installation & Development

Prerequisites

  • Node.js 16+ and npm/pnpm
  • Modern browser (Chrome, Firefox, Edge, Safari)

Development Setup

  1. Clone the repository

    git clone https://github.com/your-org/bbawallet-extension.git
    cd bbawallet-extension
  2. Install dependencies

    pnpm install
    # or
    npm install
  3. Start development server

    pnpm dev
    # or
    npm run dev
  4. Load extension in browser

    • Chrome: Navigate to chrome://extensions/, enable "Developer mode", click "Load unpacked" and select build/chrome-mv3-dev
    • Firefox: Navigate to about:debugging#/runtime/this-firefox, click "Load Temporary Add-on" and select any file in build/firefox-mv2-dev

The extension will auto-reload when you make changes to the source code.

πŸ—οΈ Building for Production

Build for All Browsers

pnpm build
# or
npm run build

Build for Specific Browsers

Chrome (Manifest V3)

pnpm build --target=chrome-mv3

Firefox (Manifest V2)

pnpm build --target=firefox-mv2

Edge

pnpm build --target=edge-mv3

Safari

pnpm build --target=safari-mv3

The production builds will be available in the build/ directory, ready for packaging and store submission.

πŸ“ Project Structure

bbawallet-extension/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ onboarding/     # Wallet setup flows
β”‚   β”‚   β”œβ”€β”€ Models/         # Modal components
β”‚   β”‚   └── TokenList/      # Token management
β”‚   β”œβ”€β”€ contents/           # Content scripts
β”‚   β”œβ”€β”€ utils/              # Utility functions
β”‚   β”‚   β”œβ”€β”€ wallet.ts       # HD wallet operations
β”‚   β”‚   └── crypto.ts       # Encryption/decryption
β”‚   β”œβ”€β”€ services/           # Blockchain services
β”‚   β”œβ”€β”€ redux/              # State management
β”‚   └── types/              # TypeScript definitions
β”œβ”€β”€ assets/                 # Static assets
└── build/                  # Built extensions

πŸ”§ Key Features

Wallet Management

  • HD Wallet: BIP44 derivation path m/44'/829'/0'/0/{index}
  • Mnemonic Support: 12-word seed phrase generation and recovery
  • Multi-Account: Unlimited account creation from single seed
  • Secure Storage: Encrypted local storage with password protection

Blockchain Integration

  • BBAChain Network: Native support for BBA token and ecosystem
  • Transaction Signing: Secure transaction creation and signing
  • dApp Connectivity: Standard wallet provider interface
  • RPC Management: Configurable RPC endpoints

User Experience

  • Intuitive UI: Clean, modern interface design
  • Transaction History: Complete transaction tracking
  • Portfolio View: Token balances and values
  • Settings Management: Customizable preferences

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Getting Started

  1. Fork the repository on GitHub
  2. Create a feature branch
    git checkout -b feature/your-feature-name
  3. Make your changes following our coding standards
  4. Test thoroughly across different browsers
  5. Submit a pull request with detailed description

Development Guidelines

Code Style

  • Use TypeScript for type safety
  • Follow ESLint and Prettier configurations
  • Write meaningful commit messages
  • Add JSDoc comments for public functions

Testing

  • Test on Chrome and Firefox browsers
  • Verify wallet operations work correctly
  • Test dApp connectivity scenarios
  • Check responsive design on different screen sizes

Security

  • Never commit private keys or sensitive data
  • Follow secure coding practices
  • Validate all user inputs
  • Use proper error handling

Reporting Issues

Found a bug or have a feature request? Please:

  1. Check existing issues first
  2. Use our issue templates
  3. Provide detailed reproduction steps
  4. Include browser and extension version
  5. Add screenshots if applicable

Development Scripts

# Development
pnpm dev              # Start development server
pnpm build            # Production build
pnpm lint             # Run linter
pnpm type-check       # TypeScript checking

# Utilities
pnpm clean            # Clean build artifacts
pnpm format           # Format code with Prettier

πŸ”’ Security

Security is our top priority. BBA Wallet Extension:

  • Never stores private keys in plain text
  • Uses industry-standard encryption (AES-256)
  • Implements secure HD wallet derivation
  • Validates all transactions before signing
  • Isolates extension context from web pages

Responsible Disclosure

If you discover a security vulnerability, please:

  1. Do not create a public issue
  2. Email security details to: [security@bbachain.com]
  3. Allow reasonable time for response
  4. Coordinate public disclosure timing

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

BBA Wallet Extension is provided "AS IS", without warranty of any kindβ€”express or impliedβ€”including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose and non‑infringement.

You use this software at your own risk. In no event shall the authors, copyright holders, or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, loss of data, loss of digital assets such as tokens or coins, or any financial loss) arising out of or in connection with the use or inability to use the software, even if advised of the possibility of such damages.

The extension may interact with third‑party dApps or services that are outside the control of the development team. Any risks resulting from accessing or using such services rest solely with you, the user. We do not represent, endorse, or warrant any third‑party dApp, exchange, or service that may be linked or integrated.

Compliance with all applicable laws and regulations (including, without limitation, tax obligations, securities laws, and foreign‑exchange controls) is the sole responsibility of the user.

By installing and/or using this software, you acknowledge that you have read, understood, and agree to be bound by the terms of this disclaimer.

🌐 Links

About

BBA Wallet for BBAChain

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •