11## Installation
2- ```
3- go install github.com/provenance-io/extkey/cmd/extkey@latest
2+ ``` shell
3+ $ go install github.com/provenance-io/extkey/cmd/extkey@latest
44```
55
66# Encoding
77
8- ## Key generation interactive
9- ```
8+ ## Key encoding interactive
9+ ``` shell
1010# Using interactive mode
11- ▷▷ extkey encode --hrp tp --hd-path "m/44'/1'/0'/420'"
11+ $ extkey encode --hrp tp --hd-path " m/44'/1'/0'/420'"
1212mnemonic: fly fly comfort
1313passphrase:
1414seed: UeItRbah4gE-syrw1EaXVKyg3GKWqfZqOztWNAXfnUME-bMpjp4jT0YxzEBWBA33_QWDAmeFE1I_hNlt2xJJew==
@@ -35,8 +35,8 @@ childKey:
3535 bigInt: " 261180551375323774831564216383503265774120811521638640313796615741160982804745"
3636```
3737
38- ## Key generation with env vars
39- ```
38+ ## Key encoding with env vars
39+ ``` shell
4040# Using env vars
4141$ MNEMONIC=" fly fly comfort" PASSPHRASE=" " extkey encode --hrp tp --hd-path " m/44'/1'/0'/0'"
4242seed: UeItRbah4gE-syrw1EaXVKyg3GKWqfZqOztWNAXfnUME-bMpjp4jT0YxzEBWBA33_QWDAmeFE1I_hNlt2xJJew==
@@ -66,7 +66,7 @@ childKey:
6666# Decoding
6767
6868## Decoding xprv keys
69- ```
69+ ``` shell
7070$ extkey decode --hrp tp xprv9zqjpMDofQuSFaF8NsS2Ybq2Xndj9zB5PkKyS16JqWsvP8aQWELPkpBnTh6NUUFHmRqRxVpz3fT8S2ckHSRSQ8EDcS4ZifxwQsjWgJjn5GK
7171address: tp1ndh7g7xy48k52phkr3p37rnkazmc98zuv8fp38
7272xkey:
7979```
8080
8181## Decoding xpub keys
82- ```
82+ ``` shell
8383$ extkey decode --hrp tp xpub6Dq6DrkhVnTjU4KbUty2ujmm5pUDZStvkyFaEPVvPrQuFvuZ3meeJcWGJwjLjb666HDPxVg2SDTMuh6JVfP897z5VJxRoSf82koiPucLPDm
8484address: tp1ndh7g7xy48k52phkr3p37rnkazmc98zuv8fp38
8585xkey:
@@ -90,15 +90,77 @@ xkey:
9090 fingerprint: " 28508294"
9191```
9292
93- # API key generation
93+ # Generating
94+
95+ ## Key generation with random seed
96+ ``` shell
97+ $ extkey gen --hd-path " m/44'/505'/0'/0'/0" --hrp tp
98+ seed: kwDcbPMhZOTRQpCcgtBKXxbtVcEe_4ne5tasLV-JAhlYAbaf13vRMaVANwDZTm4A75snNhI2LTH_T0NVGTYJuQ==
99+ mnemonic: text gown action resource depth toe parrot limit dinosaur frog again march pool another pretty imitate spatial music lecture charge very fiber few ignore
100+ hrp: tp
101+ rootKey:
102+ address: tp1scl32wrzy043ldnz5qyaqn5kpjws2fktce4k7s
103+ privateKey:
104+ base58: xprv9s21ZrQH143K3hoYnZzA9WRAkGK7pJbjDDKf2MjstzMLyH9tUUgRtDWaPCULb6rsnijuqs3FDoXoGsZuzx8it8ZkKuyuqKZH9EghnUBBGtV
105+ bytes: 0488ADE4000000000000000000A54A051BCE830BF6C6A3656C5CA2A4E45D11B44E853FF5019D8DB8F57328B00F00712F6D5E492D9516A0D68E6F1A34068206D93C3E8193D2C2DCA6F9CC3636D3773700F716
106+ bigInt: " 51195148534247021627172126139454315055974072071557156386597256238996714345335"
107+ publicKey:
108+ base58: xpub661MyMwAqRbcGBt1tbXAWeMuJJ9cDmKaaSFFpk9VTKtKr5V321zgS1q4EWQUMT7QN4xaXzkWMCzQAQ6Vp6DGtp5MyMQ7cDToY6tzNH91X57
109+ bytes: 0488B21E000000000000000000A54A051BCE830BF6C6A3656C5CA2A4E45D11B44E853FF5019D8DB8F57328B00F03EF7C0C7C458B18A3D5ADEF1EA181271F4DE1191554F0B4BFF95923703FA02DC43C4BC866
110+ bigInt: " 455698213730695089965667949209897413589214143496016811921245211286232805420484"
111+ childKey:
112+ address: tp1wy5vf0cem2ec88qvnj5qaeucyf3twrhhfzs7qe
113+ privateKey:
114+ base58: xprvA2vNQscVB7uwrpXTLYXw5ffoRxHrp75Ynwc3LVixemDticLn7BpGDnxXvc2jJEksJuef3bLP3QtKZLYRUPncbBoaBW5SMSjMENCLppnT2te
115+ bytes: 0488ADE40543478CF000000000E63E5C24103358AEB259B1E0926EDED31D6DCF316F16D6A74BB4AAF9ED5D1D610001628A7298303FB55D71174CCF7C8B20D556FCF97A815456B0301A14049BD9E64A4C9357
116+ bigInt: " 626419391388641969500024507723796044901451795080364889081030583799756085734"
117+ publicKey:
118+ base58: xpub6FuipP9P1VUF5JbvSa4wSocXyz8MDZoQAAXe8t8aD6ksbQfvej8WmbH1mtypTMgVqxfkPpY94M122qqNhdWPLm1cUq4mDQW9VZeLwbZ2X6C
119+ bytes: 0488B21E0543478CF000000000E63E5C24103358AEB259B1E0926EDED31D6DCF316F16D6A74BB4AAF9ED5D1D6102FE281C136209674387FE584A4A18584D0BB82C2C7B5FF818AE25C713CB3E85790139E4CD
120+ bigInt: " 346542509668834358586089346602711884922951328399776737952015035914050934310265"
94121```
122+
123+ ## Key generation with known seed
124+ ``` shell
125+ $ extkey gen --hd-path " m/44'/505'/0'/0'/0" --hrp tp --seed kwDcbPMhZOTRQpCcgtBKXxbtVcEe_4ne5tasLV-JAhlYAbaf13vRMaVANwDZTm4A75snNhI2LTH_T0NVGTYJuQ==
126+ seed: kwDcbPMhZOTRQpCcgtBKXxbtVcEe_4ne5tasLV-JAhlYAbaf13vRMaVANwDZTm4A75snNhI2LTH_T0NVGTYJuQ==
127+ hrp: tp
128+ rootKey:
129+ address: tp1scl32wrzy043ldnz5qyaqn5kpjws2fktce4k7s
130+ privateKey:
131+ base58: xprv9s21ZrQH143K3hoYnZzA9WRAkGK7pJbjDDKf2MjstzMLyH9tUUgRtDWaPCULb6rsnijuqs3FDoXoGsZuzx8it8ZkKuyuqKZH9EghnUBBGtV
132+ bytes: 0488ADE4000000000000000000A54A051BCE830BF6C6A3656C5CA2A4E45D11B44E853FF5019D8DB8F57328B00F00712F6D5E492D9516A0D68E6F1A34068206D93C3E8193D2C2DCA6F9CC3636D3773700F716
133+ bigInt: " 51195148534247021627172126139454315055974072071557156386597256238996714345335"
134+ publicKey:
135+ base58: xpub661MyMwAqRbcGBt1tbXAWeMuJJ9cDmKaaSFFpk9VTKtKr5V321zgS1q4EWQUMT7QN4xaXzkWMCzQAQ6Vp6DGtp5MyMQ7cDToY6tzNH91X57
136+ bytes: 0488B21E000000000000000000A54A051BCE830BF6C6A3656C5CA2A4E45D11B44E853FF5019D8DB8F57328B00F03EF7C0C7C458B18A3D5ADEF1EA181271F4DE1191554F0B4BFF95923703FA02DC43C4BC866
137+ bigInt: " 455698213730695089965667949209897413589214143496016811921245211286232805420484"
138+ childKey:
139+ address: tp1wy5vf0cem2ec88qvnj5qaeucyf3twrhhfzs7qe
140+ privateKey:
141+ base58: xprvA2vNQscVB7uwrpXTLYXw5ffoRxHrp75Ynwc3LVixemDticLn7BpGDnxXvc2jJEksJuef3bLP3QtKZLYRUPncbBoaBW5SMSjMENCLppnT2te
142+ bytes: 0488ADE40543478CF000000000E63E5C24103358AEB259B1E0926EDED31D6DCF316F16D6A74BB4AAF9ED5D1D610001628A7298303FB55D71174CCF7C8B20D556FCF97A815456B0301A14049BD9E64A4C9357
143+ bigInt: " 626419391388641969500024507723796044901451795080364889081030583799756085734"
144+ publicKey:
145+ base58: xpub6FuipP9P1VUF5JbvSa4wSocXyz8MDZoQAAXe8t8aD6ksbQfvej8WmbH1mtypTMgVqxfkPpY94M122qqNhdWPLm1cUq4mDQW9VZeLwbZ2X6C
146+ bytes: 0488B21E0543478CF000000000E63E5C24103358AEB259B1E0926EDED31D6DCF316F16D6A74BB4AAF9ED5D1D6102FE281C136209674387FE584A4A18584D0BB82C2C7B5FF818AE25C713CB3E85790139E4CD
147+ bigInt: " 346542509668834358586089346602711884922951328399776737952015035914050934310265"
148+ ```
149+
150+ ## Key generation with known mnemonic
151+ ``` shell
152+ TODO
153+ ```
154+
155+ # API key generation
156+ ``` shell
95157$ extkey serve
96158...
97159[GIN-debug] GET /generate --> github.com/provenance-io/extkey/cmd/extkey/commands.generateKeys (3 handlers)
98160...
99161```
100162
101- ```
163+ ``` shell
102164$ curl " localhost:9000/generate?hrp=tp" | jq
103165{
104166 " seed" : " UeItRbah4gE-syrw1EaXVKyg3GKWqfZqOztWNAXfnUME-bMpjp4jT0YxzEBWBA33_QWDAmeFE1I_hNlt2xJJew==" ,
@@ -139,7 +201,7 @@ $ curl "localhost:9000/generate?hrp=tp&seed=UeItRbah4gE-syrw1EaXVKyg3GKWqfZqOztW
139201```
140202
141203# Running via docker
142- ```
204+ ``` shell
143205# Default listen port is 7000
144206$ docker run -p 7000:7000 -it provenanceio/extkey
145207
0 commit comments