BTC 钱包开发
2024年12月23日大约 2 分钟
BTC 钱包开发
账户生成
- 公钥私钥助记词
const bip39 = require("bip39");
const bitcoin = require("bitcoinjs-lib");
const ecc = require("tiny-secp256k1");
const { BIP32Factory } = require("bip32");
// 生成助记词
const mnemonic = bip39.generateMnemonic();
console.log("生成的助记词:", mnemonic);
// 使用助记词生成种子
const seed = bip39.mnemonicToSeedSync(mnemonic);
console.log("种子:", seed);
// 检查助记词的有效性
const isValid = bip39.validateMnemonic(mnemonic);
console.log("助记词是否有效:", isValid);
// 创建 bip32 实例
const bip32 = BIP32Factory(ecc);
// 使用种子生成 BIP32 根私钥
const root = bip32.fromSeed(seed);
console.log("助记词:", mnemonic);
console.log("根私钥 (WIF):", root.toWIF());
console.log("根公钥:", root.publicKey.toString("hex"));
// 派生子密钥
const child = root.derivePath("m/44'/0'/0'/0/0");
console.log("子私钥 (WIF):", child.toWIF());
console.log("子公钥:", child.publicKey.toString("hex"));
// 使用公钥生成 P2PKH 地址
const { address } = bitcoin.payments.p2pkh({
pubkey: Buffer.from(child.publicKey, "hex"),
});
console.log("比特币地址:", address);
交易信息
- 获取资金
const axios = require("axios");
const btcAddress = "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo"; // 替换为你要查询的比特币地址
axios
.get(`https://blockchain.info/rawaddr/${btcAddress}`)
.then((response) => {
const finalBalance = response.data.final_balance; // 余额是以 satoshis 为单位
console.log(
`地址: ${btcAddress} 的余额为: ${finalBalance / 100000000} BTC`
);
})
.catch((error) => {
console.error("获取余额时发生错误:", error);
});
- 发送交易
账户恢复
- 私钥恢复
- 助记词恢复
const bip39 = require("bip39");
const { BIP32Factory } = require("bip32");
const ecc = require("tiny-secp256k1");
const bitcoin = require("bitcoinjs-lib");
// 创建 bip32 实例
const bip32 = BIP32Factory(ecc);
// 假设你有一个助记词
const mnemonic =
"fence core rapid bid hour denial brass flavor praise solve under mask";
// 通过助记词生成种子
const seed = bip39.mnemonicToSeedSync(mnemonic);
// 使用种子生成 BIP32 根私钥
const root = bip32.fromSeed(seed);
// 获取根私钥(WIF 格式)
const rootPrivateKeyWIF = root.toWIF();
console.log("根私钥 (WIF):", rootPrivateKeyWIF);
// 获取根公钥
const rootPublicKey = root.publicKey.toString("hex");
console.log("根公钥:", rootPublicKey);
// 生成根公钥对应的比特币地址
const { address } = bitcoin.payments.p2pkh({ pubkey: root.publicKey });
console.log("比特币地址:", address);
const bip39 = require("bip39");
const { BIP32Factory } = require("bip32");
const ecc = require("tiny-secp256k1");
const bitcoin = require("bitcoinjs-lib");
// 创建 bip32 实例
const bip32 = BIP32Factory(ecc);
// 假设你有一个助记词
const mnemonic =
"fence core rapid bid hour denial brass flavor praise solve under mask";
// 通过助记词生成种子
const seed = bip39.mnemonicToSeedSync(mnemonic);
// 使用种子生成 BIP32 根私钥
const root = bip32.fromSeed(seed);
// 派生子密钥(示例路径 "m/44'/0'/0'/0/0")
const child = root.derivePath("m/44'/0'/0'/0/0");
// 获取私钥(WIF 格式)
const privateKeyWIF = child.toWIF();
console.log("私钥 (WIF):", privateKeyWIF);
// 获取公钥
const publicKey = child.publicKey.toString("hex");
console.log("公钥:", publicKey);
// 生成比特币地址
const { address } = bitcoin.payments.p2pkh({ pubkey: child.publicKey });
console.log("比特币地址:", address);

思 维 教程: