基于Discord.JS实现[!btc]指令每次请求返回新Blockchain比特币地址的技术咨询
当然可以实现每次请求返回新的比特币地址!
要做到这一点,你有两种靠谱方案:调用第三方API生成新地址,或者在本地使用加密库生成地址(更稳定,不依赖外部服务)。下面我推荐第二种方案,用bitcoinjs-lib库在本地生成全新的BTC地址,替换你代码里的静态地址部分。
步骤1:安装依赖
首先在你的项目目录下安装比特币地址生成库:
npm install bitcoinjs-lib
步骤2:修改你的代码
把原来的case "btc"部分替换成下面的代码,保留你原本的交互逻辑,只替换地址生成的部分:
case "btc": // 生成新的比特币地址 const bitcoin = require('bitcoinjs-lib'); const keyPair = bitcoin.ECPair.makeRandom(); const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey }); const btc = new Discord.MessageEmbed() .setColor('#003087') .setTitle('Payment Method: Bitcoin! <:btc:878247766067908610>') .setDescription(`Bitcoin Address: **${address}**`) .setFooter("Created and Developed by ❤️"); // 保留你原来的交互逻辑 message.delete(); message.channel.send(`<a:loading:885542082234629809> Please wait..`) .then((msg) => { setTimeout(function () { msg.edit(`${message.author.toString()}.`); }, 5000) }); setTimeout(() => { message.channel.send(btc); }, 5500); break;
额外说明
- 这段代码每次触发
!btc指令时,都会生成一个全新的随机比特币私钥和对应的P2PKH地址(最常见的BTC地址格式)。 - 如果你需要后续能取出这个地址里的资金,一定要把
keyPair.toWIF()的结果存储到数据库或者安全的文件里——私钥是掌控地址资金的唯一凭证,丢失了就再也找不回资金了。 - 如果你更倾向于使用blockchain.com的官方API,也可以调用他们的接收地址生成接口,但需要你准备好钱包的xpub密钥,并且要处理异步请求的逻辑,相对本地生成会麻烦一点。
内容的提问来源于stack exchange,提问作者tanaallen
相关产品推荐
相关产品推荐

