This handles the full Bitcoin integration flow on ICP: generating unique BTC deposit addresses per user, minting ckBTC when Bitcoin arrives, transferring ckBTC at 10 satoshi fees, and burning ckBTC to withdraw back to real Bitcoin addresses. The source is thorough about the gotchas that actually break builds, like forgetting to call update_balance after a deposit, using Account Identifiers instead of ICRC-1 accounts, and the 50,000 satoshi minimum withdrawal. It covers both Motoko and Rust, includes mainnet and testnet canister IDs, and walks through the approve-then-retrieve pattern for withdrawals. If you're building anything that touches Bitcoin on ICP, this is the reference implementation.
npx skills add https://github.com/dfinity/icskills --skill ckbtc