├── .gitignore ├── LICENSE ├── README.adoc ├── generate_wallets.js ├── import_privkeys.sh ├── package-lock.json ├── package.json └── wallets.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | 3 | ### JetBrains template 4 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm 5 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 6 | 7 | /.idea/ 8 | 9 | # User-specific stuff 10 | .idea/**/workspace.xml 11 | .idea/**/tasks.xml 12 | .idea/**/usage.statistics.xml 13 | .idea/**/dictionaries 14 | .idea/**/shelf 15 | 16 | # Generated files 17 | .idea/**/contentModel.xml 18 | 19 | # Sensitive or high-churn files 20 | .idea/**/dataSources/ 21 | .idea/**/dataSources.ids 22 | .idea/**/dataSources.local.xml 23 | .idea/**/sqlDataSources.xml 24 | .idea/**/dynamic.xml 25 | .idea/**/uiDesigner.xml 26 | .idea/**/dbnavigator.xml 27 | 28 | # Gradle 29 | .idea/**/gradle.xml 30 | .idea/**/libraries 31 | 32 | # Gradle and Maven with auto-import 33 | # When using Gradle or Maven with auto-import, you should exclude module files, 34 | # since they will be recreated, and may cause churn. Uncomment if using 35 | # auto-import. 36 | # .idea/modules.xml 37 | # .idea/*.iml 38 | # .idea/modules 39 | # *.iml 40 | # *.ipr 41 | 42 | # CMake 43 | cmake-build-*/ 44 | 45 | # Mongo Explorer plugin 46 | .idea/**/mongoSettings.xml 47 | 48 | # File-based project format 49 | *.iws 50 | 51 | # IntelliJ 52 | out/ 53 | 54 | # mpeltonen/sbt-idea plugin 55 | .idea_modules/ 56 | 57 | # JIRA plugin 58 | atlassian-ide-plugin.xml 59 | 60 | # Cursive Clojure plugin 61 | .idea/replstate.xml 62 | 63 | # Crashlytics plugin (for Android Studio and IntelliJ) 64 | com_crashlytics_export_strings.xml 65 | crashlytics.properties 66 | crashlytics-build.properties 67 | fabric.properties 68 | 69 | # Editor-based Rest Client 70 | .idea/httpRequests 71 | 72 | # Android studio 3.1+ serialized cache file 73 | .idea/caches/build_file_checksums.ser 74 | 75 | 76 | ### macOS template 77 | # General 78 | .DS_Store 79 | .AppleDouble 80 | .LSOverride 81 | 82 | # Icon must end with two \r 83 | Icon 84 | 85 | # Thumbnails 86 | ._* 87 | 88 | # Files that might appear in the root of a volume 89 | .DocumentRevisions-V100 90 | .fseventsd 91 | .Spotlight-V100 92 | .TemporaryItems 93 | .Trashes 94 | .VolumeIcon.icns 95 | .com.apple.timemachine.donotpresent 96 | 97 | # Directories potentially created on remote AFP share 98 | .AppleDB 99 | .AppleDesktop 100 | Network Trash Folder 101 | Temporary Items 102 | .apdisk 103 | 104 | ### Node template 105 | # Logs 106 | logs 107 | *.log 108 | npm-debug.log* 109 | yarn-debug.log* 110 | yarn-error.log* 111 | lerna-debug.log* 112 | 113 | # Diagnostic reports (https://nodejs.org/api/report.html) 114 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 115 | 116 | # Runtime data 117 | pids 118 | *.pid 119 | *.seed 120 | *.pid.lock 121 | 122 | # Directory for instrumented libs generated by jscoverage/JSCover 123 | lib-cov 124 | 125 | # Coverage directory used by tools like istanbul 126 | coverage 127 | *.lcov 128 | 129 | # nyc test coverage 130 | .nyc_output 131 | 132 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 133 | .grunt 134 | 135 | # Bower dependency directory (https://bower.io/) 136 | bower_components 137 | 138 | # node-waf configuration 139 | .lock-wscript 140 | 141 | # Compiled binary addons (https://nodejs.org/api/addons.html) 142 | build/Release 143 | 144 | # Dependency directories 145 | node_modules/ 146 | jspm_packages/ 147 | 148 | # TypeScript v1 declaration files 149 | typings/ 150 | 151 | # TypeScript cache 152 | *.tsbuildinfo 153 | 154 | # Optional npm cache directory 155 | .npm 156 | 157 | # Optional eslint cache 158 | .eslintcache 159 | 160 | # Optional REPL history 161 | .node_repl_history 162 | 163 | # Output of 'npm pack' 164 | *.tgz 165 | 166 | # Yarn Integrity file 167 | .yarn-integrity 168 | 169 | # dotenv environment variables file 170 | .env 171 | .env.test 172 | 173 | # parcel-bundler cache (https://parceljs.org/) 174 | .cache 175 | 176 | # next.js build output 177 | .next 178 | 179 | # nuxt.js build output 180 | .nuxt 181 | 182 | # vuepress build output 183 | .vuepress/dist 184 | 185 | # Serverless directories 186 | .serverless/ 187 | 188 | # FuseBox cache 189 | .fusebox/ 190 | 191 | # DynamoDB Local files 192 | .dynamodb/ 193 | 194 | README.html 195 | README.pdf 196 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Bitcoin Studio 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | = Bitcoin Test Wallets Generator 2 | 3 | A Bitcoin test wallet's generator to help bitcoin programmers. 4 | 5 | 6 | == Features 7 | 8 | * Generate six wallets (Alice, Bob, Carol, Dave Eve, Mallory) 9 | * Create a json file detailing all the cryptographic materials 10 | * Import private keys to Bitcoin Core 11 | 12 | 13 | == Requirements 14 | 15 | * >= NodeJS v10 16 | * https://stedolan.github.io/jq/download/[jq - JSON processor] 17 | * Bash or a Bash interpreter like Cygwin or Windows Subsystem for Linux (WSL) 18 | 19 | 20 | == How to use it 21 | 22 | First launch Bitcoin Core so that the library can import the private keys. 23 | 24 | NOTE: By default, the library is set to the regtest network and uses hardcoded 16 bytes entropy. 25 | 26 | npx bitcointestwalletsgenerator 27 | 28 | or 29 | 30 | git clone git@github.com:bitcoin-studio/bitcoin-test-wallets-generator.git 31 | node generate_wallets.js 32 | 33 | {nbsp} 34 | 35 | Run with a new set of entropy 36 | 37 | NOTE: 16 bytes entropy = 12 words mnemonic + 38 | 32 bytes entropy = 24 words mnemonic 39 | 40 | npx bitcointestwalletsgenerator --entropy 16 41 | 42 | {nbsp} 43 | 44 | Set the network 45 | 46 | npx bitcointestwalletsgenerator --network mainnet 47 | 48 | {nbsp} 49 | 50 | Set the network and entropy 51 | 52 | npx bitcointestwalletsgenerator -n testnet -e 32 53 | 54 | {nbsp} 55 | 56 | Verbose 57 | 58 | npx bitcointestwalletsgenerator -v 59 | 60 | {nbsp} 61 | 62 | Help 63 | 64 | npx bitcointestwalletsgenerator --help 65 | 66 | {nbsp} 67 | 68 | Check that private key import was successful with the `listlabels` command in Bitcoin Core console 69 | -------------------------------------------------------------------------------- /generate_wallets.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * Features 5 | * - Generate wallets (Alice, Bob, Carol, Dave Eve, Mallory) 6 | * - Create a json file with all cryptographic materials 7 | * - Import private keys to Bitcoin Core 8 | */ 9 | const crypto = require("crypto") 10 | const program = require('commander') 11 | const { exec } = require('child_process') 12 | const fs = require("fs") 13 | const path = require('path') 14 | const bitcoin = require('bitcoinjs-lib') 15 | const bip32 = require('bip32') 16 | const bip39 = require('bip39') 17 | 18 | program 19 | .option( 20 | '-e, --entropy ', 21 | 'generate wallets with new entropy \n' + 22 | '16 bytes entropy => 12 mnemonic words \n' + 23 | '32 bytes entropy => 24 mnemonic words') 24 | .option( 25 | '-n, --network ', 26 | 'set bitcoin network \n' + 27 | 'regtest, testnet or mainnet', 28 | 'regtest') 29 | .option( 30 | '-v, --verbose', 31 | 'verbose', 32 | false) 33 | .parse(process.argv) 34 | 35 | const network = bitcoin.networks[program.network] 36 | let wallets 37 | 38 | if (program.entropy) { 39 | wallets = [ 40 | {alice: crypto.randomBytes(Number(program.entropy)).toString("hex")}, 41 | {bob: crypto.randomBytes(Number(program.entropy)).toString("hex")}, 42 | {carol: crypto.randomBytes(Number(program.entropy)).toString("hex")}, 43 | {dave: crypto.randomBytes(Number(program.entropy)).toString("hex")}, 44 | {eve: crypto.randomBytes(Number(program.entropy)).toString("hex")}, 45 | {mallory: crypto.randomBytes(Number(program.entropy)).toString("hex")} 46 | ] 47 | } else { 48 | wallets = [ 49 | {alice: '182301471f6892728ae56bb95b54396e'}, 50 | {bob: '28c8b37e1462a460fafa440d3ec66d29'}, 51 | {carol: '61628dbe355f4675d895d399b984aaf4'}, 52 | {dave: '6dc790b775c765abbbd981c0cdbbce9e'}, 53 | {eve: 'd8ec0331d6228a59b17cb412700761f0'}, 54 | {mallory: '6af8462dd020ff7e2239a0a346d27448'} 55 | ] 56 | } 57 | 58 | // Conditional log 59 | const log = (s, v) => { 60 | if (program.verbose) { 61 | s ? console.log(s) : console.log() 62 | v && console.log(v) 63 | } 64 | } 65 | 66 | // Capitalize 67 | const capitalize = (s) => { 68 | return s.charAt(0).toUpperCase() + s.slice(1) 69 | } 70 | 71 | /** 72 | * Create a json file with cryptographic materials 73 | */ 74 | let walletsJSON="{" 75 | 76 | // Iterate on wallets 77 | wallets.forEach((wallet, wallet_index) => { 78 | // 79 | let walletName = capitalize(Object.keys(wallet)[0]) 80 | 81 | // Entropy 82 | let entropy = wallet[Object.keys(wallet)] 83 | log(`${walletName} entropy:`, entropy) 84 | // Get mnemonic from entropy 85 | let mnemonic = bip39.entropyToMnemonic(wallet[Object.keys(wallet)]) 86 | log(`${walletName} mnemonic:`, mnemonic) 87 | // Get seed from mnemonic 88 | let seed = bip39.mnemonicToSeedSync(mnemonic) 89 | log(`${walletName} seed:`, seed.toString('hex')) 90 | 91 | // Get master BIP32 master from seed 92 | let master = bip32.fromSeed(seed, network) 93 | 94 | // Get BIP32 extended private key 95 | let xprivMaster = master.toBase58() 96 | log(`${walletName} master xpriv:`, xprivMaster) 97 | // Get master EC private key 98 | let privKeyMaster = master.privateKey.toString('hex') 99 | log(`${walletName} master privKey:`, privKeyMaster) 100 | // Get private key WIF 101 | let wifMaster = master.toWIF() 102 | log(`${walletName} master wif:`, wifMaster) 103 | 104 | // Get BIP32 extended master public key 105 | let xpubMaster = master.neutered().toBase58() 106 | log(`${walletName} master xpub:`, xpubMaster) 107 | // Get master public key 108 | let pubKeyMaster = master.publicKey.toString('hex') 109 | log(`${walletName} master pubKey:`, pubKeyMaster) 110 | // Get master public key fingerprint 111 | let pubKeyFingerprintMaster = bitcoin.crypto.hash160(master.publicKey).slice(0,4).toString('hex') 112 | log(`${walletName} master pubKey fingerprint:`, pubKeyFingerprintMaster) 113 | log() 114 | 115 | // Add cryptographic materials to json file 116 | walletsJSON += 117 | `"${Object.keys(wallet)}": [{ 118 | "entropy": "${entropy}", 119 | "mnemonic": "${mnemonic}", 120 | "seed": "${seed.toString('hex')}", 121 | "xprivMaster": "${xprivMaster}", 122 | "privKeyMaster": "${privKeyMaster}", 123 | "wifMaster": "${wifMaster}", 124 | "xpubMaster": "${xpubMaster}", 125 | "pubKeyMaster": "${pubKeyMaster}", 126 | "pubKeyFingerprintMaster": "${pubKeyFingerprintMaster}" 127 | },` 128 | 129 | /** 130 | * We use the Bitcoin Core BIP32 derivation path 131 | * m/0'/0'/i' 132 | * 133 | * We derive 3 child nodes (keypairs, addresses, etc) per wallet 134 | */ 135 | ;[...Array(3)].forEach((u, i) => { 136 | // Get child node 137 | let child = master.derivePath(`m/0'/0'/${i}'`) 138 | 139 | // Get child extended private key 140 | let xpriv = child.toBase58() 141 | log(`${walletName} child ${i} xpriv:`, xpriv) 142 | // Get child EC private key 143 | let privKey = child.privateKey.toString('hex') 144 | log(`${walletName} child ${i} privKey:`, privKey) 145 | // Get child wif private key 146 | let wif = child.toWIF() 147 | log(`${walletName} child ${i} wif:`, wif) 148 | 149 | // Get child extended public key 150 | let xpub = child.neutered().toBase58() 151 | log(`${walletName} child ${i} xpub:`, xpub) 152 | // Get child EC public key 153 | let pubKey = child.publicKey.toString('hex') 154 | log(`${walletName} child ${i} pubKey:`, pubKey) 155 | // Get child EC public key hash 156 | let pubKeyHash = bitcoin.crypto.hash160(child.publicKey).toString('hex') 157 | log(`${walletName} child ${i} pubKey hash:`, pubKeyHash) 158 | // Get child EC public key fingerprint 159 | let pubKeyFingerprint = bitcoin.crypto.hash160(child.publicKey).slice(0,4).toString('hex') 160 | log(`${walletName} child ${i} pubKey fingerprint:`, pubKeyFingerprint) 161 | 162 | // Addresses 163 | // P2PKH 164 | let p2pkh = bitcoin.payments.p2pkh({pubkey: child.publicKey, network}).address 165 | log(`${walletName} child ${i} address p2pkh:`, p2pkh) 166 | // P2WPKH 167 | let p2wpkh = bitcoin.payments.p2wpkh({pubkey: child.publicKey, network}) 168 | let p2wpkhAddress = p2wpkh.address 169 | log(`${walletName} child ${i} address p2wpkh:`, p2wpkhAddress) 170 | // P2SH-P2WPKH 171 | let p2sh_p2wpkh = bitcoin.payments.p2sh({redeem: p2wpkh, network}).address 172 | log(`${walletName} child ${i} address p2sh-p2wpkh:`, p2sh_p2wpkh) 173 | log() 174 | 175 | walletsJSON += 176 | `{ 177 | "xpriv": "${xpriv}", 178 | "privKey": "${privKey}", 179 | "wif": "${wif}", 180 | "xpub": "${xpub}", 181 | "pubKey": "${pubKey}", 182 | "pubKeyHash": "${pubKeyHash}", 183 | "pubKeyFingerprint": "${pubKeyFingerprint}", 184 | "p2pkh": "${p2pkh}", 185 | "p2sh-p2wpkh": "${p2sh_p2wpkh}", 186 | "p2wpkh": "${p2wpkhAddress}", 187 | "path": "m/0\\u0027/0\\u0027/${i}\\u0027" 188 | }` 189 | 190 | // Add comma for all derivations but not last 191 | if (i < 2) walletsJSON += `,` 192 | }) 193 | 194 | // No comma for last wallet 195 | wallet_index === 5 ? walletsJSON+="]}" : walletsJSON+="]," 196 | log() 197 | }) 198 | 199 | // Check if installed as a node module or not 200 | const nodeModulePath = path.resolve(__dirname, 'node_modules', 'bitcointestwalletsgenerator') 201 | const libDir = fs.existsSync(nodeModulePath) ? nodeModulePath : __dirname 202 | 203 | exec( 204 | // Write the json file 205 | `echo '${walletsJSON}' | jq . > wallets.json`, (error, stdout, stderr) => { 206 | if (error) { 207 | console.error('stderr', stderr) 208 | throw error 209 | } 210 | stdout && console.log(stdout) 211 | console.log('wallets.json has been written successfully') 212 | console.log() 213 | 214 | // Import private keys to Bitcoin Core 215 | exec('./import_privkeys.sh', {'cwd': libDir}, (error, stdout, stderr) => { 216 | if (error) { 217 | console.error(stderr) 218 | } else { 219 | console.log('Private keys have been imported to Bitcoin Core successfully') 220 | } 221 | }) 222 | }) 223 | -------------------------------------------------------------------------------- /import_privkeys.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Usage: die [exit_code] [error message] 4 | die() { 5 | local code=$? now=$(date +%T.%N) 6 | if [ "$1" -ge 0 ] 2>/dev/null; then # assume $1 is an error code if numeric 7 | code="$1" 8 | shift 9 | fi 10 | echo "$0: ERROR at ${now%???}${1:+: $*}" >&2 11 | exit $code 12 | } 13 | 14 | count=0 15 | wallets=(alice_1 alice_2 alice_3 bob_1 bob_2 bob_3 carol_1 carol_2 carol_3 dave_1 dave_2 dave_3 eve_1 eve_2 eve_3 mallory_1 mallory_2 mallory_3) 16 | 17 | # Check if it exists as a node module or not 18 | walletsPath=$(cat ../../wallets.json | grep -q 'alice' && echo "../../wallets.json" || echo "./wallets.json") 19 | 20 | # Returns all wif without null values 21 | cat ${walletsPath} | jq -r '.[][] | (.wif // empty)' | 22 | # Iterate 23 | while read -r wif 24 | do 25 | bitcoin-cli importprivkey ${wif} ${wallets[count]} || die 26 | ((count ++)) 27 | done 28 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bitcointestwalletsgenerator", 3 | "version": "2.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/node": { 8 | "version": "10.12.18", 9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", 10 | "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" 11 | }, 12 | "base-x": { 13 | "version": "3.0.7", 14 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", 15 | "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", 16 | "requires": { 17 | "safe-buffer": "^5.0.1" 18 | } 19 | }, 20 | "bech32": { 21 | "version": "1.1.3", 22 | "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", 23 | "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" 24 | }, 25 | "bindings": { 26 | "version": "1.5.0", 27 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 28 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 29 | "requires": { 30 | "file-uri-to-path": "1.0.0" 31 | } 32 | }, 33 | "bip32": { 34 | "version": "2.0.4", 35 | "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.4.tgz", 36 | "integrity": "sha512-ioPytarPDIrWckWMuK4RNUtvwhvWEc2fvuhnO0WEwu732k5OLjUXv4rXi2c/KJHw9ZMNQMkYRJrBw81RujShGQ==", 37 | "requires": { 38 | "@types/node": "10.12.18", 39 | "bs58check": "^2.1.1", 40 | "create-hash": "^1.2.0", 41 | "create-hmac": "^1.1.7", 42 | "tiny-secp256k1": "^1.1.0", 43 | "typeforce": "^1.11.5", 44 | "wif": "^2.0.6" 45 | } 46 | }, 47 | "bip39": { 48 | "version": "3.0.2", 49 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.2.tgz", 50 | "integrity": "sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==", 51 | "requires": { 52 | "@types/node": "11.11.6", 53 | "create-hash": "^1.1.0", 54 | "pbkdf2": "^3.0.9", 55 | "randombytes": "^2.0.1" 56 | }, 57 | "dependencies": { 58 | "@types/node": { 59 | "version": "11.11.6", 60 | "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", 61 | "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" 62 | } 63 | } 64 | }, 65 | "bip66": { 66 | "version": "1.1.5", 67 | "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", 68 | "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", 69 | "requires": { 70 | "safe-buffer": "^5.0.1" 71 | } 72 | }, 73 | "bitcoin-ops": { 74 | "version": "1.4.1", 75 | "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", 76 | "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" 77 | }, 78 | "bitcoinjs-lib": { 79 | "version": "4.0.5", 80 | "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.5.tgz", 81 | "integrity": "sha512-gYs7K2hiY4Xb96J8AIF+Rx+hqbwjVlp5Zt6L6AnHOdzfe/2tODdmDxsEytnaxVCdhOUg0JnsGpl+KowBpGLxtA==", 82 | "requires": { 83 | "bech32": "^1.1.2", 84 | "bip32": "^1.0.4", 85 | "bip66": "^1.1.0", 86 | "bitcoin-ops": "^1.4.0", 87 | "bs58check": "^2.0.0", 88 | "create-hash": "^1.1.0", 89 | "create-hmac": "^1.1.3", 90 | "merkle-lib": "^2.0.10", 91 | "pushdata-bitcoin": "^1.0.1", 92 | "randombytes": "^2.0.1", 93 | "safe-buffer": "^5.1.1", 94 | "tiny-secp256k1": "^1.0.0", 95 | "typeforce": "^1.11.3", 96 | "varuint-bitcoin": "^1.0.4", 97 | "wif": "^2.0.1" 98 | }, 99 | "dependencies": { 100 | "bip32": { 101 | "version": "1.0.4", 102 | "resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz", 103 | "integrity": "sha512-8T21eLWylZETolyqCPgia+MNp+kY37zFr7PTFDTPObHeNi9JlfG4qGIh8WzerIJidtwoK+NsWq2I5i66YfHoIw==", 104 | "requires": { 105 | "bs58check": "^2.1.1", 106 | "create-hash": "^1.2.0", 107 | "create-hmac": "^1.1.7", 108 | "tiny-secp256k1": "^1.0.0", 109 | "typeforce": "^1.11.5", 110 | "wif": "^2.0.6" 111 | } 112 | } 113 | } 114 | }, 115 | "bn.js": { 116 | "version": "4.11.8", 117 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 118 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 119 | }, 120 | "brorand": { 121 | "version": "1.1.0", 122 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 123 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 124 | }, 125 | "bs58": { 126 | "version": "4.0.1", 127 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", 128 | "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", 129 | "requires": { 130 | "base-x": "^3.0.2" 131 | } 132 | }, 133 | "bs58check": { 134 | "version": "2.1.2", 135 | "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", 136 | "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", 137 | "requires": { 138 | "bs58": "^4.0.0", 139 | "create-hash": "^1.1.0", 140 | "safe-buffer": "^5.1.2" 141 | } 142 | }, 143 | "cipher-base": { 144 | "version": "1.0.4", 145 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 146 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 147 | "requires": { 148 | "inherits": "^2.0.1", 149 | "safe-buffer": "^5.0.1" 150 | } 151 | }, 152 | "commander": { 153 | "version": "4.0.1", 154 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", 155 | "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" 156 | }, 157 | "create-hash": { 158 | "version": "1.2.0", 159 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 160 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 161 | "requires": { 162 | "cipher-base": "^1.0.1", 163 | "inherits": "^2.0.1", 164 | "md5.js": "^1.3.4", 165 | "ripemd160": "^2.0.1", 166 | "sha.js": "^2.4.0" 167 | } 168 | }, 169 | "create-hmac": { 170 | "version": "1.1.7", 171 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 172 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 173 | "requires": { 174 | "cipher-base": "^1.0.3", 175 | "create-hash": "^1.1.0", 176 | "inherits": "^2.0.1", 177 | "ripemd160": "^2.0.0", 178 | "safe-buffer": "^5.0.1", 179 | "sha.js": "^2.4.8" 180 | } 181 | }, 182 | "elliptic": { 183 | "version": "6.5.3", 184 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", 185 | "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", 186 | "requires": { 187 | "bn.js": "^4.4.0", 188 | "brorand": "^1.0.1", 189 | "hash.js": "^1.0.0", 190 | "hmac-drbg": "^1.0.0", 191 | "inherits": "^2.0.1", 192 | "minimalistic-assert": "^1.0.0", 193 | "minimalistic-crypto-utils": "^1.0.0" 194 | } 195 | }, 196 | "file-uri-to-path": { 197 | "version": "1.0.0", 198 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 199 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 200 | }, 201 | "hash-base": { 202 | "version": "3.0.4", 203 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 204 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 205 | "requires": { 206 | "inherits": "^2.0.1", 207 | "safe-buffer": "^5.0.1" 208 | } 209 | }, 210 | "hash.js": { 211 | "version": "1.1.7", 212 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 213 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 214 | "requires": { 215 | "inherits": "^2.0.3", 216 | "minimalistic-assert": "^1.0.1" 217 | } 218 | }, 219 | "hmac-drbg": { 220 | "version": "1.0.1", 221 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 222 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 223 | "requires": { 224 | "hash.js": "^1.0.3", 225 | "minimalistic-assert": "^1.0.0", 226 | "minimalistic-crypto-utils": "^1.0.1" 227 | } 228 | }, 229 | "inherits": { 230 | "version": "2.0.4", 231 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 232 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 233 | }, 234 | "md5.js": { 235 | "version": "1.3.5", 236 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 237 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 238 | "requires": { 239 | "hash-base": "^3.0.0", 240 | "inherits": "^2.0.1", 241 | "safe-buffer": "^5.1.2" 242 | } 243 | }, 244 | "merkle-lib": { 245 | "version": "2.0.10", 246 | "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", 247 | "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" 248 | }, 249 | "minimalistic-assert": { 250 | "version": "1.0.1", 251 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 252 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 253 | }, 254 | "minimalistic-crypto-utils": { 255 | "version": "1.0.1", 256 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 257 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 258 | }, 259 | "nan": { 260 | "version": "2.14.0", 261 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 262 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" 263 | }, 264 | "pbkdf2": { 265 | "version": "3.0.17", 266 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", 267 | "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", 268 | "requires": { 269 | "create-hash": "^1.1.2", 270 | "create-hmac": "^1.1.4", 271 | "ripemd160": "^2.0.1", 272 | "safe-buffer": "^5.0.1", 273 | "sha.js": "^2.4.8" 274 | } 275 | }, 276 | "pushdata-bitcoin": { 277 | "version": "1.0.1", 278 | "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", 279 | "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", 280 | "requires": { 281 | "bitcoin-ops": "^1.3.0" 282 | } 283 | }, 284 | "randombytes": { 285 | "version": "2.1.0", 286 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 287 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 288 | "requires": { 289 | "safe-buffer": "^5.1.0" 290 | } 291 | }, 292 | "ripemd160": { 293 | "version": "2.0.2", 294 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 295 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 296 | "requires": { 297 | "hash-base": "^3.0.0", 298 | "inherits": "^2.0.1" 299 | } 300 | }, 301 | "safe-buffer": { 302 | "version": "5.2.0", 303 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 304 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 305 | }, 306 | "sha.js": { 307 | "version": "2.4.11", 308 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 309 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 310 | "requires": { 311 | "inherits": "^2.0.1", 312 | "safe-buffer": "^5.0.1" 313 | } 314 | }, 315 | "tiny-secp256k1": { 316 | "version": "1.1.3", 317 | "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.3.tgz", 318 | "integrity": "sha512-ZpobrhOtHP98VYEN51IYQH1YcrbFpnxFhI6ceWa3OEbJn7eHvSd8YFjGPxbedGCy7PNYU1v/+BRsdvyr5uRd4g==", 319 | "requires": { 320 | "bindings": "^1.3.0", 321 | "bn.js": "^4.11.8", 322 | "create-hmac": "^1.1.7", 323 | "elliptic": "^6.4.0", 324 | "nan": "^2.13.2" 325 | } 326 | }, 327 | "typeforce": { 328 | "version": "1.18.0", 329 | "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", 330 | "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" 331 | }, 332 | "varuint-bitcoin": { 333 | "version": "1.1.2", 334 | "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", 335 | "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", 336 | "requires": { 337 | "safe-buffer": "^5.1.1" 338 | } 339 | }, 340 | "wif": { 341 | "version": "2.0.6", 342 | "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", 343 | "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", 344 | "requires": { 345 | "bs58check": "<3.0.0" 346 | } 347 | } 348 | } 349 | } 350 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bitcointestwalletsgenerator", 3 | "version": "2.0.1", 4 | "description": "Bitcoin test wallets generator to help bitcoin programmers", 5 | "main": "generate_wallets.js", 6 | "scripts": { 7 | "entropy": "node -p 'require(\"crypto\").randomBytes(Number(process.argv.slice(1)[0])).toString(\"hex\");'" 8 | }, 9 | "bin": "./generate_wallets.js", 10 | "author": { 11 | "name": "Stephane Roche", 12 | "email": "bitcoin-studio@protonmail.com", 13 | "url": "https://bitcoin-studio.com" 14 | }, 15 | "license": "MIT", 16 | "dependencies": { 17 | "bip32": "^2.0.4", 18 | "bip39": "^3.0.2", 19 | "bitcoinjs-lib": "^4.0.5", 20 | "commander": "^4.0.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /wallets.json: -------------------------------------------------------------------------------- 1 | { 2 | "alice": [ 3 | { 4 | "entropy": "182301471f6892728ae56bb95b54396e", 5 | "mnemonic": "blouse blossom fade disagree matrix deer clog pulp rich survey atom tackle", 6 | "seed": "91a60250b6a45c07cdb3e0394cc2ebd1bb91bd2628c586a3131ead9c8c0d407ba06c8b4bea6a6a475e06ea312241de050fc9c88b651ee3ddd5e1379de97b1f32", 7 | "xprivMaster": "tprv8ZgxMBicQKsPemXDEPPcJwAkrgszB75x5Lv99sqqifnLgcqrHBoXrTKbeQAMncrUwV6xwqZmhJXzKzQZuqcETEE2sdvNKYLQnZAKAGp7CRs", 8 | "privKeyMaster": "3db7641394f017746d9f38125eb1e84b6ee8db0e1939949e97802904fc72bdb0", 9 | "wifMaster": "cPefpopKGSrh6jh7scQt8jfq9CEWCNGhruNZ61R5BGqaqVAtgVp6", 10 | "xpubMaster": "tpubD6NzVbkrYhZ4YEZ1834CiLpsRiPvLSGreeWvSPt98wajX76cuad82wwTpZWRn74XpBWWG8s1F2xwjy4d8fZbRE8NrTK4n26a5uChTHhgpf2", 11 | "pubKeyMaster": "0379b9bbb9fff8a286dddcda0ec3fc1172b3320f0a8233032d3071ea70bfab95c2", 12 | "pubKeyFingerprintMaster": "96a1f656" 13 | }, 14 | { 15 | "xpriv": "tprv8fdMUVqCQ5pAQLj3ReLEQevoNeni1eAqCTrbgLKE1cJt7iN3baed3DmGWpR7NRssvdBE8qqQVLVGaWaZ37A4GCvCzrtQzuVjMqT7dydZf7C", 16 | "privKey": "4dce80aad60aee8ea17c307ae00baa6cff261b780af68b86eedae36ba657dd81", 17 | "wif": "cQBwuzEBYQrbWKFZZFpgitRpdDDxUrT1nzvhDWhxMmFtWdRnrCSm", 18 | "xpub": "tpubDCKPcusSYTVqHokqKHzpp4auwgJeAyMjmmTNxrMXRt7GxCcpDyUDDiP8gybjM2kdkZAqh4z9n7QRDeK8mpsmKymY59KLrg9JPbyjTMfTJQY", 19 | "pubKey": "03745c9aceb84dcdeddf2c3cdc1edb0b0b5af2f9bf85612d73fa6394758eaee35d", 20 | "pubKeyHash": "fb8820f35effa054399540b8ca86040d8ddaa4d5", 21 | "pubKeyFingerprint": "fb8820f3", 22 | "p2pkh": "n4SvybJicv79X1Uc4o3fYXWGwXadA53FSq", 23 | "p2sh-p2wpkh": "2MzFvFvnhFskGnVQpUr1ZPr4wYWLwf211s6", 24 | "p2wpkh": "bcrt1qlwyzpu67l7s9gwv4gzuv4psypkxa4fx4ggs05g", 25 | "path": "m/0'/0'/0'" 26 | }, 27 | { 28 | "xpriv": "tprv8fdMUVqCQ5pAUFBkXM8X4JqeSDhTi1mrmKQcxZW1XeGCfqqhREeWZXP2NoMrjYcfqtZWGTdrLTAxNBhRH7kHYuMuvn2W7kR8sm5b5fyXU9B", 29 | "privKey": "19ce51bca110b5790a1d1abc93783a3694c00e5c5148620cd6f27fac611c3f09", 30 | "wif": "cNSs88aArgZeHrq7wpq8B56k1LGi4BVbSHqzYDic9ztju6TruHM5", 31 | "xpub": "tpubDCKPcusSYTVqMiDYQzo7TiVm1FDPsLxmLd1QF5YJwv4bWL6U3dU6k1ztYwTsNzCkqaxkHmLsnGY25JoLgzsyzcUN77RBMLgjXGnGMmtV3ye", 32 | "pubKey": "02b233055e060a554201d227a0b9d019cf24468ab1a7d9446c423a198cfbf956d5", 33 | "pubKeyHash": "0b85d9b75f55ad9d42ea2ae9a245568ca34932f6", 34 | "pubKeyFingerprint": "0b85d9b7", 35 | "p2pkh": "mgZt5Fqzszdwf8hDgZt3mUf7js611aKRPc", 36 | "p2sh-p2wpkh": "2N95xbaytPcRBwi2HmUTumE7YSfLBk8po99", 37 | "p2wpkh": "bcrt1qpwzand6l2kke6sh29t56y32k3j35jvhkrn9s5l", 38 | "path": "m/0'/0'/1'" 39 | }, 40 | { 41 | "xpriv": "tprv8fdMUVqCQ5pAVpmNgQycAZx5WdrxPqVbNaji2Sos97Yg2WE1WWGMGFtBQisYYVxfLN4jGFpFrFLCcoA9bECvkrL8Zb2Ymg2sNA6tTup1mp5", 42 | "privKey": "b9ede4ac299cb7473f2516ed2dbc1a3ec6e8cf9cdadeac00c938fb174d6662d5", 43 | "wif": "cTp88sXB3ZDrWNnD1BtShjREFrw8eCs87bZncrZitryhFbiT2mmQ", 44 | "xpub": "tpubDCKPcusSYTVqPHoAa4eCZycC5fNtZAgVwtLVJxrAZPM4rzUn8u5wSkW3apf4pKfn7ABiEc7e3hwKEiJMpDHq9v8qHRXL1xzHi6bS1KoGeJg", 45 | "pubKey": "0220f2d0315bf811009bf82069dc6be7225cab598d0f3504695539d631711b6252", 46 | "pubKeyHash": "f1c63bbd3d0a20865c43406fcfc09ad953b23aa0", 47 | "pubKeyFingerprint": "f1c63bbd", 48 | "p2pkh": "n3ZLcnCtfRucM4WLnXqukm9bTdb1PWeETk", 49 | "p2sh-p2wpkh": "2NC9jSfJyLLAKQgzxSJ7QGrq4X3Wgh34kCb", 50 | "p2wpkh": "bcrt1q78rrh0fapgsgvhzrgphulsy6m9fmyw4q2ehuh6", 51 | "path": "m/0'/0'/2'" 52 | } 53 | ], 54 | "bob": [ 55 | { 56 | "entropy": "28c8b37e1462a460fafa440d3ec66d29", 57 | "mnemonic": "churn easily test churn clean corn typical embrace artwork wage opera fame", 58 | "seed": "756cc32ffb263732758726f6c1e5a0b3a2a7aa76556567946f0277634f6f9184f33805a1bacc067089c831ee9c6742d8d391a1c08129775756afc36c3b8767c2", 59 | "xprivMaster": "tprv8ZgxMBicQKsPe58FjHQLEzn1FBrxyHPUhQtpayjMWssUfraCxP5GbAcZdwnPfKkQcSA3jWSCGC1WH5An9piEJho6cpRXS9fAWsXHUMYaQzA", 60 | "privKeyMaster": "e5ae5079523415a4290b0c02615732a50fdf84f8d1100bf2f5c8f02e1de6cce0", 61 | "wifMaster": "cVHAtbY8yTpRaFsPwdvRtNMNeTmVQP7LLW7FD53Mbjan4c55oS62", 62 | "xpubMaster": "tpubD6NzVbkrYhZ4XYA3cw4veQS7pDNu8caPGiVbsVmew9fsWLpyamtrmfERp5nTQkGidxAEF5aqGX7QVr7RtQUuUMMNznzdmY7zGmtpaCaKtxP", 63 | "pubKeyMaster": "037092709cc49343652384627fee5c9db3c3680d699d989dfb46a6fd28a1ff8fb2", 64 | "pubKeyFingerprintMaster": "42d18d1f" 65 | }, 66 | { 67 | "xpriv": "tprv8h4mmmehwB5GKzoVGQxqnDNGqbqgsXga2hh4iQ7MmiHA5bd6qDWzqAzReUe3mcH4eHRLcuF7YmHz8ctGpc69wcZL7QoXwjAEc9GRLfWeFZt", 68 | "privKey": "1d9944b5497b6b9ac6f52ac3bc077bc01610b8401d799eaa35e83b44ed858139", 69 | "wif": "cNaEjitvA19JZxWAFyCFMsm16TvGEmVAW3AkPnVr8E9vgwdZWMGV", 70 | "xpub": "tpubDDkovBgx5YkwDTqHA4dSBd2PQdMd2rsUc1Hqzv9fBz5Yv5ssTcLb1fcHpcKqHUpG9cHMZDSpeWcq3XJLvHDJeW91aFuuR3y96dHKZkdw1X2", 71 | "pubKey": "027efbabf425077cdbceb73f6681c7ebe2ade74a65ea57ebcf0c42364d3822c590", 72 | "pubKeyHash": "03f338e0f898ef40f1eb6734dc1f5aa72a4161f8", 73 | "pubKeyFingerprint": "03f338e0", 74 | "p2pkh": "mfsqh18UT3XjpJ8yVeiM7YX1mLxq5REG9d", 75 | "p2sh-p2wpkh": "2N8QRLVT9VTa5ryoqSbGhGqq1x3FKp9SfoJ", 76 | "p2wpkh": "bcrt1qq0en3c8cnrh5pu0tvu6dc8665u4yzc0cw9nweq", 77 | "path": "m/0'/0'/0'" 78 | }, 79 | { 80 | "xpriv": "tprv8h4mmmehwB5GNHiAy8Q4xn7rTT67amTTHdsm3myMcPhXvxcnapcHNhKAWVPmxvAVLs2TFQUQSjw3vzHiVMp1gmb9GPohqAgPJZa9vp97HV5", 81 | "privKey": "03993d9ca5b282eea78ac41afa713be51dad940b9976c073ab190ee80d0a239d", 82 | "wif": "cMhhNRoKiJP37jwwDjoXBhMRk8aEiTTe7fLbFNUc3HwD4jLciNfd", 83 | "xpub": "tpubDDkovBgx5YkwFkjxrn4fNBmy2Uc3k6eMrwUYLJ1f2fVvmSsZDDRsZBw2gdxPy54XpMUPCKruAaUsGa29X16mcYX6n7aK1uvK37EHUpd7cCb", 84 | "pubKey": "02d8698e38dc413e175c60290b223c0cf175d15f22c889bc98849e81548e1a3168", 85 | "pubKeyHash": "1bf41b0d5729e00b36bf0237a84d0b9746fcc1cd", 86 | "pubKeyFingerprint": "1bf41b0d", 87 | "p2pkh": "mi4kxzYMgjqdqjvfLkHGPi7R1ZrLMx2BH7", 88 | "p2sh-p2wpkh": "2N6j5eEZzeouYMkHLXU5vU4BorXPhAR43NZ", 89 | "p2wpkh": "bcrt1qr06pkr2h98sqkd4lqgm6sngtjar0eswdrpttw7", 90 | "path": "m/0'/0'/1'" 91 | }, 92 | { 93 | "xpriv": "tprv8h4mmmehwB5GS36HRJyanaa9Z7DLVry1Z8sp9vDett8df4JiNVUR3oa6uu4S1LSjXmMWHcEbCGYmtddYFyZzTuAa2ofRSm1cWcdZqhNca7w", 94 | "privKey": "9d1dc4bd64a510f1ec30ce1712bc50b2824eabfcae0fcd79976b2110df7ddfbd", 95 | "wif": "cSr7dfYATGQzMaS66caTGX3n2owEr5YcMUdmHSc3prj8zfusFz4s", 96 | "xpub": "tpubDDkovBgx5YkwKW85JxeBBzEG88jGfC9v8SUbSSFxK9w2VYZUztJ1EJBy62ptW9urcCfT74q2kKyBMvoejdks1EzRvZHdYzxbrC8ATcXimvk", 97 | "pubKey": "03091bf7a5f90630c7c6c10d68d5555917668d307565ed7ba458e69d137b33f86b", 98 | "pubKeyHash": "8236b4b6e79b48df5ca2617c6bb73fa281a83e07", 99 | "pubKeyFingerprint": "8236b4b6", 100 | "p2pkh": "msPTg2SY8YasMCcCxgA4LocqdxP9SDz8uu", 101 | "p2sh-p2wpkh": "2NEBdHDRNphUosaHENxyxs3Qp498NHgVtUz", 102 | "p2wpkh": "bcrt1qsgmtfdh8ndyd7h9zv97xhdel52q6s0s8597nzc", 103 | "path": "m/0'/0'/2'" 104 | } 105 | ], 106 | "carol": [ 107 | { 108 | "entropy": "61628dbe355f4675d895d399b984aaf4", 109 | "mnemonic": "gesture behave hurdle height virtual depend girl risk often slow click trial", 110 | "seed": "2c335b239ca3f9f1b4ca0a3026832214ca6209877009e18b90ab5b9f54706161e3109e98b46fc2a78984503467c1899ae0690cfd89112ed0cee5f9b9c7ab84c5", 111 | "xprivMaster": "tprv8ZgxMBicQKsPeDhXotfwyNcbMKXGkqErJZ5eDgsfSpJ31fgry34VBqjnyCSVgRkGHms78MN3EHqp91s2Crzr4aFHm2taEiKWRQk6jAde4Zm", 112 | "privKeyMaster": "2d7d443d24cfe1c5c86669dd0ae28c63812acfc1d9ff08943ae5ecde66f96135", 113 | "wifMaster": "cP78KGzMDDqXcapTjFjakbBAqgyW6q1T8GgTMCbcd22mDS6WNrS3", 114 | "xpubMaster": "tpubD6NzVbkrYhZ4XgjKhYLYNnGhvM3CvARksrgRWCuxs66Rr9wdbRt5NLMf9NcQBbrjbbVYUKNrQwtikYwDMsNGxerTcSrJEcS5sehkxzZJd9m", 115 | "pubKeyMaster": "03d61decee15d4cdae07e0c665cf26e54846272d0791a953dfd426f607280bcfe4", 116 | "pubKeyFingerprintMaster": "8d3c2e13" 117 | }, 118 | { 119 | "xpriv": "tprv8gwH3MfJRRBk2RD4WUeMz5aYttG3NQpCL5W4a97pdyQW5DTCukxA9Bi21vvaB1ys1t89ywak4CdKzzRRbxPhwmkQZHiVkJFmNb5L9bDdG7Y", 120 | "privKey": "5dd33245e949acf42a2d066a498a4060faf87a154d8889a3fbedcf6df2f10ef8", 121 | "wif": "cQj5thuudcupEQo5WTYqVzs6ZtPGkdfCepNUpgJe6VAFeKFfhMtW", 122 | "xpub": "tpubDDdKBmhYZnsQutErQ8JxPVEfTumyXk16uP6qrfA84FCtuhhyY9mkKgKtC3biozuUVov2GXNszmKPVMTbg7ftPY3RBhDw897S7eHrDjzX4vJ", 123 | "pubKey": "023a11cfcedb993ff2e7523f92e359c4454072a66d42e8b74b4b27a8a1258abddd", 124 | "pubKeyHash": "1053863792b523fff2252ea687da9ebcd402ead1", 125 | "pubKeyFingerprint": "10538637", 126 | "p2pkh": "mh1HAVWhKkzcvF41MNRKfakVvPV2sfaf3R", 127 | "p2sh-p2wpkh": "2MyfuZkCtYeSEA4LjJAkkxW6zxdyhKnVyBX", 128 | "p2wpkh": "bcrt1qzpfcvdujk53llu3996ng0k57hn2q96k3dwmytw", 129 | "path": "m/0'/0'/0'" 130 | }, 131 | { 132 | "xpriv": "tprv8gwH3MfJRRBk3m5Ym1CCMg8ixcr2CvBQsFPwPgK4rbKHLPAR5g32WFoeAxuMiAWfjff7e7651QB4ZHSaSVLYGQ7P1g3nVtqemqmvnsnNDQ6", 133 | "privKey": "2b8fba1aa3e324adda8f828aeafb4e5197090deb8b7fdf6f528688a832d80158", 134 | "wif": "cP3NxUDcpQGmSEftJ9VVznpMXh8AHkyj9qczSUz2HHjweK2PjcsJ", 135 | "xpub": "tpubDDdKBmhYZnsQwE7Leernm5nqXeMxNFNKSYzigCMNGs7gAsRBi4rcgkRWM9C5zPjEv4JMwNwV5dCCkK56vUo7a7tBcEJ6pBjYDC4EHLYp5Dm", 136 | "pubKey": "03e3aee22cc50638083afa8bd60da82cc351588619610566ca28cc50620e3f8cd9", 137 | "pubKeyHash": "ed67278516aa8e224479150d8648ca2e0a2c0e9a", 138 | "pubKeyFingerprint": "ed672785", 139 | "p2pkh": "n3AE1ou9qaJvM8yyhEKg8ktDKYY2aJbGcK", 140 | "p2sh-p2wpkh": "2MttMce5bYsZu22bFvXCKcosef9aJ4Bg36s", 141 | "p2wpkh": "bcrt1qa4nj0pgk428zy3rez5xcvjx29c9zcr5654qqzm", 142 | "path": "m/0'/0'/1'" 143 | }, 144 | { 145 | "xpriv": "tprv8gwH3MfJRRBk7Lo7UufdydnNpj1HTQtEAEoG8DWhnakNEkwGLzEmp8Hcev2nFbWgNGj4iDE676VgCHnbi6rzmgfJky8aqm6uXJXnvFbGRsm", 146 | "privKey": "5ec8abddc483200a96ac9f909d30f19fb7a258548888fdc45b85f1840cd8e762", 147 | "wif": "cQkx12ymQJW4yiqRUefqFrYZR6oxHrNBoD7SBcuLTRTRAneFKgTH", 148 | "xpub": "tpubDDdKBmhYZnsQzopuNZLEP3SVPkXDck58jYQ3QjZ1CrYm5FC2yP4MzcuUq5sGGaui58tvE7D7mFyYuKPdgUsNTiVWdoFT9Tg2nMVqUEN8Kdf", 149 | "pubKey": "03db4f9fadddee79aa79591a55548bbb74018ec82460718bba4e46746d5b5e4d32", 150 | "pubKeyHash": "9c936f4d8104d3fe2749497d53e01eee9e074bd3", 151 | "pubKeyFingerprint": "9c936f4d", 152 | "p2pkh": "munrKvk5qGsG63be82rBk34hJqqSnSHWEk", 153 | "p2sh-p2wpkh": "2Mt8ZpgtsnRnY3Lxed4KTExCvJxgePYwuPy", 154 | "p2wpkh": "bcrt1qnjfk7nvpqnfluf6ff9748cq7a60qwj7n99m3l6", 155 | "path": "m/0'/0'/2'" 156 | } 157 | ], 158 | "dave": [ 159 | { 160 | "entropy": "6dc790b775c765abbbd981c0cdbbce9e", 161 | "mnemonic": "horse develop column twist iron still urge coral school horse victory differ", 162 | "seed": "68dff1e20671ca63775bbbb4a939394044ba598c844df10e8e2ed1ecd8f3816f1aee229ab4c53abb59606670c17e1fe920e95dae002b1c6204679ca6842776bf", 163 | "xprivMaster": "tprv8ZgxMBicQKsPdqaJLU6VZJ5jDnsQYjY1yzgWovRFziENRjq4YmwNuTTgGrxLivQmTRbVTpNdgyNMwaE2C8DM4D87RGiPkwQy1jkEWN25GzG", 164 | "privKeyMaster": "d981358d619effdf2f11580f8a4f9b543b8d6b17d4a32dc866d576b2d4dc0a52", 165 | "wifMaster": "cUsW6L1KQiZMLdvVEf9P7etAzTmPrAoQAwfNWCzmQoCRYEPoxjur", 166 | "xpubMaster": "tpubD6NzVbkrYhZ4XJc6E7m5xhjqnpPLi4ivZJHJ6STZQz2mGE5qBAky5x5YT1wm7MXDUjUm4bRWdsWnV35gikapLbQaczSbh9MGYEXft8VLrhq", 167 | "pubKeyMaster": "03e6a1179354dfb1e938e7fdadcb20fa4cd36fe726fe31e723db6197f250699a52", 168 | "pubKeyFingerprintMaster": "56079739" 169 | }, 170 | { 171 | "xpriv": "tprv8g4usdMN5GeR2oru9nZjYXAqNCCG42jt4aYpNLfY2qYFQBUQFnr83KLVjPKvy7Tjfao1Fytb61eJvMbrhF9Z3g14bZNzR84NmB2xLhs7ynE", 172 | "privKey": "22958827ca160b69dc183eb77c340cc9ce3e72045954fd16ad2ffe54979940e9", 173 | "wif": "cNjvpAG2cEqnD8WUb9mpGyqYAczBKHZR5Gj7hWPd9CJGxVoWU1K1", 174 | "xpub": "tpubDCkx23PcDeL5vGth3SEKwvpwwDiCDMvndt9berhqT7LeEfjAtBfiDoxMuXnaZQyTyEtVWPJFmhqgEZzg1Me5Fbrbpz7WyBCibmZUxRJWjXc", 175 | "pubKey": "02e9d617f38f8c3ab9a6bde36ce991bafb295d7adba457699f8620c8160ec9e87a", 176 | "pubKeyHash": "9838d506490d8039a446256c1a20a719d873e9c8", 177 | "pubKeyFingerprint": "9838d506", 178 | "p2pkh": "muPq5yf84ot8JE7FWvaXfqG3YZGpZx9Zg7", 179 | "p2sh-p2wpkh": "2NASxJxnyuV5NgurasHoa6bfAfE8aZwz41T", 180 | "p2wpkh": "bcrt1qnqud2pjfpkqrnfzxy4kp5g98r8v886wgvs9e7r", 181 | "path": "m/0'/0'/0'" 182 | }, 183 | { 184 | "xpriv": "tprv8g4usdMN5GeR5EXkQ2MyjEyQo5DUayML679ctea3regfe8qdUAom2kuHsTwFwaKcNT3n6rvSXrLsuNgtrmSBKEHqBdjS3pFaFfPnevVTi1N", 185 | "privKey": "7e1d9149e1d3e00659f2977a91d9b16fd17e5af51c3b00327ffb2ee8462cd80b", 186 | "wif": "cRorU4b9uwAYuBMdHtLYrfX73hbYGPdedgMQHUJ8Vffz53hDmxn1", 187 | "xpub": "tpubDCkx23PcDeL5xhZYHg2a8edXN6jQkJYEfQkQBAcMGvV4Ud6Q6ZdMDFXA3d8NLQvRdypwYJT2NS7LZFtU8gzrSQqxu4p6bkkrhf2ubHyLBHg", 188 | "pubKey": "03a5c879a6456564f3a09374ab8027e3014517a1a54bceeddc3e29916602b2932b", 189 | "pubKeyHash": "6fccd5594854cca3368a2ebc171a0cdd5a79c7b8", 190 | "pubKeyFingerprint": "6fccd559", 191 | "p2pkh": "mqi6gRN8Faaaf6C9YGgKXXNDEuFiRNTCUM", 192 | "p2sh-p2wpkh": "2MtjZ41f2ELewgXu1FvY4cxEV4ezEU2Y6E7", 193 | "p2wpkh": "bcrt1qdlxd2k2g2nx2xd52967pwxsvm4d8n3acvwg04s", 194 | "path": "m/0'/0'/1'" 195 | }, 196 | { 197 | "xpriv": "tprv8g4usdMN5GeR6bJZq18bgk8BgNqmDQvSwdzQP3wcjwvuq1ktWQxip3RjAsoKty8SWCCgGFk8nadJrGd5nfHWicpCQKRTJMorRXrPWHREz1Z", 198 | "privKey": "543af9d237d3b71d7dd20390d372914c6416709b094bf93849942631814edbfa", 199 | "wif": "cQQS9rEkW5Gi3TWCysdGGaKSZdQKR7qbBStxQtcA8mb7xipGGq45", 200 | "xpub": "tpubDCkx23PcDeL5z4LMieoC69nJFQMhNk7MWwbBfZyvADjJfW1f8onJzY3bLzgVByZQFtQS1dCvALAKqpybK51thXYyKWTxgHT1T9sAKmiFBXx", 201 | "pubKey": "024bbf83821c4102c4bc41846ef02434b78e37a448e8c55a3e6ef0ad701258a755", 202 | "pubKeyHash": "413bf36c4f490f9b86b59a79616b291617db57cd", 203 | "pubKeyFingerprint": "413bf36c", 204 | "p2pkh": "mmTt2ywcvRo91RvutobovP9Q8YZsmpoMTi", 205 | "p2sh-p2wpkh": "2Mw9fS8Zghno4StubxM3X7oQBFkGAg76KrR", 206 | "p2wpkh": "bcrt1qgyalxmz0fy8ehp44nfukz6efzctak47dyxlcv5", 207 | "path": "m/0'/0'/2'" 208 | } 209 | ], 210 | "eve": [ 211 | { 212 | "entropy": "d8ec0331d6228a59b17cb412700761f0", 213 | "mnemonic": "suggest gas small proof chunk coast shine notable bar lens such theme", 214 | "seed": "ae4a2eda97c884469cb593568e2627e47de956bc67e0ba01362cb751c9cfca43477c303063127092f8dae8224a3decc48fa7649a2dae20068103d0aaa456cb09", 215 | "xprivMaster": "tprv8ZgxMBicQKsPf97Q1kY8KhHSLtot3X8mUfoPy4EGjKnRCdGrCk9njeiaSFDXi2Y1JhsyoqReUCM77x4aVNCestM2zEhtGDKyk8CDJyBJ9D8", 216 | "privKeyMaster": "aee3418891a442e70aa994cc1a53cbbcb4871f69ea859539d3ecfd0b079a2da5", 217 | "wifMaster": "cTSfGDXQ27akHj1uUh7omWeWLamhZtiDSNNYg3p8oxwrJi9X4QjA", 218 | "xpubMaster": "tpubD6NzVbkrYhZ4Yc9BuQCij6wYuvKpCrKg3yQBFaGa9bap37Xcq8yNv9LScPDknnEECW7uNDbDxnx1ddnXJqrCd3Rdw6u2Thm5weY4ffZXbaM", 219 | "pubKeyMaster": "033a24eb95576c816e0c7dc1cef571bd9dd2fac8bc11ab3cdba0da49c2cf9070e2", 220 | "pubKeyFingerprintMaster": "8be2c68c" 221 | }, 222 | { 223 | "xpriv": "tprv8gi1x9A98qduZExYc2cwtUtxDAuuRjF5CmR2sWUP73UzcnPLpAmWaFZD85bYvPuhwCwHucydzniA1U6Cmr6XQyVyFEnBhFnYQCS3ignKnPv", 224 | "privKey": "be1cb1b26446b12d82eb0dfa5c3479d75f3b60922baf200d4ca9f2f8ea9349fb", 225 | "wif": "cTxFj3T9nfEjCM21WdYz67yU3FwyptYkXVuznvUS54admvLuNQ6C", 226 | "xpub": "tpubDDQ46ZCPHDKaShzLVgHYHtZ4nCRqb4Ryn51pA2WgXKHPTGe7SZb6kkB5JDh5roQrcGoB43qLnQNhomvzA5u1qtzWLCjH3ebRbEG3Nio4iQn", 227 | "pubKey": "03556bb5a184b64757b70e54c6f067420709971ab4178aebffa338bf6a1db2e3ab", 228 | "pubKeyHash": "6e8f348d0aa3a3ee16440b9496f3d3c0ccf66f6b", 229 | "pubKeyFingerprint": "6e8f348d", 230 | "p2pkh": "mqbYBESF4bib4VTmsqe6twxMDKtVpeeJpt", 231 | "p2sh-p2wpkh": "2N5AemJdXmQbLwF1ndhBtLRocE1UhP2Ja9M", 232 | "p2wpkh": "bcrt1qd68nfrg25w37u9jypw2fdu7ncrx0vmmtwgeht9", 233 | "path": "m/0'/0'/0'" 234 | }, 235 | { 236 | "xpriv": "tprv8gi1x9A98qdubPYqD8DBMZvj5eTUDb6hT7CCWkWFeDfovcWitrN1Fo9vg5HZGNpYeTKyRV2aWk9XJJLipQD4rgi2XAXJbuXAUBDRvRxyfg2", 237 | "privKey": "db1bcd042e7bbb6d05e6babe0c21d0220f0478838a45e1521575b34829653920", 238 | "wif": "cUvcvLkMU6RsTkJNr7JE1rrVPaprPDQCGSELSmmUEWkxUnXUBcHZ", 239 | "xpub": "tpubDDQ46ZCPHDKaUrad6msmkyaqefyQNvHc2QnyoGYZ4VUCm6mVXFBbSHmnrBGbMWcix5hRjYQLg3BEtHTqTZGzFCzez5wbjtGWD6KpP9r9n3R", 240 | "pubKey": "025c459bb32a91d73cad6923de83b7a67887516ce37d7b00947cdeb0c1218d6953", 241 | "pubKeyHash": "40f4168cf1d7aa67906875f089f1b3ada928fc03", 242 | "pubKeyFingerprint": "40f4168c", 243 | "p2pkh": "mmSPwsM5Hb7fp8qoXosGJSZJu1rjwh7CzR", 244 | "p2sh-p2wpkh": "2Mv9PBWD2aeN69TrgTg8ebTKEoAXRtaTdzV", 245 | "p2wpkh": "bcrt1qgr6pdr83674x0yrgwhcgnudn4k5j3lqrseu8hw", 246 | "path": "m/0'/0'/1'" 247 | }, 248 | { 249 | "xpriv": "tprv8gi1x9A98qdud5xGGCSCg1gwaaXi7zyPBPj4xTNGG1xcAeVAbWBxRqEoaDGRJSjZ9ZQ6i7jc8Wx8qR3LEUpiy4krtDNCue1idSkXC36vXvi", 250 | "privKey": "4ba20aa8ebc34a2ac221b910d14e333f0cdd727d9583ad6e83be14b61d49111f", 251 | "wif": "cQ7iqwQsmNYL4SefBytLZ7pG54PwZrtnXVqXcpaarK6XRf1mspRb", 252 | "xpub": "tpubDDQ46ZCPHDKaWYz49r6o5RM49c3eHLAHkhKrEyQZgHm118jwDu1YcKrfkLfPpvFKTx1jsKWEX837DmFUgAGggwyrPRL9aUaBzgzk84oGtko", 253 | "pubKey": "0286d90b1ac602ebf284124fa0176805a082a96142174e873b78ed1b45de12aff1", 254 | "pubKeyHash": "9d9d7e65ba7d3570427bcb76afcad36441d8f1d8", 255 | "pubKeyFingerprint": "9d9d7e65", 256 | "p2pkh": "mutM42bNg6771m5snDwtydYc8Qu8f5s1W4", 257 | "p2sh-p2wpkh": "2Msw3vdHpm76YsqzCFbgbRka2NEecnSFHZe", 258 | "p2wpkh": "bcrt1qnkwhued6056hqsnmedm2ljknv3qa3uwcdzza8r", 259 | "path": "m/0'/0'/2'" 260 | } 261 | ], 262 | "mallory": [ 263 | { 264 | "entropy": "6af8462dd020ff7e2239a0a346d27448", 265 | "mnemonic": "helmet season merge park avocado sample material cross person custom other mountain", 266 | "seed": "9920708cb2a882ac9311183ee34b0d8ec502a05204ab3027cfea6495ff08184fbaa353a8268e3ba06643eab9bf81f023819d9ed5209f412eb2f17adb5a0bfaaa", 267 | "xprivMaster": "tprv8ZgxMBicQKsPfMQxJYYS6L3m1mXgAPQuUfhZVuseZgHKgWcSAgLqUJsuXMR9CxNCnajd7JvtfK9yFoV3cbr5uS4XMVKd2BGxccyN5kRctQe", 268 | "privKeyMaster": "c113fb4b0f3ae465a5981759821dbcca81cb7bf654e2483741d2d820bd5be421", 269 | "wifMaster": "cU4282H3GUTtCjcXG6gByehpxZQ1RdUeB9pgPedeZakYEH77AvAX", 270 | "xpubMaster": "tpubD6NzVbkrYhZ4YpSkCCD2Vjhsao3cKibp3yJLnRuwyx5iWzsCo5AReoVmhVUqMc19owzFx453Cu2MkHZ4PRCznwvCqu6nUyr1S7KV4pxUYzb", 271 | "pubKeyMaster": "035434c0a3de4b7ff76c8f43dbb027ff962eeb8631c9ab520edae163970bf930f5", 272 | "pubKeyFingerprintMaster": "6d851146" 273 | }, 274 | { 275 | "xpriv": "tprv8gxXKvjGCb1ufMx55dAGtijwKHVw262P22dREZ8zDjhVCCf9gNFD63ZFmM9qhVTKZza6yWxCmtErPZFgnL7K5JiQTJFEijCvCUF46MdVFVL", 276 | "privKey": "751bd339c907e21d638e9bad793c81139a9da23ba634be94fc8b64a64f553db2", 277 | "wif": "cRWLzy2pD7cLnERzUk1vy4ouDdjXjjVbWgUg3VZ2PatAZzgtJFPc", 278 | "xpub": "tpubDDeZULmWLxhaYpyryGpsJ8Q3tK1sBRDHbLECX5BHe1Vt2guvJm4oGYB7wTDJorVRG3CEs5sTLMRFG8vGorSEoxkb6vhy6bccwuicePB7f5X", 279 | "pubKey": "020055836de77cc0836ea3d713879929dd4ed4e619b92b607111c6de23c3553a73", 280 | "pubKeyHash": "b2289f5c18e6af46b6786d9e53ed3124b36ff070", 281 | "pubKeyFingerprint": "b2289f5c", 282 | "p2pkh": "mwkyEhauZdkziHJijx9rwZgShr9gYi9Hkh", 283 | "p2sh-p2wpkh": "2N7HGKwJF8R2qVCGm3NnZrnFLZzHfudQirj", 284 | "p2wpkh": "bcrt1qkg5f7hqcu6h5ddncdk098mf3yjeklurs02ny62", 285 | "path": "m/0'/0'/0'" 286 | }, 287 | { 288 | "xpriv": "tprv8gxXKvjGCb1ufuxS6fvYRx76wiMnEufrBt186qtYqx3cdfJR5qC2E3qASHwoCUR7KvWmwMyD4GUsBdTfdYr7fQ6HsDoRkQjZepWxiTPH2fH", 289 | "privKey": "ffdcbe4f5e291fd510e538b6bb3a6baffd773568135a3e7d58d88c3f9802d25e", 290 | "wif": "cWA4h9h9h1rBKEkGFWD31TAWC4z5JVybBenGNZsJQBTC5wL6wDxM", 291 | "xpub": "tpubDDeZULmWLxhaZNzDzKb8qMmDWjsiQErkmBbuPMvrGDr1U9ZBiE1cQYT2cPFH2RMDeNFwF1DTQ5FS7H8EUyhhptKUM5yW4nQ1hfoiJcHPk9R", 292 | "pubKey": "02273553c876ea756448a71d85b52f8d10e3413202cbf60865ee078987e82a9594", 293 | "pubKeyHash": "b7e4a67d7519e27fe055e8f510757e4579274938", 294 | "pubKeyFingerprint": "b7e4a67d", 295 | "p2pkh": "mxHHs4fNt1mBh4gz5MWegw4KYbGwPLXSUk", 296 | "p2sh-p2wpkh": "2Mx5KXS8zWPdSZ85JDYeBWi2HZZ5oTpy8bT", 297 | "p2wpkh": "bcrt1qklj2vlt4r838lcz4ar63qat7g4ujwjfcq44j54", 298 | "path": "m/0'/0'/1'" 299 | }, 300 | { 301 | "xpriv": "tprv8gxXKvjGCb1uidca4SXuUJJdK23mBBxtZUT91vGMLgJEEuxF35FHHCnCwqoFjTgL7Gb1AK8cgwCgy3TDq8oef5oDAFzssDiiVm3bDLcgLau", 302 | "privKey": "658ef2f5f718d9a9d4218ad36e139189d682dcb680e75aedd3fd0a54d3011579", 303 | "wif": "cQz7nqBJBK2ciUBDnwyu5Abe6RhV5o64DjfGyGeTzW1YJaS1bEUD", 304 | "xpub": "tpubDDeZULmWLxhac6eMx6CVshxjt3ZhLX9o8n3vJSJekx6d5QD1fU4sThQ57x3YdXWyS9YVnYs4u6JajhBNQpUJRGTR8dnGaAg8F58hT6GHAs9", 305 | "pubKey": "02095c5d50d7baf0ba1de83e2991a17462b42ea9aa996dcea97e428f23fef56d3f", 306 | "pubKeyHash": "8a8e8595c370c147f5692bc88c61d40bae4c2df5", 307 | "pubKeyFingerprint": "8a8e8595", 308 | "p2pkh": "mt9aH7gacU77TpobHcbMtkBZZ5PmjGryvn", 309 | "p2sh-p2wpkh": "2N8AXBf2RBTA1vBJnHphihrDF9pgAiyim3y", 310 | "p2wpkh": "bcrt1q328gt9wrwrq50atf90ygccw5pwhyct04vdwxnw", 311 | "path": "m/0'/0'/2'" 312 | } 313 | ] 314 | } 315 | --------------------------------------------------------------------------------