主页 > imtoken最新版客户端 > 如何创建BTC/ETH/TRX等主流钱包并离线签名 – Tokenview

如何创建BTC/ETH/TRX等主流钱包并离线签名 – Tokenview

imtoken最新版客户端 2023-08-24 05:07:02

什么是区块链钱包?

我们通常所说的区块链钱包,其实是确定性钱包以太坊离线钱包,也叫去中心化钱包,比如viewtoken、Mytoken等。

什么是确定性钱包? 确定性钱包意味着所有密钥都源自主密钥,即种子。 这类钱包中的所有密钥都是相互关联的,如果有原始种子,所有密钥都可以重新生成。 但是,由于种子是一串随机数,不太好记,所以我们用一种算法将种子转换成一串助记符(Mnemonic),方便记录。 只要我们保存助记词,就可以保存我们自己的资产。

如何创建钱包?

区块链钱包即确定性钱包的主要功能是交易。 钱包存储我们的数字货币信息,包括地址和私钥。 创建钱包,获取私钥,生成地址,赋予钱包交易功能,完成一个基本的钱包。

1.fork钱包源码

Tokenview github() 有一个全面的开源项目供开发者创建钱包。 本开源项目包括各种主流币种的地址生成规则,以及离线签名、交易广播和查询等过程,具体操作步骤如下:

1、从Tokenview github页面下载项目代码,新建项目。

以太坊钱包_以太坊离线钱包_以太坊钱包余额查询

如何创建BTC/ETH/TRX等主流钱包并离线签名

2.导入下载的模块,依赖maven库。

如何创建BTC/ETH/TRX等主流钱包并离线签名

2.获取私钥(和私钥助记词)

私钥由随机种子生成,公钥由私钥通过算法推导出来。 因为公钥太长,为了简单实用,出现了一个“地址”,地址是从公钥中推导出来的。 这些推导是单向不可逆的。 即地址不能推导出公钥,公钥不能推导出私钥。 种子是一串随机数。 通过算法,可以将种子转化为助记词。

1. 种子生成

我们知道,确定性钱包是由种子(随机数生成器生成的随机数)通过单向哈希运算生成的。 我们可以选择种子的长度,有128、160、192、224、256位的生成方式。 不同种子长度对应的助记词个数也不同。 128、160、192、224、256位的生成方式分别对应12、15、18、21、24个助记词。 我们通常看到的钱包生成的助记词个数是12个,种子生成过程如下:

long creationTimeSeconds = System.currentTimeMillis() /1000;DeterministicSeed ds =new DeterministicSeed(secureRandom, 128, creationTimeSeconds);

以太坊钱包余额查询_以太坊钱包_以太坊离线钱包

2.将种子转化为助记词

生成的种子可以转化为助记词,转化代码如下:

列表 mnemonicList = ds. getMnemonicCode();

3.推导出对应的公私钥对

通过确定性钱包,根据不同的币种和地址索引,从种子中推导出对应的公私钥对。 具体操作如下,这样我们就得到了私钥和助记词,同时也得到了公钥。

如何创建BTC/ETH/TRX等主流钱包并离线签名

3.获取钱包地址

地址是通过公钥的一系列变换得到的,主要是多次哈希运算。 根据上面导出的公钥获取钱包地址。

以太坊钱包余额查询_以太坊钱包_以太坊离线钱包

1.生成地址

不同的公链有不同的地址生成规则,从而得到不同链对应的钱包地址。 可以通过网站验证生成的地址是否正确。

如何创建BTC/ETH/TRX等主流钱包并离线签名

通过以上步骤,我们得到了钱包的地址。 接下来,我们还需要一些步骤让钱包具备转账交易的功能。

4. 钱包交易

钱包交易前,需要获取地址的Nonce、最佳手续费和余额信息。

1.获取地址的Nonce

地址的 Nonce 是多少? Nonce是一个非常关键的参数。 Nonce在交易中的主要目的是防止双花,即防止同一地址的一笔钱被花费两次。 例如以太坊离线钱包,在以太坊节点中,每笔交易都必须有一个 Nonce 值。 当每个账户从同一个节点发起交易时,Nonce值从0开始计数,发送交易的Nonce对应加1。后面的Nonce会在前面的Nonce处理完成后进行处理。

以太坊钱包余额查询_以太坊离线钱包_以太坊钱包

Tokenview API可以帮助用户直接获取地址的Nonce。 可以从Tokenview API节点服务系统获取Tokenview APIKEY,然后通过api接口获取ETH地址的Nonce。

以以太坊ETH地址的Nonce为例:{YOUR_APIKEY}

如何创建BTC/ETH/TRX等主流钱包并离线签名

2.获得最好的手续费

交易区块链数字货币时,交易者需要向矿工支付费用,并请矿工帮助打包交易。 当手续费不足时,交易会失败,如果手续费过低,交易会长期处于未确认状态。

如何获得最好的交易费? Tokenview API也提供了获取最佳手续费的接口。 {币种缩写小写}?apikey={apikey}。

3.获取地址余额

钱包转账交易前,需要先查看地址是否有余额。 如果余额不足,则无法进行转账。 获取地址余额API:{公链缩写小写}/{地址}?apikey={apikey}

以太坊钱包_以太坊离线钱包_以太坊钱包余额查询

五、离线签名与上链 1、离线签名

离线签名是在不联网的情况下进行签名,然后将签名后的原始数据在网络上进行广播,从而达到交易的目的。 主要是为了保护用户的私钥安全。

推荐使用Tokenview SDK提供的签名方式进行签名。 具体操作步骤如下:

如何创建BTC/ETH/TRX等主流钱包并离线签名

2.广播交易

我们得到相应的签名交易数据,最后将交易广播到链上。 这一步可以通过Tokenview api来实现。 {货币缩写小写}?apikey={apikey}

如何创建BTC/ETH/TRX等主流钱包并离线签名

至此我们完成了整个去中心化钱包的开发过程,一个简单的钱包就可以生成了。

除了基本的节点数据查询功能外,Tokenview API还提供了离线签名和链上交易的数据接口,大大减少了钱包的开发时间。 并且邮箱可以免费注册使用,是区块链应用开发的首选平台!