Nodejs 比特币钱包创建与使用完全指南

·

关键词:Nodejs 比特币开发、Mixin Network、比特币钱包、即时转账、无手续费转账、BTC余额查询、冷钱包提现、EOS地址

本指南将手把手带你使用 Nodejs 在 Mixin Network 上创建比特币钱包,完成充值、查询余额、内部转账以及提现到冷钱包的全部流程。所有操作开源、即刻生效且 Mixin Network 内部转账 零矿工费,1 秒内到账。


一、环境准备:安装与依赖

  1. Node.js ≥ 14
  2. npm install axios crypto fs csv inquirer @mixin/client

确认已拥有可用的 Mixin 账户(机器人或真人账户皆可)。


二、生成 RSA 密钥对 & 注册钱包

1. 创建密钥对

const { generateKeyPairSync } = require('crypto');
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
  modulusLength: 1024,
  publicKeyEncoding: { type: 'spki', format: 'pem' },
  privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
});

2. 申请账号并保存到本地 CSV

const cleanedPubkey = publicKey.replace(/-----[\s\S]*?-----|\n|\r/g, '');
// 调用 client.createUser() 注册
const info = await clientBot.createUser({
  full_name: 'nodejs bitcoin wallet',
  session_secret: cleanedPubkey
});

// 保存关键信息
fs.appendFileSync(
  'wallet.csv',
  `${privateKey},${info.pin_token},${info.session_id},${info.user_id},123456\n`
);

后续所有操作都需要这份「私钥 + PIN Token + Session ID + User ID」的组合。


三、初始化客户端 & 首次读取 BTC 余额

注意: 钱包不会自动出现 BTC 资产。只要首次调用对应资产 ID,系统自动创建对应地址。
const BTC_ASSET_ID = 'c6d0c728-2624-429b-8e0d-d9d19b6592fa';
const assetInfo = await newClient.getUserAsset(BTC_ASSET_ID);

console.log('Bitcoin 地址:', assetInfo.public_key);
console.log('当前余额:', assetInfo.balance, 'BTC');
console.log('实时美元价格:$' + assetInfo.price_usd);

示例输出:

Bitcoin 地址: 15MySY7UnA827TRMQWuCKGiogCYXUmt21M
当前余额: 0 BTC
实时美元价格:$5029.599

四、充值:从外部或 Mixin 内部转入

  1. 外部方式:向上面生成的地址打入 BTC,按比特币主网规则等 1 ~ 3 个确认即到账。
  2. 内部方式:使用 Mixin Messenger 或自己的机器人内部转账 0 手续费,秒到。
    👉 看这里「零矿工费转账」实战示例,让你立刻省下链上 4 美元.

FAQ 1:比特币私钥去哪了?

Mixin Network 通过 分布式门限签名 (TSS) 将私钥拆开到多方节点。用户不直接接触私钥,用 RSA 签名 + PIN + Session 实现转账;安全度媲美冷存储 + 热钱包的混合方案。


五、即时支付:内部转账示例

// 转账全部 BTC
const transfer = await newClient.transfer({
  assetId: BTC_ASSET_ID,
  recipientId: MASTER_UUID, // 可以是另一个机器人或真人账户
  amount: assetInfo.balance,
  memo: '内部测试转账'
});

输出得到 trace_id,用户可随时用该 ID 查询转账状态,体验堪比闪电网络。


FAQ 2:为什么我转账没扣手续费?

任何一笔 Mixin Network 内部交易 均通过链下撮合及多重签名快速确认,不走主网链上广播,故矿工费为 0


六、提现到冷钱包或交易所

1. 创建提现地址

const wdAddr = await newClient.createWithdrawAddress({
  assetId: BTC_ASSET_ID,
  label: '冷钱包提现',
  publicKey: '14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C'
});

返回字段包含 address_id 和 当前 提现矿工费(示例 0.00257380 BTC)。

2. 提交提现

const withdrawal = await newClient.withdraw({
  addressId: wdAddr.address_id,
  assetId: BTC_ASSET_ID,
  amount: '0.05',
  memo: 'from nodejs demo'
});

Mixin 会立即把交易广播至比特币节点,约 10 分钟即可链上确认;用户可用任一生成的交易 ID 去区块链浏览器跟踪。


FAQ 3:怎么查询提现进度?

调用 getWithdrawAddress() 提取最新 address_id,之后亦能对比链上 TXID;也可查看 withdrawal.trace_id 在以太坊浏览器或比特币区块浏览器上直接追踪。


FAQ 4:支持哪些其他币?

Mixin 同一账号即可管理 BTC、ETH、BCH、LTC、DOGE、EOS、USDT、ERC20、EOS 代币 等上百种资产。流程与上面一模一样,仅需把 ASSET_ID 换成目标币种的 UUID。

常见 ID:

👉 立即查看已支持的更多币种清单与转账场景.


FAQ 5:EOS 地址为什么与 BTC 不同?

EOS 充值地址由 账户名(eoswithmixin)+ 标签(account_tag) 组成。转账时需在备注/ memo 填写 account_tag,否则资产无法入账。


七、最佳实践 & 安全提示


八、总结

通过 Nodejs + Mixin Network,你已实现: