@anywalletkit/wallet-btc

中文文档
0.4.1发布于 2026/11/03Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2304

在@scure/btc-signer上,任何钱包的比特币钱包:BIP-84 p2wpkh和BIP-86trootroot账户,自己的硬币选择,RBF,Blockbook/Esplora transports.

中文使用文档
文档目录6 节
  1. 安装
  2. 花多少钱
  3. 安全检查
  4. 信件签名
  5. 运输
  6. 活动历史

@anywalletkit/wallet-btc (英语)

npm

比特币账户 @scure/btc-signer (由Cure53审计;纯) Uint8Array,没有 Buffer诺德·希姆斯:

安装

npm install @anywalletkit/wallet-btc
# or: pnpm add @anywalletkit/wallet-btc  ·  yarn add @anywalletkit/wallet-btc

时间: @anywalletkit/wallet-btc (英语)发表于 发布工作流程 与出处.

addressType路径地址标准
p2wpkh (默认)m/84'/0'/0'/0/ibc1q…BIP-84 土生土长
p2trm/86'/0'/0'/0/ibc1p…BIP-86 钥匙路径自来水

测试网络使用硬币类型 1' (单位:千美元)tb1… 编号 : bcrt1…) (中文(简体) ). 两条道路都由 官方BIP-84 / BIP-86测试矢量.

import WalletManagerBtc from '@anywalletkit/wallet-btc'

const wallet = new WalletManagerBtc(seedPhrase, {
  network: 'bitcoin',
  addressType: 'p2wpkh',                       // or 'p2tr'
  client: [
    { type: 'blockbook-http', clientConfig: { url: 'https://btc1.trezor.io' } },
    { type: 'esplora-http', clientConfig: { url: 'https://mempool.space/api' } }, // fails over in order
  ],
  maxFeeRate: 200,                             // sat/vB ceiling (default 500)
})
const account = await wallet.getAccount(0)

const preview = await account.describeTransaction({ to: 'bc1q…', value: 50_000n })
//   { kind: 'btc-transfer', inputs, outputs: [{ role: 'recipient' | 'change' }], fee, feeRate, vsize, rbf, lockTime, warnings }

await account.transfer({ recipient: 'bc1q…', amount: 50_000n })             // sats
await account.sendTransaction({ to: 'bc1q…', value: 50_000n, feeRate: 12n }) // explicit sat/vB
const hex = await account.signTransaction({ to: 'bc1q…', value: 50_000n })   // sign only
const max = await account.getMaxSpendable()                                  // sweep amount after fee
wallet.dispose()

花多少钱

硬币的选择是我们自己的(selectCoins, (中文(简体) ), coinselect.ts: 有效值 积累,最大第一;无法自给的投入被省去; 粉尘下的变化(294 sat p2wpkh / 330 sat p2tr)被折叠入收费;最多 maxInputs (200) 投入。 收费是 feeRate × vsize 与标准 segwit 连接 权重,以72字节的签名估计,所以报价永远不能低于收费 实际支付.

交易信号替换换收费( E)rbf设置 nLockTime 页:1 当前提示( o)antiFeeSniping,默认运输何时可以报告高度.

安全检查

没有明确答案的广播(推倒、超时、5xx或408、a) 无法读取的身体)抛出 BroadcastUnknownError (单位:千美元)maybeSent, (中文(简体) ), hash = txid 计算 发送前):交易可能位于集邮地上,所以不要另立开支. 节点的拒绝( 有原因的 4xx, 有错误的正文) 保留一个被标记的错误 (单位:千美元)isAnsweredRefusal),对几个客户来说,只有在每个人都拒绝的情况下,才会拒绝. "已入"中"/"区块链"回"txid". 习惯 BtcClient 应 标记拒绝 answered: true。产出与收件人匹配,并按脚本进行更改.

签字前 财务报告和审定财务报表 在广播之前——也用于呼叫者提供的生六分位数—— 每笔交易都解为 BtcTxDescription 必须通过:

  • 收费标准 maxFeeRate (单位:千美元)UnsafeTransactionError('fee-rate-too-high')(三);
  • 完全一个输出等于请求的接收者+数量,每个其它输出 是我们自己的变化('unexpected-output', (中文(简体) ), 'recipient-mismatch', (中文(简体) ), 'change-not-ours'(三);
  • transactionMaxFee 编号 : transferMaxFee 绝对封顶.

不屏蔽的警告 : high-fee-rate, (中文(简体) ), fee-over-10pct-of-amount, (中文(简体) ), dust-output, (中文(简体) ), no-change。 。 。 .

信件签名

sign() 编号 : verify() p2wpkh 账户的BIP-137(标题) 39 + recovery, (中文(简体) ), base64 — Electrum / 比特币核心编码. 底盘账户没有BIP-137 窗体; sign() 掷出 UnsupportedAddressTypeError (BIP-322未执行).

运输

blockbook-http (Trezor Blockbook REST,快节点加载)和 esplora-http (mempool.space, blockstream.info). 星洲网. 超时请求 timeoutMs (15个)和 对答复进行形状检查(NetworkError (否则) 传递您自己的对象 执行 BtcClient 为了其他一切.

活动历史

createBtcHistory 是链子 HistorySource (单位:千美元)@anywalletkit/core超过 Blockbook, 重用 BlockbookClient (单位:千美元)getAddressPage, (中文(简体) ), getTransactionDetails) (中文(简体) ).

import { createBtcHistory } from '@anywalletkit/wallet-btc/history'

const history = createBtcHistory({ blockbookUrls: ['https://btc1.trezor.io', 'https://bitcoin.atomicwallet.io'] })
const page = await history.listActivity('bc1q3x8yszvcvjjxqragsh0l6j8rxnhk7pay9hnj5h', { limit: 25 })
const older = await history.listActivity(address, { cursor: page.cursor })
const one = await history.getTransaction(page.items[0].hash, address)
history.explorerTxUrl(one.hash) // https://mempool.space/tx/…
选项默认说明
blockbookUrl 编号 : blockbookUrls—— 说Blockbook根,按顺序进行(Cloudflare 403, 5xx, network ~ next). 特雷佐案btc1…5.trezor.io坐在Cloudflare挑战后,阻止非浏览器用户代理; bitcoin.atomicwallet.io 财务报告和审定财务报表 blockbook.btc.zelcore.io 于2026-10-14回信. QuickNode的"Blockbook"附加语同API.
networkbitcointestnet 编号 : regtest CAIP-2 ids; mempol.space testnet链接.
pageSize查询 limit页:1每块书页行数(最大为1000).
fetch, (中文(简体) ), timeoutMs全球,15 000

端点. GET /api/v2/address/{a}?details=txs&page=&pageSize= - 最新的交易,首先是投入和产出(hex ) (删除). 光标是基数64 JSON { v: 1, p, s }: 下一页和页大小的页码开始于页码( Blockbook 夹住出行页到上页, 所以 page stops at totalPages) (中文(简体) ). since ; 总是保留未经证实的行.

测绘. 输入已使用的地址( E)ownIn和收到的产出(ownOut)为总结. 已用投入-发送: from = 地址, (中文(简体) ), to =第一个不是我们的输出, nativeValue = 留给非自有产出的(变化被忽略,费用被分开);我们的每一项产出 = 自我整合。 没有用完的投入 − 收到: from =第一个输入地址(coinbase 当没有的时候, nativeValue =: ownOut。 。 。 . transfers 那是一条本地腿, fee =: fees, (中文(简体) ), status =: confirmed 一次 confirmations ≥ 1 (次数) pending,没有 block, (中文(简体) ), block =: blockHeight, (中文(简体) ), raw = Blockbook 交易加 ownIn 编号 : ownOut。 。 。 .

装入 test/fixtures/history/ 2026年10月14日从 bitcoin.atomicwallet.io 测试地址(其4个交易:2个接收,2个发送,有变化)和 GET /api/v2/tx/{txid} 一个发送。 没有协议模块承认比特币交易,因此没有识别器交叉检查.

版本与发布记录

@anywalletkit/wallet-btc 共发布 12 个版本,首次发布于 2026/10/25;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/11/034 天前
0.4.02026/10/309 天前
0.3.22026/10/2810 天前
0.3.12026/10/2811 天前
0.3.02026/10/2711 天前
0.2.52026/10/2612 天前

关于 @anywalletkit/wallet-btc 的常见问题

@anywalletkit/wallet-btc 是什么?

在@scure/btc-signer上,任何钱包的比特币钱包:BIP-84 p2wpkh和BIP-86trootroot账户,自己的硬币选择,RBF,Blockbook/Esplora transports.

如何安装 @anywalletkit/wallet-btc?

在项目目录运行 npm install @anywalletkit/wallet-btc,或使用 pnpm add / yarn add / bun add。

@anywalletkit/wallet-btc 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@anywalletkit/wallet-btc 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@anywalletkit/wallet-btc 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@anywalletkit/wallet-btc 可以商用吗?

@anywalletkit/wallet-btc 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@anywalletkit/wallet-btc 的下载量有多少?

根据 npm 官方下载统计,@anywalletkit/wallet-btc 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,304 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anywalletkit/wallet-btc 还在维护吗?

最新版本 0.4.1 发布于 2026/11/03(4 天前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。