diff --git a/apps/examples/README.md b/apps/examples/README.md
--- a/apps/examples/README.md
+++ b/apps/examples/README.md
@@ -28,7 +28,11 @@
 Example: `npm run getTxHistoryFromAddress https://chronik.fabien.cash ecash:qq9h6d0a5q65fgywv4ry64x04ep906mdku8f0gxfgx 0 10`
 
 [] Retrieving UTXOs for an address
-[] Creating a new wallet
+
+[x] [Creating a new wallet - createWallet()](scripts/createWallet.js)
+
+Usage: `npm run createWallet`
+
 [] Collating inputs and outputs for sending XEC
 [] Collating inputs and outputs for sending eTokens
 [] Building and broadcasting transactions
diff --git a/apps/examples/package-lock.json b/apps/examples/package-lock.json
--- a/apps/examples/package-lock.json
+++ b/apps/examples/package-lock.json
@@ -5,8 +5,11 @@
     "packages": {
         "": {
             "dependencies": {
+                "@bitgo/utxo-lib": "^9.2.0",
+                "bip39": "^3.1.0",
                 "chronik-client": "^0.8.2",
-                "ecashaddrjs": "^1.5.0"
+                "ecashaddrjs": "^1.5.0",
+                "randombytes": "^2.1.0"
             },
             "devDependencies": {
                 "mocha": "^10.2.0",
@@ -388,6 +391,88 @@
                 "node": ">=6.9.0"
             }
         },
+        "node_modules/@bitgo/blake2b": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/@bitgo/blake2b/-/blake2b-3.2.1.tgz",
+            "integrity": "sha512-MCZ+gWjcuiCrGdScvbHHRp2WszQ5Aqbm+jPV0fBZPzAXsq215pEggfIpKt/G+XAHyNNnun3GxuZSDxAX+bumwQ==",
+            "dependencies": {
+                "@bitgo/blake2b-wasm": "^3.2.0",
+                "nanoassert": "^2.0.0"
+            }
+        },
+        "node_modules/@bitgo/blake2b-wasm": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/blake2b-wasm/-/blake2b-wasm-3.2.0.tgz",
+            "integrity": "sha512-pKqJoPjvhh8fE2mDsxO+kvAJcjm+wKK6fbMvX2n6Twx5zeTUHC4ZVq8unUKXRa9EH17LXbZtyYW5wmErXKkhDg==",
+            "dependencies": {
+                "nanoassert": "^1.0.0"
+            }
+        },
+        "node_modules/@bitgo/blake2b-wasm/node_modules/nanoassert": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
+            "integrity": "sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ=="
+        },
+        "node_modules/@bitgo/utxo-lib": {
+            "version": "9.2.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/utxo-lib/-/utxo-lib-9.2.0.tgz",
+            "integrity": "sha512-+PxhwKdSBt/1DkFY/VvVvhO7PqfL2Id1c8tQAaLkBKB3WsTyCIkTK7Z690iRo/5Mz2wWm5TJvA00LxT3tbDllA==",
+            "dependencies": {
+                "@bitgo/blake2b": "^3.2.1",
+                "@brandonblack/musig": "^0.0.1-alpha.0",
+                "@noble/secp256k1": "1.6.3",
+                "bech32": "^2.0.0",
+                "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
+                "bip32": "^3.0.1",
+                "bitcoin-ops": "^1.3.0",
+                "bitcoinjs-lib": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.6",
+                "bn.js": "^5.2.1",
+                "bs58check": "^2.1.2",
+                "cashaddress": "^1.1.0",
+                "create-hash": "^1.2.0",
+                "create-hmac": "^1.1.7",
+                "ecpair": "npm:@bitgo/ecpair@2.1.0-rc.0",
+                "elliptic": "^6.5.2",
+                "fastpriorityqueue": "^0.7.1",
+                "typeforce": "^1.11.3",
+                "varuint-bitcoin": "^1.1.2"
+            },
+            "engines": {
+                "node": ">=10.22.0 <17",
+                "npm": ">=3.10.10"
+            }
+        },
+        "node_modules/@bitgo/utxo-lib/node_modules/base-x": {
+            "version": "3.0.9",
+            "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+            "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "node_modules/@bitgo/utxo-lib/node_modules/bs58": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+            "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+            "dependencies": {
+                "base-x": "^3.0.2"
+            }
+        },
+        "node_modules/@bitgo/utxo-lib/node_modules/bs58check": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+            "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+            "dependencies": {
+                "bs58": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "node_modules/@brandonblack/musig": {
+            "version": "0.0.1-alpha.1",
+            "resolved": "https://registry.npmjs.org/@brandonblack/musig/-/musig-0.0.1-alpha.1.tgz",
+            "integrity": "sha512-00RbByQG85lSzrkDjCblzrUc2n1LJAPPrEMHS4oMg+QckE0kzjd26JytT6yx6tNU2+aOXfK7O4kGW/sKVL67cw=="
+        },
         "node_modules/@istanbuljs/load-nyc-config": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -552,6 +637,17 @@
                 "url": "https://paulmillr.com/funding/"
             }
         },
+        "node_modules/@noble/secp256k1": {
+            "version": "1.6.3",
+            "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz",
+            "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==",
+            "funding": [
+                {
+                    "type": "individual",
+                    "url": "https://paulmillr.com/funding/"
+                }
+            ]
+        },
         "node_modules/@protobufjs/aspromise": {
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -726,6 +822,11 @@
             "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
             "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
         },
+        "node_modules/bech32": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+            "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+        },
         "node_modules/big-integer": {
             "version": "1.6.36",
             "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz",
@@ -734,6 +835,11 @@
                 "node": ">=0.6"
             }
         },
+        "node_modules/bigi": {
+            "version": "1.4.2",
+            "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
+            "integrity": "sha512-ddkU+dFIuEIW8lE7ZwdIAf2UPoM90eaprg5m3YXAVVTmKlqV/9BX4A2M8BOK2yOq6/VgZFVhK6QAxJebhlbhzw=="
+        },
         "node_modules/binary-extensions": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -743,6 +849,122 @@
                 "node": ">=8"
             }
         },
+        "node_modules/bip174": {
+            "name": "@bitgo-forks/bip174",
+            "version": "3.1.0-master.4",
+            "resolved": "https://registry.npmjs.org/@bitgo-forks/bip174/-/bip174-3.1.0-master.4.tgz",
+            "integrity": "sha512-WDRNzPSdJGDqQNqfN+L5KHNHFDmNOPYnUnT7NkEkfHWn5m1jSOfcf8Swaslt5P0xcSDiERdN2gZxFc6XtOqRYg==",
+            "engines": {
+                "node": ">=8.0.0"
+            }
+        },
+        "node_modules/bip32": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bip32/-/bip32-3.1.0.tgz",
+            "integrity": "sha512-eoeajYEzJ4d6yyVtby8C+XkCeKItiC4Mx56a0M9VaqTMC73SWOm4xVZG7SaR8e/yp4eSyky2XcBpH3DApPdu7Q==",
+            "dependencies": {
+                "bs58check": "^2.1.1",
+                "create-hash": "^1.2.0",
+                "create-hmac": "^1.1.7",
+                "ripemd160": "^2.0.2",
+                "typeforce": "^1.11.5",
+                "wif": "^2.0.6"
+            },
+            "engines": {
+                "node": ">=6.0.0"
+            }
+        },
+        "node_modules/bip32/node_modules/base-x": {
+            "version": "3.0.9",
+            "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+            "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "node_modules/bip32/node_modules/bs58": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+            "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+            "dependencies": {
+                "base-x": "^3.0.2"
+            }
+        },
+        "node_modules/bip32/node_modules/bs58check": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+            "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+            "dependencies": {
+                "bs58": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "node_modules/bip39": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz",
+            "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==",
+            "dependencies": {
+                "@noble/hashes": "^1.2.0"
+            }
+        },
+        "node_modules/bitcoin-ops": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz",
+            "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow=="
+        },
+        "node_modules/bitcoinjs-lib": {
+            "name": "@bitgo-forks/bitcoinjs-lib",
+            "version": "7.1.0-master.6",
+            "resolved": "https://registry.npmjs.org/@bitgo-forks/bitcoinjs-lib/-/bitcoinjs-lib-7.1.0-master.6.tgz",
+            "integrity": "sha512-Cvf0odjJKy4frbcmVfTuRpQmAhu5wIFNmYNhJg3qxrV8pdR5WDbRICfGvrorxofZgB8Cv4UDTmbeoOF/ggmXnA==",
+            "dependencies": {
+                "bech32": "^2.0.0",
+                "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
+                "bs58check": "^2.1.2",
+                "create-hash": "^1.1.0",
+                "fastpriorityqueue": "^0.7.1",
+                "json5": "^2.2.3",
+                "ripemd160": "^2.0.2",
+                "typeforce": "^1.11.3",
+                "varuint-bitcoin": "^1.1.2",
+                "wif": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            }
+        },
+        "node_modules/bitcoinjs-lib/node_modules/base-x": {
+            "version": "3.0.9",
+            "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+            "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "node_modules/bitcoinjs-lib/node_modules/bs58": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+            "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+            "dependencies": {
+                "base-x": "^3.0.2"
+            }
+        },
+        "node_modules/bitcoinjs-lib/node_modules/bs58check": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+            "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+            "dependencies": {
+                "bs58": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "node_modules/bn.js": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+            "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+        },
         "node_modules/brace-expansion": {
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -764,6 +986,11 @@
                 "node": ">=8"
             }
         },
+        "node_modules/brorand": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+            "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+        },
         "node_modules/browser-stdout": {
             "version": "1.3.1",
             "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
@@ -863,6 +1090,14 @@
                 }
             ]
         },
+        "node_modules/cashaddress": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/cashaddress/-/cashaddress-1.1.0.tgz",
+            "integrity": "sha512-cdqIjZodtErhoQOiojQ1SRqDKh6bOVkLYNJjMmFEUxGoErrO2am8txotXmEi8glvU/y9wzup+LsvEBl8AttUwA==",
+            "dependencies": {
+                "bigi": "^1.4.2"
+            }
+        },
         "node_modules/chalk": {
             "version": "4.1.2",
             "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -939,6 +1174,15 @@
                 "ws": "^8.3.0"
             }
         },
+        "node_modules/cipher-base": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+            "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+            "dependencies": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
         "node_modules/clean-stack": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -995,6 +1239,31 @@
             "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
             "dev": true
         },
+        "node_modules/create-hash": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+            "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+            "dependencies": {
+                "cipher-base": "^1.0.1",
+                "inherits": "^2.0.1",
+                "md5.js": "^1.3.4",
+                "ripemd160": "^2.0.1",
+                "sha.js": "^2.4.0"
+            }
+        },
+        "node_modules/create-hmac": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+            "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+            "dependencies": {
+                "cipher-base": "^1.0.3",
+                "create-hash": "^1.1.0",
+                "inherits": "^2.0.1",
+                "ripemd160": "^2.0.0",
+                "safe-buffer": "^5.0.1",
+                "sha.js": "^2.4.8"
+            }
+        },
         "node_modules/cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -1083,12 +1352,45 @@
                 "bs58check": "^3.0.1"
             }
         },
+        "node_modules/ecpair": {
+            "name": "@bitgo/ecpair",
+            "version": "2.1.0-rc.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/ecpair/-/ecpair-2.1.0-rc.0.tgz",
+            "integrity": "sha512-qPZetcEA1Lzzm9NsqsGF9NGorAGaXrv20eZjopLUjsdwftWcsYTE7lwzE/Xjdf4fcq6G4+vjrCudWAMGNfJqOQ==",
+            "dependencies": {
+                "randombytes": "^2.1.0",
+                "typeforce": "^1.18.0",
+                "wif": "^2.0.6"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            }
+        },
         "node_modules/electron-to-chromium": {
             "version": "1.4.437",
             "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.437.tgz",
             "integrity": "sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==",
             "dev": true
         },
+        "node_modules/elliptic": {
+            "version": "6.5.4",
+            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+            "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+            "dependencies": {
+                "bn.js": "^4.11.9",
+                "brorand": "^1.1.0",
+                "hash.js": "^1.0.0",
+                "hmac-drbg": "^1.0.1",
+                "inherits": "^2.0.4",
+                "minimalistic-assert": "^1.0.1",
+                "minimalistic-crypto-utils": "^1.0.1"
+            }
+        },
+        "node_modules/elliptic/node_modules/bn.js": {
+            "version": "4.12.0",
+            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+            "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+        },
         "node_modules/emoji-regex": {
             "version": "8.0.0",
             "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -1135,6 +1437,11 @@
                 "node": ">=4"
             }
         },
+        "node_modules/fastpriorityqueue": {
+            "version": "0.7.4",
+            "resolved": "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.4.tgz",
+            "integrity": "sha512-u7o5oa9R7CMOHo2i8P2/T2nRg5bg/0dDegDSJVzkVkMf/A318LNnujNLfpxlJeXUdDAefrVPqsDV624vUyxNfA=="
+        },
         "node_modules/fill-range": {
             "version": "7.0.1",
             "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -1366,6 +1673,28 @@
                 "node": ">=8"
             }
         },
+        "node_modules/hash-base": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+            "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+            "dependencies": {
+                "inherits": "^2.0.4",
+                "readable-stream": "^3.6.0",
+                "safe-buffer": "^5.2.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/hash.js": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+            "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+            "dependencies": {
+                "inherits": "^2.0.3",
+                "minimalistic-assert": "^1.0.1"
+            }
+        },
         "node_modules/hasha": {
             "version": "5.2.2",
             "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
@@ -1391,6 +1720,16 @@
                 "he": "bin/he"
             }
         },
+        "node_modules/hmac-drbg": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+            "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+            "dependencies": {
+                "hash.js": "^1.0.3",
+                "minimalistic-assert": "^1.0.0",
+                "minimalistic-crypto-utils": "^1.0.1"
+            }
+        },
         "node_modules/html-escaper": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -1428,8 +1767,7 @@
         "node_modules/inherits": {
             "version": "2.0.4",
             "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-            "dev": true
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
         },
         "node_modules/is-binary-path": {
             "version": "2.1.0",
@@ -1690,7 +2028,6 @@
             "version": "2.2.3",
             "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
             "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-            "dev": true,
             "bin": {
                 "json5": "lib/cli.js"
             },
@@ -1775,6 +2112,26 @@
                 "is-buffer": "~1.1.6"
             }
         },
+        "node_modules/md5.js": {
+            "version": "1.3.5",
+            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+            "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+            "dependencies": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "node_modules/minimalistic-assert": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+            "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+        },
+        "node_modules/minimalistic-crypto-utils": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+            "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+        },
         "node_modules/minimatch": {
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
@@ -1861,6 +2218,11 @@
             "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
             "dev": true
         },
+        "node_modules/nanoassert": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz",
+            "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA=="
+        },
         "node_modules/nanoid": {
             "version": "3.3.3",
             "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
@@ -2284,11 +2646,23 @@
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
             "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-            "dev": true,
             "dependencies": {
                 "safe-buffer": "^5.1.0"
             }
         },
+        "node_modules/readable-stream": {
+            "version": "3.6.2",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+            "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+            "dependencies": {
+                "inherits": "^2.0.3",
+                "string_decoder": "^1.1.1",
+                "util-deprecate": "^1.0.1"
+            },
+            "engines": {
+                "node": ">= 6"
+            }
+        },
         "node_modules/readdirp": {
             "version": "3.6.0",
             "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -2352,11 +2726,19 @@
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
+        "node_modules/ripemd160": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+            "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+            "dependencies": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1"
+            }
+        },
         "node_modules/safe-buffer": {
             "version": "5.2.1",
             "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
             "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-            "dev": true,
             "funding": [
                 {
                     "type": "github",
@@ -2396,6 +2778,18 @@
             "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
             "dev": true
         },
+        "node_modules/sha.js": {
+            "version": "2.4.11",
+            "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+            "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+            "dependencies": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            },
+            "bin": {
+                "sha.js": "bin.js"
+            }
+        },
         "node_modules/shebang-command": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -2455,6 +2849,14 @@
             "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
             "dev": true
         },
+        "node_modules/string_decoder": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+            "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+            "dependencies": {
+                "safe-buffer": "~5.2.0"
+            }
+        },
         "node_modules/string-width": {
             "version": "4.2.3",
             "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -2592,6 +2994,11 @@
                 "is-typedarray": "^1.0.0"
             }
         },
+        "node_modules/typeforce": {
+            "version": "1.18.0",
+            "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz",
+            "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g=="
+        },
         "node_modules/update-browserslist-db": {
             "version": "1.0.11",
             "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -2622,6 +3029,11 @@
                 "browserslist": ">= 4.21.0"
             }
         },
+        "node_modules/util-deprecate": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+            "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+        },
         "node_modules/uuid": {
             "version": "8.3.2",
             "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@@ -2631,6 +3043,14 @@
                 "uuid": "dist/bin/uuid"
             }
         },
+        "node_modules/varuint-bitcoin": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz",
+            "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==",
+            "dependencies": {
+                "safe-buffer": "^5.1.1"
+            }
+        },
         "node_modules/which": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -2652,6 +3072,40 @@
             "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
             "dev": true
         },
+        "node_modules/wif": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz",
+            "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==",
+            "dependencies": {
+                "bs58check": "<3.0.0"
+            }
+        },
+        "node_modules/wif/node_modules/base-x": {
+            "version": "3.0.9",
+            "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+            "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "node_modules/wif/node_modules/bs58": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+            "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+            "dependencies": {
+                "base-x": "^3.0.2"
+            }
+        },
+        "node_modules/wif/node_modules/bs58check": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+            "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+            "dependencies": {
+                "bs58": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "safe-buffer": "^5.1.2"
+            }
+        },
         "node_modules/workerpool": {
             "version": "6.2.1",
             "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
@@ -3099,6 +3553,88 @@
                 "to-fast-properties": "^2.0.0"
             }
         },
+        "@bitgo/blake2b": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/@bitgo/blake2b/-/blake2b-3.2.1.tgz",
+            "integrity": "sha512-MCZ+gWjcuiCrGdScvbHHRp2WszQ5Aqbm+jPV0fBZPzAXsq215pEggfIpKt/G+XAHyNNnun3GxuZSDxAX+bumwQ==",
+            "requires": {
+                "@bitgo/blake2b-wasm": "^3.2.0",
+                "nanoassert": "^2.0.0"
+            }
+        },
+        "@bitgo/blake2b-wasm": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/blake2b-wasm/-/blake2b-wasm-3.2.0.tgz",
+            "integrity": "sha512-pKqJoPjvhh8fE2mDsxO+kvAJcjm+wKK6fbMvX2n6Twx5zeTUHC4ZVq8unUKXRa9EH17LXbZtyYW5wmErXKkhDg==",
+            "requires": {
+                "nanoassert": "^1.0.0"
+            },
+            "dependencies": {
+                "nanoassert": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
+                    "integrity": "sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ=="
+                }
+            }
+        },
+        "@bitgo/utxo-lib": {
+            "version": "9.2.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/utxo-lib/-/utxo-lib-9.2.0.tgz",
+            "integrity": "sha512-+PxhwKdSBt/1DkFY/VvVvhO7PqfL2Id1c8tQAaLkBKB3WsTyCIkTK7Z690iRo/5Mz2wWm5TJvA00LxT3tbDllA==",
+            "requires": {
+                "@bitgo/blake2b": "^3.2.1",
+                "@brandonblack/musig": "^0.0.1-alpha.0",
+                "@noble/secp256k1": "1.6.3",
+                "bech32": "^2.0.0",
+                "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
+                "bip32": "^3.0.1",
+                "bitcoin-ops": "^1.3.0",
+                "bitcoinjs-lib": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.6",
+                "bn.js": "^5.2.1",
+                "bs58check": "^2.1.2",
+                "cashaddress": "^1.1.0",
+                "create-hash": "^1.2.0",
+                "create-hmac": "^1.1.7",
+                "ecpair": "npm:@bitgo/ecpair@2.1.0-rc.0",
+                "elliptic": "^6.5.2",
+                "fastpriorityqueue": "^0.7.1",
+                "typeforce": "^1.11.3",
+                "varuint-bitcoin": "^1.1.2"
+            },
+            "dependencies": {
+                "base-x": {
+                    "version": "3.0.9",
+                    "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+                    "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+                    "requires": {
+                        "safe-buffer": "^5.0.1"
+                    }
+                },
+                "bs58": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+                    "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+                    "requires": {
+                        "base-x": "^3.0.2"
+                    }
+                },
+                "bs58check": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+                    "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+                    "requires": {
+                        "bs58": "^4.0.0",
+                        "create-hash": "^1.1.0",
+                        "safe-buffer": "^5.1.2"
+                    }
+                }
+            }
+        },
+        "@brandonblack/musig": {
+            "version": "0.0.1-alpha.1",
+            "resolved": "https://registry.npmjs.org/@brandonblack/musig/-/musig-0.0.1-alpha.1.tgz",
+            "integrity": "sha512-00RbByQG85lSzrkDjCblzrUc2n1LJAPPrEMHS4oMg+QckE0kzjd26JytT6yx6tNU2+aOXfK7O4kGW/sKVL67cw=="
+        },
         "@istanbuljs/load-nyc-config": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -3228,6 +3764,11 @@
             "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
             "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="
         },
+        "@noble/secp256k1": {
+            "version": "1.6.3",
+            "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz",
+            "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ=="
+        },
         "@protobufjs/aspromise": {
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -3381,17 +3922,136 @@
             "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
             "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
         },
+        "bech32": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+            "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+        },
         "big-integer": {
             "version": "1.6.36",
             "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz",
             "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg=="
         },
+        "bigi": {
+            "version": "1.4.2",
+            "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
+            "integrity": "sha512-ddkU+dFIuEIW8lE7ZwdIAf2UPoM90eaprg5m3YXAVVTmKlqV/9BX4A2M8BOK2yOq6/VgZFVhK6QAxJebhlbhzw=="
+        },
         "binary-extensions": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
             "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
             "dev": true
         },
+        "bip174": {
+            "version": "npm:@bitgo-forks/bip174@3.1.0-master.4",
+            "resolved": "https://registry.npmjs.org/@bitgo-forks/bip174/-/bip174-3.1.0-master.4.tgz",
+            "integrity": "sha512-WDRNzPSdJGDqQNqfN+L5KHNHFDmNOPYnUnT7NkEkfHWn5m1jSOfcf8Swaslt5P0xcSDiERdN2gZxFc6XtOqRYg=="
+        },
+        "bip32": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bip32/-/bip32-3.1.0.tgz",
+            "integrity": "sha512-eoeajYEzJ4d6yyVtby8C+XkCeKItiC4Mx56a0M9VaqTMC73SWOm4xVZG7SaR8e/yp4eSyky2XcBpH3DApPdu7Q==",
+            "requires": {
+                "bs58check": "^2.1.1",
+                "create-hash": "^1.2.0",
+                "create-hmac": "^1.1.7",
+                "ripemd160": "^2.0.2",
+                "typeforce": "^1.11.5",
+                "wif": "^2.0.6"
+            },
+            "dependencies": {
+                "base-x": {
+                    "version": "3.0.9",
+                    "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+                    "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+                    "requires": {
+                        "safe-buffer": "^5.0.1"
+                    }
+                },
+                "bs58": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+                    "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+                    "requires": {
+                        "base-x": "^3.0.2"
+                    }
+                },
+                "bs58check": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+                    "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+                    "requires": {
+                        "bs58": "^4.0.0",
+                        "create-hash": "^1.1.0",
+                        "safe-buffer": "^5.1.2"
+                    }
+                }
+            }
+        },
+        "bip39": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz",
+            "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==",
+            "requires": {
+                "@noble/hashes": "^1.2.0"
+            }
+        },
+        "bitcoin-ops": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz",
+            "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow=="
+        },
+        "bitcoinjs-lib": {
+            "version": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.6",
+            "resolved": "https://registry.npmjs.org/@bitgo-forks/bitcoinjs-lib/-/bitcoinjs-lib-7.1.0-master.6.tgz",
+            "integrity": "sha512-Cvf0odjJKy4frbcmVfTuRpQmAhu5wIFNmYNhJg3qxrV8pdR5WDbRICfGvrorxofZgB8Cv4UDTmbeoOF/ggmXnA==",
+            "requires": {
+                "bech32": "^2.0.0",
+                "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
+                "bs58check": "^2.1.2",
+                "create-hash": "^1.1.0",
+                "fastpriorityqueue": "^0.7.1",
+                "json5": "^2.2.3",
+                "ripemd160": "^2.0.2",
+                "typeforce": "^1.11.3",
+                "varuint-bitcoin": "^1.1.2",
+                "wif": "^2.0.1"
+            },
+            "dependencies": {
+                "base-x": {
+                    "version": "3.0.9",
+                    "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+                    "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+                    "requires": {
+                        "safe-buffer": "^5.0.1"
+                    }
+                },
+                "bs58": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+                    "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+                    "requires": {
+                        "base-x": "^3.0.2"
+                    }
+                },
+                "bs58check": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+                    "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+                    "requires": {
+                        "bs58": "^4.0.0",
+                        "create-hash": "^1.1.0",
+                        "safe-buffer": "^5.1.2"
+                    }
+                }
+            }
+        },
+        "bn.js": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+            "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+        },
         "brace-expansion": {
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -3410,6 +4070,11 @@
                 "fill-range": "^7.0.1"
             }
         },
+        "brorand": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+            "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+        },
         "browser-stdout": {
             "version": "1.3.1",
             "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
@@ -3469,6 +4134,14 @@
             "integrity": "sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==",
             "dev": true
         },
+        "cashaddress": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/cashaddress/-/cashaddress-1.1.0.tgz",
+            "integrity": "sha512-cdqIjZodtErhoQOiojQ1SRqDKh6bOVkLYNJjMmFEUxGoErrO2am8txotXmEi8glvU/y9wzup+LsvEBl8AttUwA==",
+            "requires": {
+                "bigi": "^1.4.2"
+            }
+        },
         "chalk": {
             "version": "4.1.2",
             "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -3524,6 +4197,15 @@
                 "ws": "^8.3.0"
             }
         },
+        "cipher-base": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+            "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+            "requires": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
         "clean-stack": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -3574,6 +4256,31 @@
             "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
             "dev": true
         },
+        "create-hash": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+            "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+            "requires": {
+                "cipher-base": "^1.0.1",
+                "inherits": "^2.0.1",
+                "md5.js": "^1.3.4",
+                "ripemd160": "^2.0.1",
+                "sha.js": "^2.4.0"
+            }
+        },
+        "create-hmac": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+            "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+            "requires": {
+                "cipher-base": "^1.0.3",
+                "create-hash": "^1.1.0",
+                "inherits": "^2.0.1",
+                "ripemd160": "^2.0.0",
+                "safe-buffer": "^5.0.1",
+                "sha.js": "^2.4.8"
+            }
+        },
         "cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3638,12 +4345,43 @@
                 "bs58check": "^3.0.1"
             }
         },
+        "ecpair": {
+            "version": "npm:@bitgo/ecpair@2.1.0-rc.0",
+            "resolved": "https://registry.npmjs.org/@bitgo/ecpair/-/ecpair-2.1.0-rc.0.tgz",
+            "integrity": "sha512-qPZetcEA1Lzzm9NsqsGF9NGorAGaXrv20eZjopLUjsdwftWcsYTE7lwzE/Xjdf4fcq6G4+vjrCudWAMGNfJqOQ==",
+            "requires": {
+                "randombytes": "^2.1.0",
+                "typeforce": "^1.18.0",
+                "wif": "^2.0.6"
+            }
+        },
         "electron-to-chromium": {
             "version": "1.4.437",
             "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.437.tgz",
             "integrity": "sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==",
             "dev": true
         },
+        "elliptic": {
+            "version": "6.5.4",
+            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+            "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+            "requires": {
+                "bn.js": "^4.11.9",
+                "brorand": "^1.1.0",
+                "hash.js": "^1.0.0",
+                "hmac-drbg": "^1.0.1",
+                "inherits": "^2.0.4",
+                "minimalistic-assert": "^1.0.1",
+                "minimalistic-crypto-utils": "^1.0.1"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.12.0",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+                }
+            }
+        },
         "emoji-regex": {
             "version": "8.0.0",
             "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -3674,6 +4412,11 @@
             "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
             "dev": true
         },
+        "fastpriorityqueue": {
+            "version": "0.7.4",
+            "resolved": "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.4.tgz",
+            "integrity": "sha512-u7o5oa9R7CMOHo2i8P2/T2nRg5bg/0dDegDSJVzkVkMf/A318LNnujNLfpxlJeXUdDAefrVPqsDV624vUyxNfA=="
+        },
         "fill-range": {
             "version": "7.0.1",
             "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -3824,6 +4567,25 @@
             "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
             "dev": true
         },
+        "hash-base": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+            "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+            "requires": {
+                "inherits": "^2.0.4",
+                "readable-stream": "^3.6.0",
+                "safe-buffer": "^5.2.0"
+            }
+        },
+        "hash.js": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+            "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "minimalistic-assert": "^1.0.1"
+            }
+        },
         "hasha": {
             "version": "5.2.2",
             "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
@@ -3840,6 +4602,16 @@
             "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
             "dev": true
         },
+        "hmac-drbg": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+            "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+            "requires": {
+                "hash.js": "^1.0.3",
+                "minimalistic-assert": "^1.0.0",
+                "minimalistic-crypto-utils": "^1.0.1"
+            }
+        },
         "html-escaper": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -3871,8 +4643,7 @@
         "inherits": {
             "version": "2.0.4",
             "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-            "dev": true
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
         },
         "is-binary-path": {
             "version": "2.1.0",
@@ -4066,8 +4837,7 @@
         "json5": {
             "version": "2.2.3",
             "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
-            "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-            "dev": true
+            "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
         },
         "locate-path": {
             "version": "6.0.0",
@@ -4128,6 +4898,26 @@
                 "is-buffer": "~1.1.6"
             }
         },
+        "md5.js": {
+            "version": "1.3.5",
+            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+            "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+            "requires": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "minimalistic-assert": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+            "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+        },
+        "minimalistic-crypto-utils": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+            "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+        },
         "minimatch": {
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
@@ -4191,6 +4981,11 @@
             "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
             "dev": true
         },
+        "nanoassert": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz",
+            "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA=="
+        },
         "nanoid": {
             "version": "3.3.3",
             "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
@@ -4514,11 +5309,20 @@
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
             "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-            "dev": true,
             "requires": {
                 "safe-buffer": "^5.1.0"
             }
         },
+        "readable-stream": {
+            "version": "3.6.2",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+            "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "string_decoder": "^1.1.1",
+                "util-deprecate": "^1.0.1"
+            }
+        },
         "readdirp": {
             "version": "3.6.0",
             "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -4564,11 +5368,19 @@
                 "glob": "^7.1.3"
             }
         },
+        "ripemd160": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+            "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+            "requires": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1"
+            }
+        },
         "safe-buffer": {
             "version": "5.2.1",
             "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-            "dev": true
+            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
         },
         "semver": {
             "version": "6.3.0",
@@ -4591,6 +5403,15 @@
             "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
             "dev": true
         },
+        "sha.js": {
+            "version": "2.4.11",
+            "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+            "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+            "requires": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
         "shebang-command": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4638,6 +5459,14 @@
             "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
             "dev": true
         },
+        "string_decoder": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+            "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+            "requires": {
+                "safe-buffer": "~5.2.0"
+            }
+        },
         "string-width": {
             "version": "4.2.3",
             "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -4741,6 +5570,11 @@
                 "is-typedarray": "^1.0.0"
             }
         },
+        "typeforce": {
+            "version": "1.18.0",
+            "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz",
+            "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g=="
+        },
         "update-browserslist-db": {
             "version": "1.0.11",
             "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -4751,12 +5585,25 @@
                 "picocolors": "^1.0.0"
             }
         },
+        "util-deprecate": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+            "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+        },
         "uuid": {
             "version": "8.3.2",
             "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
             "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
             "dev": true
         },
+        "varuint-bitcoin": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz",
+            "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==",
+            "requires": {
+                "safe-buffer": "^5.1.1"
+            }
+        },
         "which": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -4772,6 +5619,42 @@
             "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
             "dev": true
         },
+        "wif": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz",
+            "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==",
+            "requires": {
+                "bs58check": "<3.0.0"
+            },
+            "dependencies": {
+                "base-x": {
+                    "version": "3.0.9",
+                    "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+                    "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+                    "requires": {
+                        "safe-buffer": "^5.0.1"
+                    }
+                },
+                "bs58": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+                    "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+                    "requires": {
+                        "base-x": "^3.0.2"
+                    }
+                },
+                "bs58check": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+                    "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+                    "requires": {
+                        "bs58": "^4.0.0",
+                        "create-hash": "^1.1.0",
+                        "safe-buffer": "^5.1.2"
+                    }
+                }
+            }
+        },
         "workerpool": {
             "version": "6.2.1",
             "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
diff --git a/apps/examples/package.json b/apps/examples/package.json
--- a/apps/examples/package.json
+++ b/apps/examples/package.json
@@ -1,7 +1,10 @@
 {
     "dependencies": {
+        "@bitgo/utxo-lib": "^9.2.0",
+        "bip39": "^3.1.0",
         "chronik-client": "^0.8.2",
-        "ecashaddrjs": "^1.5.0"
+        "ecashaddrjs": "^1.5.0",
+        "randombytes": "^2.1.0"
     },
     "devDependencies": {
         "mocha": "^10.2.0",
@@ -13,6 +16,6 @@
         "coverage": "nyc mocha",
         "junit": "mocha test --reporter mocha-junit-reporter",
         "getDetailsFromTxid": "node scripts/getDetailsFromTxid.js",
-        "getTxHistoryFromAddress": "node scripts/getTxHistoryFromAddress.js"
+        "createWallet": "node scripts/createWallet"
     }
 }
diff --git a/apps/examples/scripts/createWallet.js b/apps/examples/scripts/createWallet.js
new file mode 100644
--- /dev/null
+++ b/apps/examples/scripts/createWallet.js
@@ -0,0 +1,64 @@
+// Copyright (c) 2023 The Bitcoin developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+'use strict';
+const bip39 = require('bip39');
+const randomBytes = require('randombytes');
+const utxolib = require('@bitgo/utxo-lib');
+const ecashaddr = require('ecashaddrjs');
+
+/**
+ * Returns the attributes of a newly created wallet
+ * @return {object} wallet object consisting of address, public key, mnemonic and derivation path
+ * @usage:
+ *    const wallet = await createWallet();
+ */
+async function createWallet() {
+    // note: english is typically the recommended default but it is possible to use other languages.
+    // see https://github.com/bitcoinjs/bip39#readme for further details
+    const lang = 'english';
+
+    // create 128 bit BIP39 mnemonic
+    // note: the terms 'seed' and 'mnemonic' are often used interchangeably and both refers to a 12 word human-readable private key backup
+    const mnemonic = bip39.generateMnemonic(
+        128,
+        randomBytes,
+        bip39.wordlists[lang],
+    );
+
+    // extract the master node
+    // see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki to understand HD wallets and derivation paths
+    const rootSeedBuffer = await bip39.mnemonicToSeed(mnemonic, '');
+    const masterHDNode = utxolib.bip32.fromSeed(
+        rootSeedBuffer,
+        utxolib.networks.ecash,
+    );
+
+    // For eCash wallets, Path 1899 is used for a wallet that supports eTokens
+    // Path 899 is used for a wallet that does not support eTokens
+    // Different wallets in the eCash ecosystem may opt for different paths so this needs to be considered as part of interoperability plans
+    const derivationPath = "m/44'/1899'/0'/0/0";
+
+    // derive wallet attributes
+    const node = masterHDNode.derivePath(derivationPath);
+    const publicKey = node.publicKey.toString('hex');
+
+    // 'p2pkh' is a type of ScriptPubKey which locks bitcoin to the hash of a public key.
+    // 'p2pkh' is the standard for most wallets whereas 'p2sh' is a multisig or other advanced features such as smart contracts
+    const eCashAddress = ecashaddr.encode('ecash', 'P2PKH', node.identifier);
+
+    return {
+        address: eCashAddress,
+        publicKey: publicKey,
+        mnemonic: mnemonic,
+        derivationPath: derivationPath,
+    };
+}
+
+// Executed via 'npm run createWallet'
+(async () => {
+    const wallet = await createWallet();
+    console.log(wallet);
+})();
+
+module.exports.createWallet = createWallet;
diff --git a/apps/examples/test/createWallet.test.js b/apps/examples/test/createWallet.test.js
new file mode 100644
--- /dev/null
+++ b/apps/examples/test/createWallet.test.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2023 The Bitcoin developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+'use strict';
+const assert = require('assert');
+const { createWallet } = require('../scripts/createWallet');
+const ecashaddr = require('ecashaddrjs');
+const bip39 = require('bip39');
+
+describe('App dev example code: createWallet.js', function () {
+    it('createWallet() creates a wallet with a valid eCash address', async function () {
+        const wallet = await createWallet();
+        const isValidAddress = ecashaddr.isValidCashAddress(wallet.address);
+        assert.strictEqual(isValidAddress, true);
+    });
+    it('createWallet() creates a wallet with a valid 12 word mnemonic seed', async function () {
+        const wallet = await createWallet();
+        const isValidMnemonic = bip39.validateMnemonic(wallet.mnemonic);
+        assert.strictEqual(isValidMnemonic, true);
+    });
+});