Skip to content

B3Wallet

B3Wallet is a wallet that lives in a canister you control on the Internet Computer. One canister holds accounts on Bitcoin, Ethereum and the Internet Computer, and can have one owner or several. There is no registration and no backup phrase: control of the canister is control of the funds.

  • One owner: the b3_basic_wallet canister.
  • Several signers: the b3wallet canister. Once a second signer is added, a transaction needs approval from more than half of them: 2 of 2, 2 of 3, 3 of 4.

Signers can be added and removed, and several people can each add the same canister to their own view of the wallet.

A wallet starts with one account and can add more. Every account is derived from the same canister, at a different index.

The canister can upgrade itself, so a wallet can take new versions without being recreated.

Three Rust libraries in the repository’s backend/lib folder are for building other wallets:

  • b3_utils: the foundations every wallet needs.
  • operations: authorization and permissions for each wallet operation.
  • b3wallet_lib: accounts, keys, balances and transfers across chains and tokens.

The repository’s README covers starting a local replica with dfx, with Bitcoin support optional, and deploying the canisters: see B3Pay/B3Wallet.