@ -564,7 +564,7 @@
< a href = "#get-master-hd-key" class = "toc-h2 toc-link" data-title = "Wallet" > Get Master HD Key< / a >
< / li >
< li >
< a href = "#create-new -wallet" class = "toc-h2 toc-link" data-title = "Wallet" > Create New Wallet< / a >
< a href = "#create-a -wallet" class = "toc-h2 toc-link" data-title = "Wallet" > Create A Wallet< / a >
< / li >
< li >
< a href = "#change-passphrase" class = "toc-h2 toc-link" data-title = "Wallet" > Change Passphrase< / a >
@ -697,7 +697,7 @@
< h1 id = 'introduction' > Introduction< / h1 >
< p > Welcome to the Bcoin API!< / p >
< p > The default bcoin HTTP server listens on the standard RPC port (< code > 8332< / code > for main, < code > 18333 < / code > for testnet, and < code > 18555 < / code > default for simnet). It exposes a REST json api, as well as a JSON-RPC api.< / p >
< p > The default bcoin HTTP server listens on the standard RPC port (< code > 8332< / code > for main, < code > 18332 < / code > for testnet, < code > 48332< / code > for regtest, and < code > 18556 < / code > default for simnet). It exposes a REST json api, as well as a JSON-RPC api.< / p >
< h1 id = 'authentication' > Authentication< / h1 > < h2 id = 'auth' > Auth< / h2 > < pre class = "highlight shell tab-shell--curl" > < code > curl http://x:[api-key]@127.0.0.1:8332/
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > < span class = "nb" > export < / span > < span class = "nv" > BCOIN_API_KEY< / span > < span class = "o" > =[< / span > api-key]
bcoin cli info
@ -5315,7 +5315,7 @@ to lookup transactions by transaction hashes and addresses, respectively.
< / tr >
< / tbody > < / table >
< h1 id = 'wallet-admin' > Wallet Admin< / h1 >
< p > The _admin namespace exists to differentiate administrative level tasks on the wallet API that you probably don' t want to expose to individual wallets. < / p >
< p > The _admin namespace exists to differentiate administrative level tasks on the wallet API that you probably don' t want to expose to individual wallets.< / p >
< p > < code > /wallet/_admin/[TARGET_ACTION]< / code > < / p >
@ -5347,8 +5347,7 @@ Replace `[TARGET_ACTION]` with one of the available actions listed below
< h3 id = 'example-http-request' > Example HTTP Request< / h3 >
< p > < code > POST /wallet/_admin/rescan?height=50000< / code > < / p >
< h2 id = 'wallet-resend' > Wallet Resend< / h2 > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/_admin/resend < span class = "se" > \< / span >
-X POST
--data < span class = "s2" > "{}"< / span >
-X POST
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli resend
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > client< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > ({< / span >
< span class = "na" > network< / span > < span class = "p" > :< / span > < span class = "s1" > 'testnet'< / span > < span class = "p" > ,< / span >
@ -5366,15 +5365,12 @@ Replace `[TARGET_ACTION]` with one of the available actions listed below
< / span > < / code > < / pre >
< p > Rebroadcast all pending transactions in all wallets.< / p >
< h3 id = 'http-request' > HTTP Request< / h3 >
< p > < code > POST /wallet/_admin/resend< / code > < / p >
< p > < code > POST /wallet/_admin/resend< / code > < / p >
< h2 id = 'wallet-backup' > Wallet Backup< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > path< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > path< / span > < span class = "o" > =< / span > < span class = "s1" > '/path/to/new/backup'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/_admin/backup?path< span class = "o" > =< / span > /home/user/walletdb-backup.ldb < span class = "se" > \ < / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/_admin/backup?path< span class = "o" > =< / span > /home/user/walletdb-backup.ldb < span class = "se" > \< / span >
-X POST < span class = "se" > \< / span >
< span class = "sb" > ``< / span >
< span class = "sb" > ```< / span > shell--cli
bcoin cli backup < span class = "nv" > $path< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli backup < span class = "nv" > $path< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > client< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > ({< / span >
< span class = "na" > network< / span > < span class = "p" > :< / span > < span class = "s1" > 'testnet'< / span > < span class = "p" > ,< / span >
< span class = "p" > });< / span >
@ -5391,7 +5387,7 @@ bcoin cli backup <span class="nv">$path</span>
< / span > < / code > < / pre >
< p > Safely backup the wallet database to specified path (creates a clone of the database).< / p >
< h3 id = 'http-request-2' > HTTP Request< / h3 >
< p > < code > POST /wallet/_admin/backup?path=/home/user/walletdb-backup.ldb< / code > < / p >
< p > < code > POST /wallet/_admin/backup?path=/home/user/walletdb-backup.ldb< / code > < / p >
< h2 id = 'list-all-wallets' > List all Wallets< / h2 > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/_admin/wallets
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallets
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > client< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > ({< / span >
@ -5414,15 +5410,26 @@ bcoin cli backup <span class="nv">$path</span>
< / span > < / code > < / pre >
< p > List all wallet IDs. Returns an array of strings.< / p >
< h3 id = 'http-request-3' > HTTP Request< / h3 >
< p > < code > GET /wallet/_admin/wallets< / code > < / p >
< h1 id = 'wallet' > Wallet< / h1 > < h2 id = 'the-walletdb-and-object' > The WalletDB and Object< / h2 >
< p > < code > GET /wallet/_admin/wallets< / code > < / p >
< h1 id = 'wallet' > Wallet< / h1 > < h2 id = 'the-walletdb-and-object' > The WalletDB and Object< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > url< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "primary"< / span >
< span class = "nv" > url< / span > < span class = "o" > =< / span > < span class = "s2" > "http://localhost:18332"< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet get --id< span class = "o" > =< / span > < span class = "nv" > $id< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Wallet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > wallet< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > getInfo< / span > < span class = "p" > ();< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > wallet< / span > < span class = "p" > );< / span >
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > The wallet object will look something like this:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "s2" > "network"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "testnet"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "wid"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "id"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "foo"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "id"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "primary "< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "initialized"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "watchOnly"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "accountDepth"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" >
@ -5458,7 +5465,7 @@ bcoin cli backup <span class="nv">$path</span>
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < / code > < / pre >
< p > Bcoin maintains a wallet database which contains every wallet. Wallets are not usable without also using a wallet database. For testing, the wallet database can be in-memory, but it must be there.< / p >
< p > Bcoin maintains a wallet database which contains every wallet. Wallets are not usable without also using a wallet database. For testing, the wallet database can be in-memory, but it must be there. Wallets are uniquely identified by an id and the walletdb is created with a default id of < code > primary< / code > . (See < a href = "#create-a-wallet" > Create a Wallet< / a > below for more details.) < / p >
< p > Wallets in bcoin use bip44. They also originally supported bip45 for multisig, but support was removed to reduce code complexity, and also because bip45 doesn' t seem to add any benefit in practice.< / p >
@ -5567,8 +5574,8 @@ bcoin cli backup <span class="nv">$path</span>
< / blockquote >
< pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > token< / span > < span class = "p" > ,< / span > < span class = "nx" > id< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > token< / span > < span class = "o" > =< / span > < span class = "s1" > '977fbb8d212a1e78c7ce9dfda4ff3d7cc8bcd20c4ccf85d2c9c84bbef6c88b3c'< / span >
< span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'primary '< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /send < span class = "se" > \< / span >
< span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo '< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > < span class = "se" > \< / span >
-H < span class = "s1" > 'Content-Type: application/json'< / span > < span class = "se" > \< / span >
-d < span class = "s1" > '{ "token": "$token" ... }'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet get --network< span class = "o" > =< / span > testnet --token< span class = "o" > =< / span > < span class = "nv" > $token< / span >
@ -5622,21 +5629,24 @@ Note: if you happen to lose the returned token, you will not be able to access t
< / aside >
< h3 id = 'http-request' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/retoken< / code > < / p >
< h2 id = 'get-wallet-info' > Get Wallet Info< / h2 > < pre class = "highlight shell tab-shell--curl" > < code > curl http://localhost:18332/wallet/test/
< h2 id = 'get-wallet-info' > Get Wallet Info< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet get --id< span class = "o" > =< / span > < span class = "nb" > test< / span > --network< span class = "o" > =< / span > testnet
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > < span class = "c" > # ID defaults to `primary` if none is passed< / span >
bcoin cli wallet get --id< span class = "o" > =< / span > < span class = "nv" > $id< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "s2" > `use strict`< / span >
< span class = "kr" > const< / span > < span class = "nx" > clien t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Clien t< / span > < span class = "p" > ({< / span > < span class = "na" > network < / span > < span class = "p" > :< / span > < span class = "s1" > 'testnet' < / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > httpWalle t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Walle t< / span > < span class = "p" > ({< / span > < span class = "na" > id < / span > < span class = "p" > :< / span > < span class = "nx" > id < / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span > < span class = "p" > ;< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > wallet< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > clien t< / span > < span class = "p" > .< / span > < span class = "nx" > getWallet< / span > < span class = "p" > (< / span > < span class = "nx" > id< / span > < span class = "p" > );< / span >
< span class = "kr" > const< / span > < span class = "nx" > wallet< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWalle t< / span > < span class = "p" > .< / span > < span class = "nx" > getWalletInfo < / span > < span class = "p" > ( );< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > wallet< / span > < span class = "p" > );< / span >
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > Output is same as wallet object above < / p >
< p > Sample output < / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "s2" > "network"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "testnet"< / span > < span class = "p" > ,< / span > < span class = "w" >
@ -5677,7 +5687,7 @@ Note: if you happen to lose the returned token, you will not be able to access t
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < / code > < / pre >
< p > Get wallet info by ID.< / p >
< p > Get wallet info by ID. If no id is passed in the CLI it assumes an id of < code > primary< / code > . < / p >
< h3 id = 'http-request-2' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id< / code > < / p >
@ -5736,7 +5746,7 @@ Note: if you happen to lose the returned token, you will not be able to access t
< td > named id of the wallet whose info you would like to retrieve< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'create-new-wallet' > Create New Wallet< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > witness< / span > < span class = "p" > ;< / span >
< h2 id = 'create-a-wallet' > Create A Wallet< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > witness< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > id < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span >
witness < span class = "o" > =< / span > < span class = "nb" > false< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > < span class = "se" > \< / span >
@ -5818,14 +5828,14 @@ See <a href="#wallet-options">Wallet Options</a> for full list and description o
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span >
oldPass < span class = "o" > =< / span > < span class = "s1" > 'oldpass123'< / span >
< span class = "nv" > newPass< / span > < span class = "o" > =< / span > < span class = "s1" > 'newpass123'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > < span class = "gp" > > < / span > No < span class = "nb" > command < / span > available
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > < span class = "gp" > > < / span > No cli < span class = "nb" > command < / span > available
< / code > < / pre > < pre class = "highlight plaintext" > < code > curl $url/wallet/$id/passphrase \
-X POST
--data '{"old":'$oldPass', "new":'$newPass'}'
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > clien t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > CLien t< / span > < span class = "p" > ();< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWalle t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Walle t< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > } );< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > clien t< / span > < span class = "p" > .< / span > < span class = "nx" > setPassphrase< / span > < span class = "p" > (< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > oldPass< / span > < span class = "p" > ,< / span > < span class = "nx" > newPass< / span > < span class = "p" > );< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWalle t< / span > < span class = "p" > .< / span > < span class = "nx" > setPassphrase< / span > < span class = "p" > (< / span > < span class = "nx" > oldPass< / span > < span class = "p" > ,< / span > < span class = "nx" > newPass< / span > < span class = "p" > );< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > response< / span > < span class = "p" > );< / span >
< span class = "p" > });< / span >
< / code > < / pre >
@ -5849,7 +5859,7 @@ oldPass <span class="o">=</span> <span class="s1">'oldpass123'</span>
< td > Old passphrase. Pass in empty string if none< / td >
< / tr >
< tr >
< td > passphrase < br > _string< / td >
< td > new < br > _string< / td >
< td > New passphrase< / td >
< / tr >
< / tbody > < / table >
@ -5981,10 +5991,10 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /import < span class = "se" > \< / span >
-X POST < span class = "se" > \< / span >
--data < span class = "s1" > '{"account":"'< / span > < span class = "nv" > $account< / span > < span class = "s1" > '", "address":"'< / span > < span class = "nv" > $address< / span > < span class = "s1" > '"}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > w allet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Wallet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpW allet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Wallet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > w allet< / span > < span class = "p" > .< / span > < span class = "nx" > importAddress< / span > < span class = "p" > (< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > account< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > )< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpW allet< / span > < span class = "p" > .< / span > < span class = "nx" > importAddress< / span > < span class = "p" > (< / span > < span class = "nx" > account< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > )< / span >
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
@ -6054,7 +6064,7 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Wallet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > blockInfo< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > getWallet Block< / span > < span class = "p" > (< / span > < span class = "nx" > height< / span > < span class = "p" > );< / span >
< span class = "kr" > const< / span > < span class = "nx" > blockInfo< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > getBlock< / span > < span class = "p" > (< / span > < span class = "nx" > height< / span > < span class = "p" > );< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > blockInfo< / span > < span class = "p" > );< / span >
< span class = "p" > })< / span >
< / code > < / pre >
@ -6089,15 +6099,15 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< td > height of block being queried< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'add-xpubkey-multisig' > Add xpubkey (Multisig)< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > key< / span > < span class = "p" > ;< / span >
< h2 id = 'add-xpubkey-multisig' > Add xpubkey (Multisig)< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > key< / span > < span class = "p" > ,< / span > < span class = "nx" > account< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "multi-foo"< / span >
< span class = "nv" > key< / span > < span class = "o" > =< / span > < span class = "s2" > ""< / span >
< span class = "nv" > key< / span > < span class = "o" > =< / span > < span class = "s2" > "tpubDCUQshhR98hjDDPtefuQdg4Dmpk5mes3TRyUp1Qa4BjxCVytfqmqNWmJ3tUZfqu4qLfEypQhNcpMF3yhZJ8h8hcahnxCzrqWmV5qVHHTqGM "< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > shared add < span class = "nv" > $key< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /shared-key < span class = "se" > \< / span >
-X PUT
--data < span class = "s1" > '{"accountKey": $key}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > wallet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > account< / span > < span class = "o" > =< / span > < span class = "s1" > 'default'< / span > < span class = "p" > ;< / span >
< span class = "nx" > account< / span > < span class = "o" > =< / span > < span class = "s1" > 'default'< / span > < span class = "p" > ;< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > addSharedKey< / span > < span class = "p" > (< / span > < span class = "nx" > account< / span > < span class = "p" > ,< / span > < span class = "nx" > key< / span > < span class = "p" > );< / span >
@ -6112,6 +6122,10 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < / code > < / pre >
< p > Add a shared xpubkey to wallet. Must be a multisig wallet.< / p >
< aside class = "notice" >
Note that since it must be a multisig, the wallet on creation should be set with < code > m< / code > and < code > n< / code > where < code > n< / code > is greater than 1 (since the first key is always that wallet's own xpubkey)
< / aside >
< h3 id = 'http-request-12' > HTTP Request< / h3 >
< p > < code > PUT /wallet/:id/shared-key< / code > < / p >
< h3 id = 'body-parameters-3' > Body Parameters< / h3 >
@ -6125,10 +6139,14 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< td > accountKey < br > < em > string< / em > < / td >
< td > xpubkey to add to the multisig wallet< / td >
< / tr >
< tr >
< td > account < br > < em > string< / em > < / td >
< td > multisig account to add the xpubkey to (default=' default' )< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'remove-xpubkey-multisig' > Remove xpubkey (Multisig)< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > key< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "multi-foo"< / span >
< span class = "nv" > key< / span > < span class = "o" > =< / span > < span class = "s2" > ""< / span >
< span class = "nv" > key< / span > < span class = "o" > =< / span > < span class = "s2" > "tpubDCUQshhR98hjDDPtefuQdg4Dmpk5mes3TRyUp1Qa4BjxCVytfqmqNWmJ3tUZfqu4qLfEypQhNcpMF3yhZJ8h8hcahnxCzrqWmV5qVHHTqGM "< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > shared remove < span class = "nv" > $key< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /shared-key < span class = "se" > \< / span >
-X DELETE
@ -6162,6 +6180,10 @@ Note that imported keys do not exist anywhere in the wallet's HD tree. They can
< td > accountKey < br > < em > string< / em > < / td >
< td > xpubkey to add to the multisig wallet< / td >
< / tr >
< tr >
< td > account < br > < em > string< / em > < / td >
< td > multisig account to remove the key from (default=' default' )< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'get-public-key-by-address' > Get Public Key By Address< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "foo"< / span >
@ -6354,7 +6376,9 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< / tr >
< / tbody > < / table >
< h2 id = 'post-wallet-id-nested' > POST /wallet/:id/nested< / h2 >
< p > Derive new nested p2sh receiving address for account.< / p >
< p > Derive new nested p2sh receiving address for account. Note that this can' t be done on a non-witness account otherwise you will receive the following error:< / p >
< p > < code > [error] (node) Cannot derive nested on non-witness account.< / code > < / p >
< h3 id = 'http-request-18' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/nested< / code > < / p >
< h2 id = 'get-wallet-id-balance' > GET /wallet/:id/balance< / h2 >
@ -6413,21 +6437,23 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< p > Get wallet coins.< / p >
< h3 id = 'http-request-24' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/coin/:hash/:index< / code > < / p >
< h1 id = 'wallet-transactions' > Wallet Transactions< / h1 > < h2 id = 'send-a-transaction' > Send a transaction< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span >
< h1 id = 'wallet-transactions' > Wallet Transactions< / h1 > < h2 id = 'send-a-transaction' > Send a transaction< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > passphrase< / span > < span class = "p" > ,< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "foo"< / span >
< span class = "nv" > passphrase< / span > < span class = "o" > =< / span > < span class = "s2" > "bar"< / span >
< span class = "nv" > rate< / span > < span class = "o" > =< / span > 100
< span class = "nv" > value< / span > < span class = "o" > =< / span > . 3
< span class = "nv" > value< / span > < span class = "o" > =< / span > 3000
< span class = "nv" > address< / span > < span class = "o" > =< / span > < span class = "s2" > "moTyiK7aExe2v3hFJ9BCsYooTziX15PGuA"< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet send --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --value< span class = "o" > =< / span > < span class = "nv" > $value< / span > --address< span class = "o" > =< / span > < span class = "nv" > $address< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet send --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --value< span class = "o" > =< / span > < span class = "nv" > $value< / span > --address< span class = "o" > =< / span > < span class = "nv" > $address< / span > ---passphrase< span class = "o" > =< / span > < span class = "nv" > $passphrase< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /send < span class = "se" > \< / span >
-X POST < span class = "se" > \< / span >
--data < span class = "s1" > '{
"passphrase":"'< / span > < span class = "nv" > $passphrase< / span > < span class = "s1" > '",
"rate":'< / span > < span class = "nv" > $rate< / span > < span class = "s1" > ',
"outputs":[
{"address":"'< / span > < span class = "nv" > $address< / span > < span class = "s1" > '", "value":'< / span > < span class = "nv" > $value< / span > < span class = "s1" > '}
]
]
}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > w allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > W allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > options< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "na" > rate< / span > < span class = "p" > :< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span >
< span class = "na" > outputs< / span > < span class = "p" > :< / span > < span class = "p" > [{< / span > < span class = "na" > value< / span > < span class = "p" > :< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ;< / span > < span class = "nx" > address< / span > < span class = "p" > }]< / span >
@ -6439,7 +6465,7 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > Sample response: < / p >
< p > Sample response:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "p" > {< / span > < span class = "w" >
@ -6487,7 +6513,7 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< / span > < / code > < / pre >
< p > Create, sign, and send a transaction.< / p >
< h3 id = 'http-request' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/send< / code > < / p >
< p > < code > POST /wallet/:id/send< / code > < / p >
< h3 id = 'post-paramaters' > Post Paramaters< / h3 >
< table > < thead >
< tr >
@ -6525,40 +6551,44 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< / thead > < tbody >
< tr >
< td > value < br > < em > int< / em > < / td >
< td > Value to send in bitcoin (as of beta-1.14) < / td >
< td > Value to send in satoshis < / td >
< / tr >
< tr >
< td > address < br > < em > string< / em > < / td >
< td > destination address for transaction< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'create-a-transaction' > Create a Transaction< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'foo'< / span >
< h2 id = 'create-a-transaction' > Create a Transaction< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > address< / span > < span class = "p" > ,< / span > < span class = "nx" > passphrase< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "foo"< / span >
< span class = "nv" > passphrase< / span > < span class = "o" > =< / span > < span class = "s2" > "bar"< / span >
< span class = "nv" > rate< / span > < span class = "o" > =< / span > 100
< span class = "nv" > value< / span > < span class = "o" > =< / span > .3
< span class = "nv" > address< / span > < span class = "o" > =< / span > < span class = "s2" > "moTyiK7aExe2v3hFJ9BCsYooTziX15PGuA"< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet mktx --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --rate< span class = "o" > =< / span > < span class = "nv" > $rate< / span > --value< span class = "o" > =< / span > < span class = "nv" > $value< / span > --address< span class = "o" > =< / span > < span class = "nv" > $address< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet mktx --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --rate< span class = "o" > =< / span > < span class = "nv" > $rate< / span > --value< span class = "o" > =< / span > < span class = "nv" > $value< / span > --address< span class = "o" > =< / span > < span class = "nv" > $address< / span > --passphrase< span class = "o" > =< / span > < span class = "nv" > $passphrase< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /create < span class = "se" > \< / span >
-X POST < span class = "se" > \< / span >
--data < span class = "s1" > '{
"rate":'< / span > < span class = "nv" > $rate< / span > < span class = "s1" > ',
"rate":"'< / span > < span class = "nv" > $rate< / span > < span class = "s1" > '",
"passphrase": "'< / span > < span class = "nv" > $passphrase< / span > < span class = "s1" > '"
"outputs":[
{"address":"'< / span > < span class = "nv" > $address< / span > < span class = "s1" > '", "value":'< / span > < span class = "nv" > $value< / span > < span class = "s1" > '}
]
]
}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > w allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > outputs< / span > < span class = "p" > : < / span > < span class = "p" > [{< / span > < span class = "na" > value< / span > < span class = "p" > :< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx " > address< / span > < span class = "p" > ; < / span > < span class = "nx" > address< / span > < span class = "p" > }]< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > W allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "kr" > const< / span > < span class = "nx" > outputs< / span > < span class = "o" > = < / span > < span class = "p" > [{< / span > < span class = "na" > value< / span > < span class = "p" > :< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "na " > address< / span > < span class = "p" > : < / span > < span class = "nx" > address< / span > < span class = "p" > }]< / span >
< span class = "kr" > const< / span > < span class = "nx" > options< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "na" > passphrase< / span > < span class = "p" > :< / span > < span class = "nx" > passphrase< / span > < span class = "p" > ,< / span >
< span class = "na" > outputs< / span > < span class = "p" > :< / span > < span class = "nx" > outputs< / span > < span class = "p" > ,< / span >
< span class = "na" > rate< / span > < span class = "p" > :< / span > < span class = "nx" > rate< / span > < span class = "p" > ,< / span >
< span class = "p" > };< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > tx< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > createTX< / span > < span class = "p" > (< / span > < span class = "nx" > options< / span > < span class = "p" > ,< / span > < span class = "nx" > outputs< / span > < span class = "p" > );< / span >
< span class = "kr" > const< / span > < span class = "nx" > tx< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > createTX< / span > < span class = "p" > (< / span > < span class = "nx" > options< / span > < span class = "p" > );< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > tx< / span > < span class = "p" > );< / span >
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > Sample response: < / p >
< p > Sample response:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "s2" > "hash"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "0799a1d3ebfd108d2578a60e1b685350d42e1ef4d5cd326f99b8bf794c81ed17"< / span > < span class = "p" > ,< / span > < span class = "w" >
@ -6605,7 +6635,7 @@ Note that, except for the CLI which assumes 'default' account, an account must b
< p > Create and template a transaction (useful for multisig).
Do not broadcast or add to wallet.< / p >
< h3 id = 'http-request-2' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/create< / code > < / p >
< p > < code > POST /wallet/:id/create< / code > < / p >
< h3 id = 'post-paramters' > Post Paramters< / h3 >
< table > < thead >
< tr >
@ -6650,7 +6680,7 @@ Do not broadcast or add to wallet.</p>
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s2" > "foo"< / span >
< span class = "nv" > passphrase< / span > < span class = "o" > =< / span > < span class = "s2" > "bar"< / span >
< span class = "nv" > tx< / span > < span class = "o" > =< / span > < span class = "s2" > "01000000010d72c6b2582c2b2e625d29dd5ad89209de7e2600ab12a1a8e05813c28b703d2c000000006b483045022100af93a8761ad22af858c5bc4e68b5991eac017dcddd933cf125553ec0b83eb8f30220373a4d8ee331ac4c3975718e2a789f873af0520ddbd2db18957cdf488ccd4ee301210215a9110e2a9b293c332c28d69f88081aa2a949fde67e35a13fbe19410994ffd9ffffffff0280969800000000001976a9143f4f69730dcb175c830b94226ae13f89bef969c488ac80c3c901000000001976a9143f4f69730dcb175c830b94226ae13f89bef969c488ac00000000"< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet sign --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --passphrase< span class = "o" > =< / span > < span class = "nv" > $passphrase< / span > --tx< span class = "o" > =< / span > < span class = "nv" > $tx< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet sign --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > --passphrase< span class = "o" > =< / span > < span class = "nv" > $passphrase< / span > --tx< span class = "o" > =< / span > < span class = "nv" > $tx< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /sign < span class = "se" > \< / span >
-X POST < span class = "se" > \< / span >
--data < span class = "s1" > '{"tx": "'< / span > < span class = "nv" > $tx< / span > < span class = "s1" > '", "passphrase":"'< / span > < span class = "nv" > $passphrase< / span > < span class = "s1" > '"}'< / span >
@ -6708,7 +6738,7 @@ Do not broadcast or add to wallet.</p>
< / span > < / code > < / pre >
< p > Sign a templated transaction (useful for multisig).< / p >
< h3 id = 'http-request-3' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/sign< / code > < / p >
< p > < code > POST /wallet/:id/sign< / code > < / p >
< h3 id = 'post-paramters-2' > Post Paramters< / h3 >
< table > < thead >
< tr >
@ -6736,7 +6766,7 @@ Do not broadcast or add to wallet.</p>
"account": "'< / span > < span class = "nv" > $account< / span > < span class = "s1" > '",
"age": "'< / span > < span class = "nv" > $age< / span > < span class = "s1" > '"
}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > w allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWallet< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > W allet< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > });< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > response< / span > < span class = "o" > =< / span > < span class = "nx" > httpWallet< / span > < span class = "p" > .< / span > < span class = "nx" > zap< / span > < span class = "p" > (< / span > < span class = "nx" > account< / span > < span class = "p" > ,< / span > < span class = "nx" > age< / span > < span class = "p" > );< / span >
@ -6752,7 +6782,7 @@ Do not broadcast or add to wallet.</p>
< / span > < / code > < / pre >
< p > Remove all pending transactions older than a specified age.< / p >
< h3 id = 'http-request-4' > HTTP Request< / h3 >
< p > < code > POST /wallet/:id/zap?age=3600< / code > < / p >
< p > < code > POST /wallet/:id/zap?age=3600< / code > < / p >
< h3 id = 'post-parameters' > Post Parameters< / h3 >
< table > < thead >
< tr >
@ -6774,15 +6804,15 @@ Do not broadcast or add to wallet.</p>
< span class = "nb" > hash< / span > < span class = "o" > =< / span > < span class = "s2" > "2a22606ee555d2c26ec979f0c45cd2dc18c7177056189cb345989749fd58786"< / span >
< span class = "nv" > passphrase< / span > < span class = "o" > =< / span > < span class = "s2" > "bar"< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > < span class = "c" > # Not available in CLI< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /tx/< span class = "nv" > $hash< / span > < span class = "se" > \ < / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /tx/< span class = "nv" > $hash< / span > < span class = "se" > \< / span >
-X DELETE < span class = "se" > \< / span >
--data < span class = "s1" > '{"passphrase": "'< / span > < span class = "nv" > $passphrase< / span > < span class = "s1" > '"}'< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "c1" > // Not available in javascript wallet client. < / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "c1" > // Not available in javascript wallet client.< / span >
< / code > < / pre >
< p > Abandon single pending transaction. Confirmed transactions will throw an error.
< code > " TX not eligible" < / code > < / p >
< h3 id = 'http-request-5' > HTTP Request< / h3 >
< p > < code > DEL /wallet/:id/tx/:hash< / code > < / p >
< p > < code > DEL /wallet/:id/tx/:hash< / code > < / p >
< table > < thead >
< tr >
@ -6802,23 +6832,23 @@ Do not broadcast or add to wallet.</p>
< h2 id = 'get-wallet-id-tx-history' > GET /wallet/:id/tx/history< / h2 >
< p > Get wallet TX history. Returns array of tx details.< / p >
< h3 id = 'http-request-6' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/tx/history< / code > < / p >
< p > < code > GET /wallet/:id/tx/history< / code > < / p >
< h2 id = 'get-wallet-id-tx-unconfirmed' > GET /wallet/:id/tx/unconfirmed< / h2 >
< p > Get pending wallet transactions. Returns array of tx details.< / p >
< h3 id = 'http-request-7' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/tx/unconfirmed< / code > < / p >
< p > < code > GET /wallet/:id/tx/unconfirmed< / code > < / p >
< h2 id = 'get-wallet-id-tx-range' > GET /wallet/:id/tx/range< / h2 >
< p > Get range of wallet transactions by timestamp. Returns array of tx details.< / p >
< h3 id = 'http-request-8' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/tx/range< / code > < / p >
< p > < code > GET /wallet/:id/tx/range< / code > < / p >
< h2 id = 'get-wallet-id-tx-last' > GET /wallet/:id/tx/last< / h2 >
< p > Get last N wallet transactions.< / p >
< h3 id = 'http-request-9' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/tx/last< / code > < / p >
< p > < code > GET /wallet/:id/tx/last< / code > < / p >
< h2 id = 'get-wallet-id-tx-hash' > GET /wallet/:id/tx/:hash< / h2 >
< p > Get wallet transaction details.< / p >
< h3 id = 'http-request-10' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/tx/:hash< / code > < / p >
< p > < code > GET /wallet/:id/tx/:hash< / code > < / p >
< h1 id = 'wallet-accounts' > Wallet Accounts< / h1 > < h2 id = 'account-object' > Account Object< / h2 >
< blockquote >
< p > An account object looks like this:< / p >
@ -6843,7 +6873,7 @@ Do not broadcast or add to wallet.</p>
< / span > < span class = "s2" > "changeAddress"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "n3nFYgQR2mrLwC3X66xHNsx4UqhS3rkSnY"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "accountKey"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "tpubDC5u44zLNUVo2gPVdqCbtX644PKccH5VZB3nqUgeCiwKoi6BQZGtr5d6hhougcD6PqjszsbR3xHrQ5k8yTbUt64aSthWuNdGi7zSwfGVuxc"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s2" > "keys"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > []< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < / code > < / pre >
< p > Represents a BIP44 Account belonging to a Wallet.
@ -6873,7 +6903,7 @@ Note that this object does not enforce locks. Any method that does a write is in
Hardened derivation is used at this level.
< / code >
< / p >
< h2 id = 'get-wallet-account-list' > Get Wallet Account List< / h2 > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'test'< / span >
< h2 id = 'get-wallet-account-list' > Get Wallet Account List< / h2 > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'test'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet account list --id< span class = "o" > =< / span > < span class = "nv" > $id< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > client< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > ();< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
@ -6882,13 +6912,13 @@ Note that this object does not enforce locks. Any method that does a write is in
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > Sample response: < / p >
< p > Sample response:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > [< / span > < span class = "w" >
< / span > < span class = "s2" > "default"< / span > < span class = "w" >
< / span > < span class = "p" > ]< / span > < span class = "w" >
< / span > < / code > < / pre >
< p > List all account names (array indici es map directly to bip44 account indici es) associated with a specific wallet id.< / p >
< p > List all account names (array indices map directly to bip44 account indices) associated with a specific wallet id.< / p >
< h3 id = 'http-request' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/account< / code > < / p >
@ -6919,7 +6949,7 @@ Note that command defaults to primary (default) wallet if no wallet id is passed
< span class = "p" > })();< / span >
< / code > < / pre >
< blockquote >
< p > Sample response: < / p >
< p > Sample response:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "s2" > "wid"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" >
@ -6945,7 +6975,7 @@ Note that command defaults to primary (default) wallet if no wallet id is passed
< / span > < / code > < / pre >
< p > Get account info.< / p >
< h3 id = 'http-request-2' > HTTP Request< / h3 >
< p > < code > GET /wallet/:id/account/:account< / code > < / p >
< p > < code > GET /wallet/:id/account/:account< / code > < / p >
< table > < thead >
< tr >
@ -6962,23 +6992,24 @@ Note that command defaults to primary (default) wallet if no wallet id is passed
< td > id of account you would to retrieve information for< / td >
< / tr >
< / tbody > < / table >
< h2 id = 'create-new-wallet-account' > Create new wallet account< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > name< / span > < span class = "p" > ;< / span >
< h2 id = 'create-new-wallet-account' > Create new wallet account< / h2 > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kd" > let< / span > < span class = "nx" > id< / span > < span class = "p" > ,< / span > < span class = "nx" > name< / span > < span class = "p" > ,< / span > < span class = "nx" > type< / span > < span class = "p" > ;< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--vars" > < code > < span class = "nv" > id< / span > < span class = "o" > =< / span > < span class = "s1" > 'test'< / span >
< span class = "nv" > name< / span > < span class = "o" > =< / span > < span class = "s1" > 'menace'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > account create < span class = "nv" > $name< / span > --type< span class = "o" > =< / span > multisig
< span class = "nb" > type< / span > < span class = "o" > =< / span > < span class = "s1" > 'multisig'< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--cli" > < code > bcoin cli wallet --id< span class = "o" > =< / span > < span class = "nv" > $id< / span > account create < span class = "nv" > $name< / span > --type< span class = "o" > =< / span > < span class = "nv" > $type< / span >
< / code > < / pre > < pre class = "highlight shell tab-shell--curl" > < code > curl < span class = "nv" > $url< / span > /wallet/< span class = "nv" > $id< / span > /account/< span class = "nv" > $name< / span > < span class = "se" > \< / span >
-X PUT
--data < span class = "s1" > '{"type": "multisig"} '< / span >
< / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > clien t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Clien t< / span > < span class = "p" > ();< / span >
< span class = "kr" > const< / span > < span class = "nx" > options< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "na" > type< / span > < span class = "p" > :< / span > < span class = "s1" > 'multisig' < / span > < span class = "p" > };< / span > < span class = "c1" > // options are the same as available wallet options < / span >
--data < span class = "s1" > '{"type": "'< / span > < span class = "nv" > $type< / span > < span class = "s2" > "}'
< / span > < / code > < / pre > < pre class = "highlight javascript tab-javascript" > < code > < span class = "kr" > const< / span > < span class = "nx" > httpWalle t< / span > < span class = "o" > =< / span > < span class = "k" > new< / span > < span class = "nx" > bcoin< / span > < span class = "p" > .< / span > < span class = "nx" > http< / span > < span class = "p" > .< / span > < span class = "nx" > Walle t< / span > < span class = "p" > ({< / span > < span class = "na" > id< / span > < span class = "p" > :< / span > < span class = "nx" > id< / span > < span class = "p" > } );< / span >
< span class = "kr" > const< / span > < span class = "nx" > options< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "na" > type< / span > < span class = "p" > :< / span > < span class = "nx" > type < / span > < span class = "p" > }< / span >
< span class = "p" > (< / span > < span class = "nx" > async< / span > < span class = "p" > ()< / span > < span class = "o" > => < / span > < span class = "p" > {< / span >
< span class = "kr" > const< / span > < span class = "nx" > account< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > clien t< / span > < span class = "p" > .< / span > < span class = "nx" > createAccount< / span > < span class = "p" > (< / span > < span class = "nx" > name< / span > < span class = "p" > ,< / span > < span class = "nx" > options< / span > < span class = "p" > );< / span >
< span class = "kr" > const< / span > < span class = "nx" > account< / span > < span class = "o" > =< / span > < span class = "nx" > await< / span > < span class = "nx" > httpWalle t< / span > < span class = "p" > .< / span > < span class = "nx" > createAccount< / span > < span class = "p" > (< / span > < span class = "nx" > name< / span > < span class = "p" > ,< / span > < span class = "nx" > options< / span > < span class = "p" > );< / span >
< span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > account< / span > < span class = "p" > );< / span >
< span class = "p" > });< / span >
< span class = "p" > })() ;< / span >
< / code > < / pre >
< blockquote >
< p > Sample response: < / p >
< p > Sample response:< / p >
< / blockquote >
< pre class = "highlight json tab-json" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "s2" > "wid"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" >
@ -7004,7 +7035,39 @@ Note that command defaults to primary (default) wallet if no wallet id is passed
< / span > < / code > < / pre >
< p > Create account with specified account name.< / p >
< h3 id = 'http-request-3' > HTTP Request< / h3 >
< p > < code > PUT /wallet/:id/account/:name< / code > < / p >
< p > < code > PUT /wallet/:id/account/:name< / code > < / p >
< h3 id = 'options-object' > Options object< / h3 >
< table > < thead >
< tr >
< th > Parameter< / th >
< th > Description< / th >
< / tr >
< / thead > < tbody >
< tr >
< td > name < br > < em > string< / em > < / td >
< td > name to give the account. Option can be < code > account< / code > or < code > name< / code > < / td >
< / tr >
< tr >
< td > witness < br > < em > bool< / em > < / td >
< td > whether or not to act as segregated witness wallet account< / td >
< / tr >
< tr >
< td > watchOnly < br > < em > bool< / em > < / td >
< td > whether or not to make watch only account. Watch only accounts can' t accept private keys for import (or sign transactions)< / td >
< / tr >
< tr >
< td > type < br > < em > string< / em > < / td >
< td > what type of wallet to make it (' multisig' , ' pubkeyhash' )< / td >
< / tr >
< tr >
< td > m < br > < em > int< / em > < / td >
< td > for multisig accounts, what to make < code > m< / code > in m-of-n< / td >
< / tr >
< tr >
< td > n < br > < em > int< / em > < / td >
< td > for multisig accounts, what to make the < code > n< / code > in m-of-n< / td >
< / tr >
< / tbody > < / table >
< h1 id = 'errors' > Errors< / h1 >
< p > Any errors will be returned with an http status code other than 200, containing a JSON object in the form:< / p >