npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hd-address-cli

v2.3.1

Published

HD Wallet CLI tools

Downloads

31

Readme

hd-address-cli

License NPM version

Hd Wallet deterministic address generation and recovery tool(HD钱包地址生成,恢复工具)

Please contact us if you have any special needs(如有定制需求请联系) [email protected]

Install

    $ npm install hd-address-cli -g
    $ yarn global add hd-address-cli

Introduction

HD Wallet coin type list (bip44)
m / purpose' / coin_type' / account' / change / address_index

                                                        / -- index 0 -> address
                coinType 0(btc) -- account 0 -- change 0  
              /                                         \ -- index 1 -> address
root -- BIP44 
              \
                coinType 60(eth) -- account 0 -- change 1 -- index 0 -> address
                          

API

API Use Case

 const HDWallet = require('hd-address-cli')
 // CIL methods
  HDWallet.cli.generateMnemonic({lang: "CN"}) //随机生成中文助记词
  HDWallet.cli.generateSeed()  //随机生成种子
  HDWallet.cli.generateBase58() //随机生成base58秘钥
  HDWallet.cli.generateAddress(option) //批量产生地址 eg. {mnemonic: "aa", coin: "BTC",columns: "pri,path",index:1}
 // create HD Wallet methods
  HDWallet.fromMnemonic(mnemonic) // 根据助记词创建默认的BTC钱包
  HDWallet.fromSeed(seed,"TRX") // 根据seed 创建 TRX钱包
  let hdWallet =HDWallet.fromBase58(base58,"ETH") // 根据Base58创建ETH钱包
 // HD Wallet methods
  hdWallet.derive(`m/0'/0/1`).getAddress()  //根据hdpath生成对应coin的地址
  hdWallet.derive(`m/0'/0/1`).getPublicKey() //根据hdpath生成对应coin的公钥
  hdWallet.derive(`m/0'/0/1`).getPrivateKey() //根据hdpath生成对应coin的私钥
  hdWallet.derive(`m/0'/0/1`).hdpath() // 获取完整hd path
  hdWallet.derive(`m/0'/0/1`).getAll()

CLI

Interactive CLI

$ hd_cli image

rice range hybrid gather civil broccoli innocent pipe pottery worry hub crisp

Helper

$ hd_cli -h
 
Usage: hd_cli <cmd> [args]

Commands: //子命令: 用来生成根密钥
  hd_cli mnemonic [strength,lang]  Generate random mnemonic //随机生成助记词: 可选参数强度和语言。[low,mid15,mid18,high]
  hd_cli seed [strength]           Generate random seed //随机生成种子,
  hd_cli base58 [strength]         Generate random base58 //随机生成base58密钥

Options:
  -c, --coin      coin name (e.g.
                  BTC,BCH,LTC,ETH,TRX,BTC_TEST,BCH_TEST,LTC_TEST)
                                            [string] [required] [default: "BTC"] //指定生成coin的地址,默认BTC
  -i, --index     Account Index (e.g. 6)                                [number] //HD wallet 规范中账户index
  -l, --columns   Columns to display (e.g. pub,pri,path)                [string] //控制显示的表的列
  -r, --range     Account Index Range (e.g 1-100)     [string] [default: "1-10"] //按照index 范围生成地址。和index只能选择一个
  -m, --mnemonic  Mnemonic                                              [string] //传入的助记词,和seed和base58只能选择一个
  -s, --seed      Seed in hex format                                    [string] //传入 种子
  -b, --base58    Base58 format                                         [string] //传入 base58
  -p, --path      You can specify account and change path (e.g. 'm/20'/0/')    
                                           [string]  [default: 'm/1'/0/']//可以指定 account和change部分
  -v, --version   Show version number                                  [boolean]
  -h, --help      Show help                                            [boolean]

Examples:
  hd_cli -c "BTC" -m "tag volcano eight thank tide" -l pri

Use Case

  1. Generate mnemonic:(随机生成多种语言,不同强度的助记词)
   $ hd_cli mnemonic
   $ hd_cli mnemonic -l CN -s mid15
   $ hd_cli mnemonic -l JA -s mid18
   $ hd_cli mnemonic -l EN -s high
  1. Generate seed and base58:(随机生成seed和base58)
   $ hd_cli base58
   $ hd_cli seed -s mid15 
  1. Display the address at a particular account index:(显示指定的index的地址)
$ hd_cli -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -i 4
    ┌─────────┬──────────────────────────────────────┬───────┬───────┐
    │ (index) │               address                │ coin  │ index │
    ├─────────┼──────────────────────────────────────┼───────┼───────┤
    │    0    │ '19d4qTx2Lzkq5nuBYqwMn3swQGbe8GMEB3' │ 'BTC' │   4   │
    └─────────┴──────────────────────────────────────┴───────┴───────┘
  1. Display the account address derived from a range of ETH account indexes:(显示ETH帐户索引派生的帐户地址)
$ hd_cli -c "ETH" -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -r 5-10
    ┌─────────┬──────────────────────────────────────────────┬───────┬───────┐
    │ (index) │                   address                    │ coin  │ index │
    ├─────────┼──────────────────────────────────────────────┼───────┼───────┤
    │    0    │ '0x8c7f1ecea37e0e417dd0bcfA04b9126bCd519E2D' │ 'ETH' │   5   │
    │    1    │ '0x4518EDBE22288D2A353a77dBA10726aC06109aa8' │ 'ETH' │   6   │
    │    2    │ '0x6cA7296E2a9A72060513F282a43557C10bB447FC' │ 'ETH' │   7   │
    │    3    │ '0xB39D5530A5Df35e3A110d2c00Daf9d7bbBa1A502' │ 'ETH' │   8   │
    │    4    │ '0x20648Aece94410F2E3A8f9dF59d7b29Dd7Cbf825' │ 'ETH' │   9   │
    │    5    │ '0xffA71a7face390cfD8fA71b1Dd04F77eaFAa5C6c' │ 'ETH' │  10   │
    └─────────┴──────────────────────────────────────────────┴───────┴───────┘
  1. Display the private keys of Trx accounts:(显示Trx帐户的私钥)
$ hd_cli -c "TRX" -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -r 5-10 -l pri
    ┌─────────┬──────────────────────────────────────┬────────────────────────────────────────────────────────────────────┬───────┬───────┐
    │ (index) │               address                │                                pri                                 │ coin  │ index │
    ├─────────┼──────────────────────────────────────┼────────────────────────────────────────────────────────────────────┼───────┼───────┤
    │    0    │ 'TFKPFK8rQXG75hKjvPcLuMU7duRD5Z3JX1' │ 'acfc5662fbac8aea7bf3eeb9c6ee8a2c188fbe76336b2bc83444734827afec0a' │ 'TRX' │   5   │
    │    1    │ 'TE8Gnnot8sDcyytxYsuwFuU4owq94zRg4x' │ 'e2e4cc77e0fed2d4a764f796342ccc22241aa9f5b90f5b39bb4080ee5462a910' │ 'TRX' │   6   │
    │    2    │ 'TY4H5iAnwJLVNAjUgGz4cd4h4cbT8LbsSS' │ '2f36c469e0d8579a1ab4fa9f927db274f21b8be2fc558f8a9fe2701765b954ec' │ 'TRX' │   7   │
    │    3    │ 'TQuhbGn3Ex7zQCLWhDJw8k9aDPBJ2rZ7Sn' │ '055e71ac0d4b89c7fc1f5b53291578389e690d37bbf09a2e0b8f4f4c76e947e9' │ 'TRX' │   8   │
    │    4    │ 'THb6YEqbpQwg84wL3EyEXP5zmp9YUxrcyS' │ 'c837155977f9489f9b23d510b4622529abf2191bc9d67cc2f27127dcb432ced1' │ 'TRX' │   9   │
    │    5    │ 'TCVVDB1MsiQXJHE1z72eykKWTK3wuL6Jr3' │ '0f5f852bf11b369d09b1755eff426ea4f89cf42b89e8f9a01987558dee713aa2' │ 'TRX' │  10   │
    └─────────┴──────────────────────────────────────┴────────────────────────────────────────────────────────────────────┴───────┴───────┘
  1. Display the HD path of the account:(显示地址对应的HD路径)
$ hd_cli -c ETH -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -i 3 -l path
    ┌─────────┬──────────────────────────────────────────────┬────────────────────┬───────┬───────┐
    │ (index) │                   address                    │        path        │ coin  │ index │
    ├─────────┼──────────────────────────────────────────────┼────────────────────┼───────┼───────┤
    │    0    │ '0x5A9C156ba5297a573986BE25C468c01284E93512' │ "m/44'/60'/1'/0/3" │ 'ETH' │   3   │
    └─────────┴──────────────────────────────────────────────┴────────────────────┴───────┴───────┘
  1. Use a custom HD path:(用户自定义HD path)
$ hd_cli -c ETH -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -p "m/20'/0/" -l path,pri -r 0-3
    ┌─────────┬──────────────────────────────────────────────┬─────────────────────┬────────────────────────────────────────────────────────────────────┬───────┬───────┐
    │ (index) │                   address                    │        path         │                                pri                                 │ coin  │ index │
    ├─────────┼──────────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────┼───────┼───────┤
    │    0    │ '0xBa59F66B853f1ACB242bcC57ef188754Fc79434b' │ "m/44'/60'/20'/0/0" │ 'a4a7e3e62839dd97c5abfde41c635fa71a00dc5a69c5a0324c8759108701329d' │ 'ETH' │   0   │
    │    1    │ '0xbf4cFeb783b913c0eD1710f00e9AE1844D597c86' │ "m/44'/60'/20'/0/1" │ '93221ffcd3dea9816ec7b6f69f34ab5f7dc1bd3d0be19a3da395d929bdea8238' │ 'ETH' │   1   │
    │    2    │ '0x62b6ffac78674392e0c30eC042636E22907FbCD2' │ "m/44'/60'/20'/0/2" │ '8fc1b1839cd9e5901f534bf22a385c9b78907aa3e417399e140e10f9c0231b38' │ 'ETH' │   2   │
    │    3    │ '0xce8bf9293cF5C4e9EcB50Aa8F9E42adF568ae356' │ "m/44'/60'/20'/0/3" │ '93b1302f88019cfd120f83677274447ae76112be7e31b6aee59928fbb9a12584' │ 'ETH' │   3   │
    └─────────┴──────────────────────────────────────────────┴─────────────────────┴────────────────────────────────────────────────────────────────────┴───────┴───────┘
  1. Display multiple columns:(显示多列内容)
$ hd_cli -m "tag volcano eight thank tide danger coast health above argue embrace heavy" -l "pri,path" -r 0-2

    ┌─────────┬──────────────────────────────────────┬───────────────────┬────────────────────────────────────────────────────────────────────┬───────┬───────┐
    │ (index) │               address                │       path        │                                pri                                 │ coin  │ index │
    ├─────────┼──────────────────────────────────────┼───────────────────┼────────────────────────────────────────────────────────────────────┼───────┼───────┤
    │    0    │ '1LKrREbJ6RVckGMFVCxsXSLWrrvG8U7owQ' │ "m/44'/0'/1'/0/0" │ '4923e84b81af6edc3203587eed7075c89563e83bf44b2496a1b0fb8579a0584b' │ 'BTC' │   0   │
    │    1    │ '19vd1joP63XzfxSLyA9XMF6ArbhRYwvues' │ "m/44'/0'/1'/0/1" │ 'ab81bfbd4741d69dc6f867556dd022c97bd11baeb02e2bdc33011b69a4c1909b' │ 'BTC' │   1   │
    │    2    │ '14G5AvVQmauXP6idrS9pGx2TT27xgo9MY1' │ "m/44'/0'/1'/0/2" │ '44c3bc65f21661f8fdeb37e49826e78a0c10a2c5b8864bb293e41826cad87e32' │ 'BTC' │   2   │
    └─────────┴──────────────────────────────────────┴───────────────────┴────────────────────────────────────────────────────────────────────┴───────┴───────┘
  1. Pipe mnemonic or base58:(管道的方式导入助记词或base58)
$ echo "tag volcano eight thank tide danger coast health above argue embrace heavy"  | hd_cli -c BTC -i 1
$ echo xprv9s21ZrQH143K4LNZvyv81JjVubcS891ij8CCEA4Bax159a4btLcz1qaHPRm2yr3bWawDX7B8gzAP6rVwY3BorBeWMYcsehtCzkMXA7nJB3g | hd_cli -b -c ETH

    ┌─────────┬──────────────────────────────────────┬───────┬───────┐
    │ (index) │               address                │ coin  │ index │
    ├─────────┼──────────────────────────────────────┼───────┼───────┤
    │    0    │ '1LKrREbJ6RVckGMFVCxsXSLWrrvG8U7owQ' │ 'BTC' │   0   │
    └─────────┴──────────────────────────────────────┴───────┴───────┘

Recommended Usage

Secret does not stay at history after cli is turned off (如下操作,密钥不会保存在操作历史中)

    //1.Write the secret to env(将密钥写入环境变量)
    mnemo="tag volcano eight thank tide danger coast health above argue embrace heavy"
    echo $mnemo
    //2.View the operation history and delete it (查看操作历史删除包含密钥的历史记录)
    history 
    history -d {history id}
    history 
    //3. User secret (在 cli中使用变量)
    echo $mnemo | hd_cli -m 
 

License

MIT