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.
Owners and signers
Section titled “Owners and signers”- One owner: the
b3_basic_walletcanister. - Several signers: the
b3walletcanister. 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.
Accounts
Section titled “Accounts”A wallet starts with one account and can add more. Every account is derived from the same canister, at a different index.
Upgrades
Section titled “Upgrades”The canister can upgrade itself, so a wallet can take new versions without being recreated.
Building your own wallet
Section titled “Building your own wallet”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.
Running it locally
Section titled “Running it locally”The repository’s README covers starting a local replica with dfx, with Bitcoin support optional, and deploying the canisters: see B3Pay/B3Wallet.