SuperAPI AI 工具集

ckBTC Integration

通用与其它

查看项目

更新于 10-15 21:09

技能介绍

用途:在 Internet Computer 的 canister 中集成 ckBTC(1:1 BTC 背书代币),实现接收、发送和管理 ckBTC,覆盖铸造、转账、余额查询与 UTXO 管理。ckBTC 由 minter canister 持有真实 BTC 并铸造/销毁代币,转账 1-2 秒结算,手续费 10 satoshi。

主要能力:存款(BTC→ckBTC):调用 minter 的 get_btc_address 获取用户专属 BTC 地址,用户转入 BTC 后调用 update_balance 检查新 UTXO 并铸造 ckBTC。转账(ckBTC→ckBTC):调用 ledger 的 icrc1_transfer,手续费 10 satoshi。提现(ckBTC→BTC):先用 icrc2_approve 授权 minter,再调用 retrieve_btc_with_approval 销毁 ckBTC 并提交 BTC 交易。

使用方式:前置条件包括 icp-cli >= 0.1.0(brew install dfinity/tap/icp-cli)、Motoko 需 mops 与 core = "2.0.0"、Rust 需 ic-cdk、icrc-ledger-types、candid、serde,以及有资金的 ICP 身份。主网 canister ID:ledger mxzaz-hqaaa-aaaar-qaada-cai、minter mqygn-kiaaa-aaaar-qaadq-cai、index n5wcd-faaaa-aaaar-qaaea-cai、checker oltsj-fqaaa-aaaar-qal5q-cai;测试网4 另有对应 ID。子账户由 principal 派生为 32 字节。

适用场景:需要在 IC canister 内处理 BTC 存款、转账与提现的应用。

限制与常见错误:勿混淆 minter、ledger、index 的 canister ID;转账需预留 10 satoshi 手续费,否则 InsufficientFunds;存款后必须手动调用 update_balance,minter 不会自动检测;使用 ICRC-1 Account 而非旧版 AccountIdentifier;subaccount 必须恰好 32 字节或 null;提现低于最低额(当前 50,000 satoshi)会返回 AmountTooLow;需检查 retrieve_btc 返回的 Ok/Err 两个分支;get_btc_address 参数遗漏 owner 会返回调用者 canister 的地址。资料未提供收费、价格或平台信息。