Shared Bitcoin Treasury

Vault definition

Pubkey vault. A t-of-n P2WSH multisig defined by raw compressed pubkeys. It derives a single on-chain address. Good for coordination-only use where the actual wallet lives in an external coordinator. The web app never touches Bitcoin private keys.
About this vault: the web app never signs Bitcoin transactions — you sign in a coordinator such as Sparrow Wallet or Nunchuk. The Nostr key you use for coordination does not need to be the same as any Bitcoin key.

Deterministic ID: sha256(canonical descriptor)[:32]. Any co-signer who imports the same vault gets the same ID automatically. Use Share vault to send the exact definition to a peer.

Diagnostics

Import private key

Paste an nsec1… or 64-character hex private key.

Imported keys stored in localStorage are accessible to anything running in this browser. Only use this on a device you trust.

Export private key

Anyone with this key controls your identity. Do not share it. Store it offline.

Connect to bunker (NIP-46)

Paste a bunker:// URL from your remote signer (nsec.app, Amber, etc.).

New entry

Export address book

Decrypt import

This file is encrypted. Enter the password used at export time.

New proposal

Import vault

Paste either the JSON a cosigner shared (via the Share vault button), or a full wsh(sortedmulti(...)) descriptor with xpubs and origin info. The vault is only trusted after its ID is re-derived and its address rebuilt from scratch.

Edit vault members

Changing the member set or threshold rebuilds the vault. The descriptor, the P2WSH address, and the vault ID all change. Any proposals published under the old ID will no longer be visible to you. If the old address already holds funds, they still belong to the old descriptor — this app will simply stop tracking that address.

Confirm

PSBT QR exchange

Sign with Ledger

Connect your Ledger over USB, open the Bitcoin app, and set it to Yes when asked to allow the manager.

Why a wallet policy ID? Ledger requires that P2WSH multisig wallets be registered with the device before signing. Register the vault descriptor in Ledger Live (Accounts → Add account → Bitcoin → Multisig / import descriptor), then copy the resulting policy ID (a hex string) and paste it below. This app does not store it and does not need it to keep working — you can paste a fresh one any time.