SuperAPI AI 工具集

ckbtc

智能体与模型

查看项目

更新于 10-15 21:09

技能介绍

用途:在互联网计算机上集成 ckBTC(链密钥比特币)。ckBTC 是由真实 BTC 1:1 支持的代币,由 ckBTC minter canister 持有 BTC 并铸造/销毁 ckBTC,无需跨链桥、包装或第三方托管。转账 1-2 秒结算,手续费 10 satoshi。

主要能力与流程: 充值(BTC→ckBTC):调用 minter 的 get_btc_address(传入用户 principal + subaccount)获得唯一 BTC 地址;用户向该地址发送 BTC;等待确认后调用 update_balance,minter 检查新 UTXO 并铸造等量 ckBTC 到用户 ICRC-1 账户。 转账(ckBTC→ckBTC):调用账本的 icrc1_transfer,手续费 10 satoshi。 提现(ckBTC→BTC):先调用 icrc2_approve 授权 minter 花费;再调用 retrieve_btc_with_approval({ address, amount, from_subaccount: null }),minter 销毁 ckBTC 并提交 BTC 交易。 子账户派生:每个用户由 principal + 可选 32 字节 subaccount 派生唯一充值地址。

必要用法与限制: 主网 canister ID:账本 mxzaz-hqaaa-aaaar-qaada-cai,minter mqygn-kiaaa-aaaar-qaadq-cai,索引 n5wcd-faaaa-aaaar-qaaea-cai,检查器 oltsj-fqaaa-aaaar-qal5q-cai。测试网4:账本 mc6ru-gyaaa-aaaar-qaaaq-cai,minter ml52i-qqaaa-aaaar-qaaba-cai,索引 mm444-5iaaa-aaaar-qaabq-cai。 常见错误:混淆 minter 与账本 ID;忘记 10 satoshi 手续费导致 InsufficientFunds;充值后未调用 update_balance(minter 不自动检测);使用旧 AccountIdentifier 而非 ICRC-1 Account;subaccount 必须恰好 32 字节或 null;提现低于最低额(当前 50,000 satoshi / 0.0005 BTC)返回 AmountTooLow;未检查 retrieve_btc 返回的 Ok/Err;get_btc_address 遗漏 owner 会返回调用者地址;icrc1_transfer/icrc2_approve 的 created_at_time 留空会导致重试重复执行,应设置并在重试时使用相同时间戳,已应用的重试返回 #Err(#Duplicate) 属成功。

适用场景:需要在 IC 上接受、发送、管理 BTC 的应用。前置条件:Motoko 需 mops 包管理器与 core = "2.0.0";Rust 需 ic-cdk、icrc-ledger-types、candid、serde。后端 canister 直接按 principal 调用 ckBTC 账本与 minter,无需本地部署 ckBTC canister。