brc100.org

THE WALLET ↔ APP STANDARD

One interface.
An open world.

A common language for applications and BSV wallets. Build with payments, identity, and cryptography—while keeping wallet choice in the user’s hands.

Open specificationVendor-neutralPermission-aware
A COMMON LANGUAGE01 / 03
YOUR APPLICATION
wallet.getPublicKey({ identityKey: true })
BRC-100One standard interface
OPEN
Desktopwallet
Browserwallet
Your choiceof wallet

Your app requests. The wallet authorizes.
Interface illustration · no requests are sent.

LESS COUPLING. MORE POSSIBILITY.

Build for an interface.
Leave room for choice.

More than a wallet balance.

BRC-100 defines how an application asks a wallet to act. The wallet handles the keys, permissions, and implementation.

01

Payments & transactions

Create actions, accept incoming transactions, and organize outputs into baskets. Build the experience your application needs.

createActionlistOutputs
02

Keys & cryptography

Request public keys, sign data, and encrypt messages within a protocol context. Private key handling stays with the wallet.

getPublicKeyencrypt
03

Identity & certificates

Work with identity certificates and selectively reveal fields to a verifier. Ask for the information your application actually needs.

acquireCertificateproveCertificate

The interface is the agreement. Apps target a common API; wallets can have different user experiences, storage, and service choices. Check support and permission behavior in the implementations you target.

Explore the specification (opens in a new tab)

Small calls.
Big building blocks.

Get a feel for the interface. Choose an operation, edit the example, and copy the code into your project.

WALLET OPERATIONS Full API reference (opens in a new tab)
app.ts
import { WalletClient } from "@bsv/sdk";

const wallet = new WalletClient();

const { publicKey } = await wallet.getPublicKey({
  identityKey: true
});

Examples only. No wallet connection, transaction, or payment is made here.

Start with a few lines.
Build something useful.

Use the TypeScript SDK’s WalletClient to speak BRC-100. Pair your app with a compatible wallet, handle permissions and errors, then build outward.

Open the SDK docs (opens in a new tab)
01

Install the SDK

npm install @bsv/sdk
02

Connect through the interface

Create a WalletClient, then use the methods your app needs. Test the transport with your chosen wallet.

03

Keep the user in the loop

Make requests deliberate. Explain what your app needs, handle declined permissions, and confirm the network before transacting.

A wallet of your choice.
Apps worth exploring.

Meet wallets and apps from across the BSV ecosystem. Integration labels help you find the right starting point for your project.

Wallets

Reference implementations first. Other wallets A–Z.

Apps to explore

A–Z. Follow each app’s guide to connect a wallet.

Help the directory grow.

Know an app or wallet that belongs here? Add its name, official link, and integration details in a pull request.

Add an app or wallet (opens in a new tab)

From the standard
to your first app.

Go straight to the sources: the specification, reference code, wallet implementations, and developer tools.

Before you build.

Is BRC-100 a wallet, a token, or a company?

It’s an open wallet-to-application interface specification for BSV. Wallets implement it; applications use it. BRC-100 itself is not a wallet product or a token.

Do I need a wallet to use this explorer?

No. This explorer displays code and request shapes locally. To run that code in an application, use the SDK with a compatible wallet. The wallet may request user authorization.

Does one interface make every wallet identical?

The API gives applications a common contract. Wallet UX, supported transports, permission policies, storage, backup, and recovery can differ. Test against your target implementations rather than assuming identical behavior.

Where can I ask questions or contribute?

Start with the BRCs repository (opens in a new tab) for specification discussions. For an implementation issue, use that project’s repository and include a minimal reproducible example.

OPEN INTERFACES MAKE ROOM FOR IDEAS.

What will you build?

Start with BRC-100