Browse Source

update to api docs

master-backup
Bucko 7 years ago
parent
commit
abd8de276a
  1. 229
      api-docs/index.html

229
api-docs/index.html

@ -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&#39;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&#39;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">=&gt;</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&#39;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">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="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">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">=&gt;</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">client</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">httpWallet</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">&gt; </span>No <span class="nb">command </span>available
</code></pre><pre class="highlight shell tab-shell--cli"><code><span class="gp">&gt; </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">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>
</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">=&gt;</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">client</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">httpWallet</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">wallet</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">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">=&gt;</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">wallet</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">httpWallet</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">=&gt;</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">getWalletBlock</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">=&gt;</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=&#39;default&#39;)</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=&#39;default&#39;)</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&#39;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">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">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">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">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">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">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">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">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">=&gt;</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">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">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">=&gt;</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>&quot;TX not eligible&quot;</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">=&gt;</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 indicies map directly to bip44 account indicies) 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">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="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">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">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">=&gt;</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">client</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">httpWallet</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&#39;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 (&#39;multisig&#39;, &#39;pubkeyhash&#39;)</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>

Loading…
Cancel
Save