Skip to content

Latest commit

Β 

History

216 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bey Wallet ⚑️

License: Apache 2.0 Expo React Native Cashu

Modular, Local-First Ecash Wallet for Bitcoin & Nostr.

Bey Wallet is a premium, privacy-centric ecash wallet built on the Cashu protocol. It brings together high-speed Bitcoin payments and the censorship-resistant identity of Nostr in a fluid, modern interface.


πŸ“Έ Preview

image image image image image image

✨ Features

πŸ’° Cashu (Ecash) & Bitcoin

  • Next-Gen Standards: Support for V3 and V4 Cashu tokens (NUT-00, NUT-11 P2PK).
  • On-Chain Bitcoin: Fund your wallet via Bitcoin addresses and melt ecash to pay any on-chain transaction directly.
  • Mint Management: Add, trust, and monitor multiple community mints from a central dashboard.
  • Offline NFC Payments: Send and receive ecash seamlessly by tapping phones, optimized automatically for various coin/proof subsets.
  • Total Control: Manage balances across different mints with real-time audit logs and multi-currency fiat conversions.

πŸ†” Nostr Integration

  • Built-in Identity: Generate your npub directly from your wallet seed and claim your free @bey.cash NIP-05 identifier.
  • Social Payments: Send ecash locked to any receiver's Nostr public key (P2PK) for ultimate security.
  • Direct Messages (DMs): Send, receive, and request Ecash instantly via encrypted Nostr Direct Messages (NIP-04/NIP-17). Payments arrive and are detected automatically in the background.
  • Contact Management: Built-in address book to save and resolve your friends' Npubs and aliases.

πŸ›‘οΈ Privacy & Security

  • Local-First Design: Your data stays on your device. Period. Powered by high-performance SQLite.
  • Secure Enclave: Your recovery phrase and private keys are protected by hardware-level security.
  • Biometric Guard: Face ID, Touch ID, or Passcode protection for every sensitive operation.
  • Privacy Mode: Long-press balance to mask/unmask your funds in public.
  • Custom display unit: Configurable options to show SATS, local FIAT, or enable the β‚Ώ symbol mode.

πŸ’Ύ Reliability & Optimization

  • Deterministic Recovery: Restore your entire wallet balance across all mints with just 12 words.
  • Optimize Wallet: Consolidate fragmented ecash proofs to optimize wallet speed and transaction compilation.
  • Smart Backups: Export and import complete wallet state via encrypted .bey files.

πŸ› οΈ Tech Stack


πŸ—οΈ Development

Prerequisites

  • Node.js
  • Yarn 4.5.0 (pinned through the packageManager field)
  • Bun for the cache-clearing development command
  • Expo CLI
  • EAS CLI (npm install -g eas-cli)

Quick Start

  1. Clone the repo:
    git clone https://github.com/Bey-Wallet/BeyWallet.git
    cd BeyWallet
  2. Install dependencies:
    yarn install
  3. Start the app:
    yarn start

Project Structure

The source tree is organized by ownership so routes stay small and product logic is easy to locate:

src/
β”œβ”€β”€ app/                 # Thin Expo Router entry files
β”œβ”€β”€ features/            # Screens and feature-owned components
β”‚   └── payments/        # Send, receive, mint, melt, and swap flows
β”œβ”€β”€ shared/              # Reusable UI, icons, hooks, utilities, and theme
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ wallet/         # Cashu and wallet orchestration
β”‚   β”œβ”€β”€ platform/       # Device and operating-system integrations
β”‚   └── api/            # HTTP and relay-backed integrations
β”œβ”€β”€ state/               # Zustand stores
└── storage/sqlite/      # SQLite schema, migrations, and repositories

Internal imports use the ~/* alias. See docs/folder-structure.md for ownership and dependency rules.

Validation

Run the complete local validation suite before submitting a change:

yarn validate

The command runs TypeScript checking, the non-interactive Jest suite, and repository structure checks. Individual commands are also available:

yarn typecheck
yarn test:ci
yarn check:structure
yarn format:check

Building for Production

Bey Wallet uses EAS for builds. To build the production APK:

eas build -p android --profile production

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines to get started.


βš–οΈ License

Distributed under the Apache License, Version 2.0. See LICENSE for more information.


Made with ❀️ for the Bitcoin & Nostr communities.

About

Modular, Local-First Cashu & Nostr Wallet. Direct Bitcoin ecash payments with hardware-level security.

Topics

Resources

Contributing

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages