What problem does it solve? Integrating Bitcoin into an Internet Computer canister requires correctly coordinating the ckBTC ledger and minter canisters, where mistakes like wrong canister IDs, missing fees, or skipped update_balance calls silently break deposits and withdrawals. ## Core Features & Use Cases - BTC Deposit Flow: Generate per-user Bitcoin deposit addresses via the minter's get_btc_address and mint ckBTC with update_balance using principal-derived 32-byte subaccounts. - ckBTC Transfers: Send ckBTC between accounts with icrc1_transfer at a 10 satoshi fee, settling in 1-2 seconds. - BTC Withdrawals: Convert ckBTC back to on-chain BTC using icrc2_approve plus retrieve_btc_with_approval, with full error variant handling. - Use Case: Build a canister where each user gets a unique BTC deposit address; the user sends BTC from any wallet, your canister calls update_balance to mint ckBTC into their subaccount, and they can later withdraw to any Bitcoin address. ## Quick Start Ask the AI to add ckBTC deposit and withdrawal support to your Rust or Motoko canister using the ckBTC ledger and minter canisters.