Skip to content

About

Non-custodial wallet for Boing Network — web app and browser extension

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

283 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👛 Boing Express

Your gateway to Boing. Boing Express is a non-custodial wallet designed for the Boing ecosystem. Keys are generated and stored only in your browser. Live at boing.express.

Status: public testnet — mainnet is not live. Boing Express is part of Boing Network — Quality, enforced by the protocol. See BRAND.md for the shared naming and tone.

Scope: Boing Express is a Boing-native wallet (window.boing, 32-byte AccountIds, Ed25519). It does not execute EVM transactions; for EVM chains use the cross-chain interface at Boing Finance.

👋 Everyday users: create or import a wallet, copy your 64-character address, get testnet BOING from the faucet, send, stake. The Chrome/Firefox extension adds “Connect wallet” for dApps.
🛠️ Developers: inject window.boing. Methods: boing_requestAccounts, boing_sendTransaction, DEX list RPCs. See docs/WALLET_CONNECTION_AND_API.md.
🛰️ Operators: VITE_BOING_TESTNET_RPC defaults to https://testnet-rpc.boing.network. Mainnet stays off until VITE_BOING_MAINNET_RPC is a distinct URL.

flowchart LR
  You[You] --> Web[🌐 boing.express]
  You --> Ext[🧩 Extension]
  Web --> Enc[🔐 Encrypted keys in browser]
  Ext --> Enc
  Ext --> Inject[window.boing]
  Inject --> DApp[dApps]
  Enc --> RPC[testnet-rpc.boing.network]
  DApp --> RPC
Loading

✨ Features

  • Boing Network: Ed25519 addresses (32-byte AccountId, 64-char hex), send/receive BOING, testnet faucet, staking (Bond/Unbond/ClaimUnbond)
  • Assets / NFTs: BOING balance plus reference-NFT watchlist, recent-block discovery, and transfer_nft (see docs/DEVELOPMENT.md). Official NFT↔fungible companion peers are read from the on-chain registry and shown under matching collections — BOING-LINKED-NFT-TOKEN.md. Optional on-chain builder attested signal (separate registry; read-only when surfaced) — BOING-BUILDER-ATTESTATION.md
  • Signing: BLAKE3 signable hash + Ed25519; bincode layout matches boing-primitives
  • Security: Client-only key generation, password-encrypted storage (AES-GCM), keys never sent to any server
  • Recovery phrase: new wallets get a 24-word BIP-39 phrase (import accepts 12 or 24); SLIP-0010 Ed25519, no new dependencies. Raw-key accounts keep working unchanged. Shown again only after your password. docs/RECOVERY_PHRASE_DESIGN.md
  • Extension: Injects window.boing for dApp connect; Connected sites management in the popup

🧰 Tech stack

  • React 18 + TypeScript + Vite (static build → dist/)
  • @noble/ed25519 and @noble/hashes (BLAKE3)
  • Cloudflare Pages; optional RPC gateway Worker (docs/RPC_GATEWAY.md)

🚀 Quick start

pnpm install
pnpm dev

Open http://localhost:5173. Production build: pnpm build → dist/.

⚙️ Environment

Variable Description
VITE_BOING_TESTNET_RPC Testnet JSON-RPC (default https://testnet-rpc.boing.network)
VITE_BOING_MAINNET_RPC Optional mainnet JSON-RPC. Leave unset until official mainnet is published

Set these in Cloudflare Pages Build → Environment variables (baked in at build time).

☁️ Cloudflare (boing.express)

  • Pages project, build pnpm build, output dist, domain boing.express
  • GitHub Actions deploys on main. Secrets: CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_API_TOKEN
  • Optional RPC gateway: pnpm run gateway:deploy — see docs/RPC_GATEWAY.md
pnpm build
npx wrangler pages deploy dist --project-name=boing-wallet

🧩 Browser extension

pnpm run build:extension

Chrome: chrome://extensions → Developer mode → Load unpacked → extension/ folder.
Firefox: about:debugging → Load Temporary Add-on → extension/manifest.json.

Recommended pre-review copy: pnpm run build:extension:unpacked → load extension-unpacked/. Store zip: pnpm run zip:extension. Listing checklist: docs/EXTENSION_STORE.md.

📡 Boing Network details

  • Address: 32-byte AccountId = Ed25519 public key, 64 hex chars (optional 0x)
  • Submit: hex(bincode(SignedTransaction)) via boing_submitTransaction
  • Explorer: https://boing.observer/account/<address>
  • Alignment: THREE-CODEBASE-ALIGNMENT.md

💬 Community

Questions or feedback? Join the Boing Network Discord.

📚 Docs in this repo

Full index with "I want to..." shortcuts: docs/README.md.

Doc For
docs/WALLET_CONNECTION_AND_API.md window.boing provider API
docs/BOING-EXPRESS-WALLET.md Provider / RPC-forwarding reference (the canonical product spec of the same name is in boing.network)
docs/DEVELOPMENT.md Environment, CI, Chrome Web Store checklist
docs/TESTING.md Unit, web and extension e2e tests
docs/NETWORK_SETUP.md Network config, runtime node check, signing chain id
docs/RPC_GATEWAY.md Optional HTTPS JSON-RPC Worker
docs/SECURITY.md Security model, auto-lock, CSP
docs/EXTENSION_STORE.md Store listing copy and screenshots
docs/WEB-SIGNING-FLOW.md Web signing (/connect) flow for dApps
docs/BULK-TRANSFER.md Bulk mode in the Transfer tab
docs/PUT-BLOB-PUBLISH-SESSION.md boing_requestPutBlobSession publish sessions
docs/RECOVERY_PHRASE_DESIGN.md Recovery phrase decision and implementation
docs/DESIGN_SYSTEM.md UI tokens, following BRAND.md
docs/ASSETS_AND_FONTS.md Brand assets and fonts
docs/CODEBASE-ALIGNMENT.md Local summary of cross-repo URLs
docs/HANDOFF.md Portal / protocol handoff and backlog
docs/BOING_NETWORK_WALLET_IMPLEMENTATION_CHECKLIST.md Wallet implementation checklist
Upstream BOING-LINKED-NFT-TOKEN.md On-chain NFT↔token link registry (SDK / dApp discovery)
Upstream BOING-BUILDER-ATTESTATION.md On-chain builder attestation registry (builder signal; companions remain project authority)

Everyday use and safety

  • Backup check: new wallets default to a 24-word recovery phrase (BIP-39, SLIP-0010 Ed25519 path m/44'/1112492366'/0'/0'/0'); you must confirm three words before continuing. Choosing "Private key" instead keeps the classic check (retype the last 6 characters). Import accepts a 12 or 24 word phrase or a raw key. See docs/RECOVERY_PHRASE_DESIGN.md.
  • Plain-language errors: RPC and node errors are translated (for example "insufficient balance", "nonce too low", "wrong network").
  • Wrong-network guard: a banner appears and broadcasting is refused when the node is on a different chain than the one you selected.
  • Auto-lock: the extension locks after 15 idle minutes by default (Settings).
  • dApp prompts: explicit "Connect to this site?" and signing approvals, with warnings for suspicious origins.

More: docs/SECURITY.md, docs/NETWORK_SETUP.md, docs/TESTING.md.

Scripts

Command Purpose
pnpm dev Vite dev server on http://localhost:5173
pnpm build Type check and build dist/ (runs prebuild: chain defaults and brand assets)
pnpm preview Preview the production build
pnpm run build:extension Build the MV3 extension into extension/
pnpm run build:extension:load Build the extension and prepare it for "Load unpacked"
pnpm run build:extension:unpacked Build and copy the unpacked extension
pnpm run zip:extension Zip the built extension for upload
pnpm run typecheck:ext Type check the extension sources
pnpm test Unit tests (Vitest)
pnpm test:e2e:web Web end-to-end tests (Playwright)
pnpm test:e2e Extension end-to-end tests (builds the extension first; see docs/TESTING.md for EXTENSION_E2E flags)
pnpm run fixtures:sync / fixtures:check Sync / verify chain-metadata fixtures against boing.network
pnpm run generate:chain-defaults / generate:brand-assets Regenerate chain defaults / brand assets
pnpm run pages:deploy Build and deploy to Cloudflare Pages
pnpm run gateway:dev / gateway:deploy Run / deploy the optional RPC gateway Worker

Maintainers also have publish:extension, prepare:extension, copy:extension:unpacked (see docs/DEVELOPMENT.md).

Requires Node 20+ and pnpm 9 (corepack enable).

License

MIT

About

Non-custodial wallet for Boing Network — web app and browser extension

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages