Getting a Wallet

Start with Metanet Client on desktop or Explorer on mobile, fund from an exchange through Mountaintops, and connect through portable BRC-100 examples.

Read as Markdown

A BRC-100 wallet is the developer entry point for modern BSV apps. It holds the user's keys, mediates permissions, manages baskets and certificates, and gives applications a standard API instead of forcing every app to handle private keys.

For Babbage users and builders, start with Metanet Client on desktop or Metanet Explorer on iOS/Android. The shared examples use WalletClient and BRC-100 so they remain portable to other compatible wallets.

Wallet Choices

Wallet or toolkitBest forNotes
Metanet ClientDesktop use and web-app development on macOS, Windows and LinuxKeep the wallet running alongside your desktop browser.
Metanet ExplorerMobile browsing and wallet-enabled websitesOpen the website inside Explorer on iOS or Android.
BSV DesktopLocal desktop development and reference BRC-100 behaviorInstall the latest release and keep it running while testing apps.
BSV BrowserBrowser and mobile-oriented BRC-100 flowsUseful when you need extension/browser style app interaction.
Wallet ToolboxBuilding or operating a wallet backendValidate your actual implementation and version.
Legacy send/receive walletsHolding or transferring coinsUsually not enough for BRC-100 apps because they do not expose the app permission interface.

Install and Fund Metanet

  1. Follow Client getting started or Explorer getting started.
  2. Complete onboarding or recover your existing account. Save recovery material and protect your wallet data.
  3. To receive from an exchange that requires a traditional BSV address, follow the Mountaintops funding guide. Do not enter a Metanet identity key into an exchange address field.
  4. Check the profile and network before connecting apps or moving funds.

Other compatible wallets remain useful for portability testing. Follow their own installation instructions and run only one desktop wallet bridge at a time.

Treat wallet recovery data like production secrets. Apps should never ask users to paste a seed, recovery phrase, or private key.

Understand the App Connection

BRC-100 applications request capabilities from the wallet. The user approves or rejects those capabilities, and the app receives only the permissioned result.

Common capabilities include:

  • reading the user's identity key,
  • creating or signing actions,
  • listing or internalizing outputs in baskets,
  • encrypting, decrypting, signing, and verifying data,
  • creating HMACs,
  • presenting certificates or selected certificate fields,
  • discovering network state such as height, headers, and wallet version.

Connect From an App

Install the SDK (4.0.0 was the published version checked October 26, 2026; current packages require Node.js 22+):

1npm install @bsv/sdk@4.0.0
Copied!

Create a wallet client:

1import { WalletClient } from '@bsv/sdk'
2
3const wallet = new WalletClient('auto')
4await wallet.waitForAuthentication()
5
6const { publicKey } = await wallet.getPublicKey({ identityKey: true })
7console.log('Connected identity key:', publicKey)
Copied!

Use auto for normal browser and local development flows. Pass a specific substrate only when a guide or wallet implementation requires it. Pass an originator only when you are deliberately identifying a different requesting origin than the current app.

Verify Portability

Before shipping, test the same app flow against more than one BRC-100 wallet path where possible:

  1. Connect and authenticate.
  2. Request only the permissions the feature needs.
  3. Confirm the wallet prompt is understandable.
  4. Revoke permissions and reconnect.
  5. Run the flow with a low-value funded wallet.

Next Steps

Was this page helpful?