Files
stacks.js/docs/modules/stacking.html
2021-06-28 10:27:07 -07:00

826 lines
63 KiB
HTML
Vendored

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>stacking | Stacks.js 1.4.1 Library Reference</title>
<meta name="description" content="Documentation for Stacks.js 1.4.1 Library Reference">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">Stacks.js 1.4.1 Library Reference</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules.html">Stacks.js 1.4.1 Library Reference</a>
</li>
<li>
<a href="stacking.html">stacking</a>
</li>
</ul>
<h1>Module stacking</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<a href="#stacksstacking-" id="stacksstacking-" style="color: inherit; text-decoration: none;">
<h1>@stacks/stacking <a href="https://www.npmjs.com/package/@stacks/stacking"><img src="https://img.shields.io/npm/v/@stacks/stacking?color=red" alt="npm"></a></h1>
</a>
<p>Library for PoX Stacking.</p>
<a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
<h2>Installation</h2>
</a>
<pre><code class="language-shell"><span style="color: #000000">npm install @stacks/stacking bn.js</span>
</code></pre>
<a href="#initialization" id="initialization" style="color: inherit; text-decoration: none;">
<h2>Initialization</h2>
</a>
<p>Initialize a <code>StackingClient</code> to interact with the Stacking contract.</p>
<p><em>Note: the <code>StackingClient</code> sets its transactions <code>AnchorMode</code> to <code>Any</code>.</em></p>
<pre><code class="language-typescript"><span style="color: #AF00DB">import</span><span style="color: #000000"> { </span><span style="color: #001080">getNonce</span><span style="color: #000000"> } </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&#039;@stacks/transactions&#039;</span><span style="color: #000000">;</span>
<span style="color: #AF00DB">import</span><span style="color: #000000"> { </span><span style="color: #001080">StacksTestnet</span><span style="color: #000000">, </span><span style="color: #001080">StacksMainnet</span><span style="color: #000000"> } </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&#039;@stacks/network&#039;</span><span style="color: #000000">;</span>
<span style="color: #AF00DB">import</span><span style="color: #000000"> { </span><span style="color: #001080">StackingClient</span><span style="color: #000000"> } </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&#039;@stacks/stacking&#039;</span><span style="color: #000000">;</span>
<span style="color: #AF00DB">import</span><span style="color: #000000"> </span><span style="color: #001080">BN</span><span style="color: #000000"> </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&#039;bn.js&#039;</span><span style="color: #000000">;</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">network</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">StacksTestnet</span><span style="color: #000000">();</span>
<span style="color: #008000">// for mainnet: const network = new StacksMainnet();</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">client</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">StackingClient</span><span style="color: #000000">(</span><span style="color: #001080">address</span><span style="color: #000000">, </span><span style="color: #001080">network</span><span style="color: #000000">);</span>
<span style="color: #008000">// the stacks STX address</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">address</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;ST3XKKN4RPV69NN1PHFDNX3TYKXT7XPC4N8KC1ARH&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// a BTC address for reward payouts</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">poxAddress</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;mvuYDknzDtPgGqm2GnbAbmGMLwiyW3AwFP&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// number cycles to stack</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">cycles</span><span style="color: #000000"> = </span><span style="color: #098658">3</span><span style="color: #000000">;</span>
<span style="color: #008000">// how much to stack, in microSTX</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">amountMicroStx</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">BN</span><span style="color: #000000">(</span><span style="color: #098658">100000000000</span><span style="color: #000000">);</span>
<span style="color: #008000">// private key for transaction signing</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">privateKey</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;d48f215481c16cbe6426f8e557df9b78895661971d71735126545abddcd5377001&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// block height at which to stack</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">burnBlockHeight</span><span style="color: #000000"> = </span><span style="color: #098658">2000</span><span style="color: #000000">;</span>
</code></pre>
<a href="#check-stacking-eligibility" id="check-stacking-eligibility" style="color: inherit; text-decoration: none;">
<h2>Check stacking eligibility</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">stackingEligibility</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">canStack</span><span style="color: #000000">({ </span><span style="color: #001080">poxAddress</span><span style="color: #000000">, </span><span style="color: #001080">cycles</span><span style="color: #000000"> });</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// eligible: false,</span>
<span style="color: #008000">// reason: &#039;ERR_STACKING_INVALID_LOCK_PERIOD&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#stack-stx" id="stack-stx" style="color: inherit; text-decoration: none;">
<h2>Stack STX</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">stackingResults</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">stack</span><span style="color: #000000">({</span>
<span style="color: #000000"> </span><span style="color: #001080">amountMicroStx</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">poxAddress</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">cycles</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">privateKey</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">burnBlockHeight</span><span style="color: #000000">,</span>
<span style="color: #000000">});</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// txid: &#039;0xf6e9dbf6a26c1b73a14738606cb2232375d1b440246e6bbc14a45b3a66618481&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#will-stacking-be-executed-in-the-next-cycle" id="will-stacking-be-executed-in-the-next-cycle" style="color: inherit; text-decoration: none;">
<h2>Will Stacking be executed in the next cycle?</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">stackingEnabledNextCycle</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">isStackingEnabledNextCycle</span><span style="color: #000000">();</span>
<span style="color: #008000">// true / false</span>
</code></pre>
<a href="#how-long-in-seconds-is-a-stacking-cycle" id="how-long-in-seconds-is-a-stacking-cycle" style="color: inherit; text-decoration: none;">
<h2>How long (in seconds) is a Stacking cycle?</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">cycleDuration</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getCycleDuration</span><span style="color: #000000">();</span>
<span style="color: #008000">// 120</span>
</code></pre>
<a href="#how-much-time-is-left-in-seconds-until-the-next-cycle-begins" id="how-much-time-is-left-in-seconds-until-the-next-cycle-begins" style="color: inherit; text-decoration: none;">
<h2>How much time is left (in seconds) until the next cycle begins?</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">secondsUntilNextCycle</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getSecondsUntilNextCycle</span><span style="color: #000000">();</span>
<span style="color: #008000">// 600000</span>
</code></pre>
<a href="#get-pox-info" id="get-pox-info" style="color: inherit; text-decoration: none;">
<h2>Get PoX info</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">poxInfo</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getPoxInfo</span><span style="color: #000000">();</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// contract_id: &#039;ST000000000000000000002AMW42H.pox&#039;,</span>
<span style="color: #008000">// first_burnchain_block_height: 0,</span>
<span style="color: #008000">// min_amount_ustx: 83335083333333,</span>
<span style="color: #008000">// prepare_cycle_length: 30,</span>
<span style="color: #008000">// rejection_fraction: 3333333333333333,</span>
<span style="color: #008000">// reward_cycle_id: 17,</span>
<span style="color: #008000">// reward_cycle_length: 120,</span>
<span style="color: #008000">// rejection_votes_left_required: 0,</span>
<span style="color: #008000">// total_liquid_supply_ustx: 40000840000000000</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#get-stacks-node-info" id="get-stacks-node-info" style="color: inherit; text-decoration: none;">
<h2>Get Stacks node info</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">coreInfo</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getCoreInfo</span><span style="color: #000000">();</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// peer_version: 385875968,</span>
<span style="color: #008000">// pox_consensus: &#039;bb88a6e6e65fa7c974d3f6e91a941d05cc3dff8e&#039;,</span>
<span style="color: #008000">// burn_block_height: 2133,</span>
<span style="color: #008000">// stable_pox_consensus: &#039;2284451c3e623237def1f8caed1c11fa46b6f0cc&#039;,</span>
<span style="color: #008000">// stable_burn_block_height: 2132,</span>
<span style="color: #008000">// server_version: &#039;blockstack-core 0.0.1 =&gt; 23.0.0.0 (HEAD:a4deb7a+, release build, linux [x86_64])&#039;,</span>
<span style="color: #008000">// network_id: 2147483648,</span>
<span style="color: #008000">// parent_network_id: 3669344250,</span>
<span style="color: #008000">// stacks_tip_height: 1797,</span>
<span style="color: #008000">// stacks_tip: &#039;016df36c6a154cb6114c469a28cc0ce8b415a7af0527f13f15e66e27aa480f94&#039;,</span>
<span style="color: #008000">// stacks_tip_consensus_hash: &#039;bb88a6e6e65fa7c974d3f6e91a941d05cc3dff8e&#039;,</span>
<span style="color: #008000">// unanchored_tip: &#039;6b93d2c62fc07cf44302d4928211944d2debf476e5c71fb725fb298a037323cc&#039;,</span>
<span style="color: #008000">// exit_at_block_height: null</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#get-account-balance" id="get-account-balance" style="color: inherit; text-decoration: none;">
<h2>Get account balance</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">responseBalanceInfo</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getAccountBalance</span><span style="color: #000000">();</span>
<span style="color: #008000">// 800000000000</span>
</code></pre>
<a href="#does-account-have-sufficient-stx-to-meet-minimum-threshold" id="does-account-have-sufficient-stx-to-meet-minimum-threshold" style="color: inherit; text-decoration: none;">
<h2>Does account have sufficient STX to meet minimum threshold?</h2>
</a>
<pre><code class="language-js"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">hasMinStxAmount</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">hasMinimumStx</span><span style="color: #000000">();</span>
<span style="color: #008000">// true / false</span>
</code></pre>
<a href="#get-account-stacking-status" id="get-account-stacking-status" style="color: inherit; text-decoration: none;">
<h2>Get account stacking status</h2>
</a>
<pre><code class="language-typescript"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">stackingStatus</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">getStatus</span><span style="color: #000000">();</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// stacked: true,</span>
<span style="color: #008000">// details: {</span>
<span style="color: #008000">// amount_microstx: &#039;80000000000000&#039;,</span>
<span style="color: #008000">// first_reward_cycle: 18,</span>
<span style="color: #008000">// lock_period: 10,</span>
<span style="color: #008000">// unlock_height: 3020,</span>
<span style="color: #008000">// pox_address: {</span>
<span style="color: #008000">// version: &#039;00&#039;,</span>
<span style="color: #008000">// hashbytes: &#039;05cf52a44bf3e6829b4f8c221cc675355bf83b7d&#039;</span>
<span style="color: #008000">// }</span>
<span style="color: #008000">// }</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#delegation" id="delegation" style="color: inherit; text-decoration: none;">
<h2>Delegation</h2>
</a>
<p>There are four methods available for delegation, two for the delegators and two for the delegatee.</p>
<a href="#delegatee" id="delegatee" style="color: inherit; text-decoration: none;">
<h3>Delegatee</h3>
</a>
<p>If you are the account owner (&quot;stacker&quot;), you can delegate or revoke delegation rights.</p>
<a href="#delegate-stx" id="delegate-stx" style="color: inherit; text-decoration: none;">
<h4>Delegate STX</h4>
</a>
<pre><code class="language-typescript"><span style="color: #008000">// STX address of the delegator</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegateTo</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;ST2MCYPWTFMD2MGR5YY695EJG0G1R4J2BTJPRGM7H&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// burn height at which the delegation relationship should be revoked (optional)</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">untilBurnBlockHeight</span><span style="color: #000000"> = </span><span style="color: #098658">5000</span><span style="color: #000000">;</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegetateResponse</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">delegateStx</span><span style="color: #000000">({</span>
<span style="color: #000000"> </span><span style="color: #001080">amountMicroStx</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">delegateTo</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">untilBurnBlockHeight</span><span style="color: #000000">, </span><span style="color: #008000">// optional</span>
<span style="color: #000000"> </span><span style="color: #001080">privateKey</span><span style="color: #000000">,</span>
<span style="color: #000000">});</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// txid: &#039;0xf6e9dbf6a26c1b73a14738606cb2232375d1b440246e6bbc14a45b3a66618481&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#revoke-delegation" id="revoke-delegation" style="color: inherit; text-decoration: none;">
<h4>Revoke delegation</h4>
</a>
<pre><code class="language-typescript"><span style="color: #008000">// note that the parameter here is not JSON</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">revokeResponse</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">client</span><span style="color: #000000">.</span><span style="color: #795E26">revokeDelegateStx</span><span style="color: #000000">(</span><span style="color: #001080">privateKey</span><span style="color: #000000">);</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// txid: &#039;0xf6e9dbf6a26c1b73a14738606cb2232375d1b440246e6bbc14a45b3a66618481&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#delegator" id="delegator" style="color: inherit; text-decoration: none;">
<h3>Delegator</h3>
</a>
<p>If you are the delegator, you can stack (&quot;lock up&quot;) tokens for your users and commit to stacking participation for upcoming reward cycles.</p>
<a href="#stack-delegated-stx" id="stack-delegated-stx" style="color: inherit; text-decoration: none;">
<h4>Stack delegated STX</h4>
</a>
<pre><code class="language-typescript"><span style="color: #008000">// delegators would initiate a different client</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegatorAddress</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;ST22X605P0QX2BJC3NXEENXDPFCNJPHE02DTX5V74&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// delegator private key for transaction signing</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegatorPrivateKey</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;d48f215481c16cbe6426f8e557df9b78895661971d71735126545abddcd5377001&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// the BTC address for reward payouts</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegatorBtcAddress</span><span style="color: #000000"> = </span><span style="color: #A31515">&#039;msiYwJCvXEzjgq6hDwD9ueBka6MTfN962Z&#039;</span><span style="color: #000000">;</span>
<span style="color: #008000">// if you call this method multiple times in the same block, you need to increase the nonce manually</span>
<span style="color: #0000FF">let</span><span style="color: #000000"> </span><span style="color: #001080">nonce</span><span style="color: #000000"> = </span><span style="color: #795E26">getNonce</span><span style="color: #000000">(</span><span style="color: #001080">delegatorAddress</span><span style="color: #000000">, </span><span style="color: #001080">network</span><span style="color: #000000">);</span>
<span style="color: #001080">nonce</span><span style="color: #000000"> = </span><span style="color: #001080">nonce</span><span style="color: #000000">.</span><span style="color: #795E26">add</span><span style="color: #000000">(</span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">BN</span><span style="color: #000000">(</span><span style="color: #098658">1</span><span style="color: #000000">));</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegatorClient</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">StackingClient</span><span style="color: #000000">(</span><span style="color: #001080">delegatorAddress</span><span style="color: #000000">, </span><span style="color: #001080">network</span><span style="color: #000000">);</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegetateStackResponses</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">delegatorClient</span><span style="color: #000000">.</span><span style="color: #795E26">delegateStackStx</span><span style="color: #000000">({</span>
<span style="color: #000000"> </span><span style="color: #001080">stacker:</span><span style="color: #000000"> </span><span style="color: #001080">address</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">amountMicroStx</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">poxAddress:</span><span style="color: #000000"> </span><span style="color: #001080">delegatorBtcAddress</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">burnBlockHeight</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">cycles</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">privateKey:</span><span style="color: #000000"> </span><span style="color: #001080">delegatorPrivateKey</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">nonce</span><span style="color: #000000">, </span><span style="color: #008000">// optional</span>
<span style="color: #000000">});</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// txid: &#039;0xf6e9dbf6a26c1b73a14738606cb2232375d1b440246e6bbc14a45b3a66618481&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
<a href="#commit-to-stacking" id="commit-to-stacking" style="color: inherit; text-decoration: none;">
<h4>Commit to stacking</h4>
</a>
<pre><code class="language-typescript"><span style="color: #008000">// reward cycle id to commit to</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">rewardCycle</span><span style="color: #000000"> = </span><span style="color: #098658">12</span><span style="color: #000000">;</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">delegetateCommitResponse</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">delegatorClient</span><span style="color: #000000">.</span><span style="color: #795E26">stackAggregationCommit</span><span style="color: #000000">({</span>
<span style="color: #000000"> </span><span style="color: #001080">poxAddress:</span><span style="color: #000000"> </span><span style="color: #001080">delegatorBtcAddress</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">rewardCycle</span><span style="color: #000000">,</span>
<span style="color: #000000"> </span><span style="color: #001080">privateKey:</span><span style="color: #000000"> </span><span style="color: #001080">privateKeyDelegate</span><span style="color: #000000">,</span>
<span style="color: #000000">});</span>
<span style="color: #008000">// {</span>
<span style="color: #008000">// txid: &#039;0xf6e9dbf6a26c1b73a14738606cb2232375d1b440246e6bbc14a45b3a66618481&#039;,</span>
<span style="color: #008000">// }</span>
</code></pre>
</div>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Classes</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-class tsd-parent-kind-module"><a href="../classes/stacking.invalidaddresserror.html" class="tsd-kind-icon">Invalid<wbr>Address<wbr>Error</a></li>
<li class="tsd-kind-class tsd-parent-kind-module"><a href="../classes/stacking.stackingclient.html" class="tsd-kind-icon">Stacking<wbr>Client</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Interfaces</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.balanceinfo.html" class="tsd-kind-icon">Balance<wbr>Info</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.blocktimeinfo.html" class="tsd-kind-icon">Block<wbr>Time<wbr>Info</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.canlockstxoptions.html" class="tsd-kind-icon">Can<wbr>Lock<wbr>Stx<wbr>Options</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.coreinfo.html" class="tsd-kind-icon">Core<wbr>Info</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.delegatestackstxoptions.html" class="tsd-kind-icon">Delegate<wbr>Stack<wbr>Stx<wbr>Options</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.delegatestxoptions.html" class="tsd-kind-icon">Delegate<wbr>Stx<wbr>Options</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.lockstxoptions.html" class="tsd-kind-icon">Lock<wbr>Stx<wbr>Options</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.poxinfo.html" class="tsd-kind-icon">Pox<wbr>Info</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.stackaggregationcommitoptions.html" class="tsd-kind-icon">Stack<wbr>Aggregation<wbr>Commit<wbr>Options</a></li>
<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/stacking.stackingeligibility.html" class="tsd-kind-icon">Stacking<wbr>Eligibility</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Type aliases</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="stacking.html#poxaddressargs" class="tsd-kind-icon">Pox<wbr>Address<wbr>Args</a></li>
<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="stacking.html#stackerinfo" class="tsd-kind-icon">Stacker<wbr>Info</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Variables</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="stacking.html#bitcoinnetworkversion" class="tsd-kind-icon">Bitcoin<wbr>Network<wbr>Version</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Functions</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#btcaddressversiontohashmode" class="tsd-kind-icon">btc<wbr>Address<wbr>Version<wbr>ToHash<wbr>Mode</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#decodebtcaddress" class="tsd-kind-icon">decode<wbr>Btc<wbr>Address</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#extractpoxaddressfromclarityvalue" class="tsd-kind-icon">extract<wbr>Pox<wbr>Address<wbr>From<wbr>Clarity<wbr>Value</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#getaddresshashmode" class="tsd-kind-icon">get<wbr>Address<wbr>Hash<wbr>Mode</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#getbtcaddress" class="tsd-kind-icon">getBTCAddress</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#geterrorstring" class="tsd-kind-icon">get<wbr>Error<wbr>String</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#hashmodetobtcaddressversion" class="tsd-kind-icon">hash<wbr>Mode<wbr>ToBtc<wbr>Address<wbr>Version</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="stacking.html#poxaddresstobtcaddress" class="tsd-kind-icon">pox<wbr>Address<wbr>ToBtc<wbr>Address</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Type aliases</h2>
<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
<a name="poxaddressargs" class="tsd-anchor"></a>
<h3>Pox<wbr>Address<wbr>Args</h3>
<div class="tsd-signature tsd-kind-icon">Pox<wbr>Address<wbr>Args<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">, </span>hashBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">, </span>network<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;mainnet&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;testnet&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span>poxAddrClarityValue<span class="tsd-signature-symbol">: </span><a href="transactions.html#clarityvalue" class="tsd-signature-type" data-tsd-kind="Type alias">ClarityValue</a><span class="tsd-signature-symbol">, </span>network<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;mainnet&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;testnet&quot;</span><span class="tsd-signature-symbol">]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L117">packages/stacking/src/utils.ts:117</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
<a name="stackerinfo" class="tsd-anchor"></a>
<h3>Stacker<wbr>Info</h3>
<div class="tsd-signature tsd-kind-icon">Stacker<wbr>Info<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>stacked<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{ </span>details<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>amount_microstx<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>first_reward_cycle<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>lock_period<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>pox_address<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>hashbytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>unlock_height<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>stacked<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/index.ts#L44">packages/stacking/src/index.ts:44</a></li>
</ul>
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Variables</h2>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<a name="bitcoinnetworkversion" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagConst">Const</span> Bitcoin<wbr>Network<wbr>Version</h3>
<div class="tsd-signature tsd-kind-icon">Bitcoin<wbr>Network<wbr>Version<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>mainnet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">0</span><span class="tsd-signature-symbol">; </span>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">5</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>testnet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">111</span><span class="tsd-signature-symbol">; </span>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">196</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> = ...</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L28">packages/stacking/src/utils.ts:28</a></li>
</ul>
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>mainnet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">0</span><span class="tsd-signature-symbol">; </span>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">5</span><span class="tsd-signature-symbol"> }</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">0</span></h5>
</li>
<li class="tsd-parameter">
<h5>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">5</span></h5>
</li>
</ul>
</li>
<li class="tsd-parameter">
<h5>testnet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">111</span><span class="tsd-signature-symbol">; </span>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">196</span><span class="tsd-signature-symbol"> }</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>P2PKH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">111</span></h5>
</li>
<li class="tsd-parameter">
<h5>P2SH<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">196</span></h5>
</li>
</ul>
</li>
</ul>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Functions</h2>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="btcaddressversiontohashmode" class="tsd-anchor"></a>
<h3>btc<wbr>Address<wbr>Version<wbr>ToHash<wbr>Mode</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">btc<wbr>Address<wbr>Version<wbr>ToHash<wbr>Mode<span class="tsd-signature-symbol">(</span>btcAddressVersion<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L39">packages/stacking/src/utils.ts:39</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>btcAddressVersion: <span class="tsd-signature-type">number</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="decodebtcaddress" class="tsd-anchor"></a>
<h3>decode<wbr>Btc<wbr>Address</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">decode<wbr>Btc<wbr>Address<span class="tsd-signature-symbol">(</span>btcAddress<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>hashMode<span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a><span class="tsd-signature-symbol"> }</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L80">packages/stacking/src/utils.ts:80</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>btcAddress: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>hashMode<span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a><span class="tsd-signature-symbol"> }</span></h4>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span></h5>
</li>
<li class="tsd-parameter">
<h5>hash<wbr>Mode<span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></h5>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="extractpoxaddressfromclarityvalue" class="tsd-anchor"></a>
<h3>extract<wbr>Pox<wbr>Address<wbr>From<wbr>Clarity<wbr>Value</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">extract<wbr>Pox<wbr>Address<wbr>From<wbr>Clarity<wbr>Value<span class="tsd-signature-symbol">(</span>poxAddrClarityValue<span class="tsd-signature-symbol">: </span><a href="transactions.html#clarityvalue" class="tsd-signature-type" data-tsd-kind="Type alias">ClarityValue</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>hashBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> }</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L94">packages/stacking/src/utils.ts:94</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>poxAddrClarityValue: <a href="transactions.html#clarityvalue" class="tsd-signature-type" data-tsd-kind="Type alias">ClarityValue</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>hashBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> }</span></h4>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>hash<wbr>Bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span></h5>
</li>
<li class="tsd-parameter">
<h5>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span></h5>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="getaddresshashmode" class="tsd-anchor"></a>
<h3>get<wbr>Address<wbr>Hash<wbr>Mode</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">get<wbr>Address<wbr>Hash<wbr>Mode<span class="tsd-signature-symbol">(</span>btcAddress<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L71">packages/stacking/src/utils.ts:71</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>btcAddress: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="getbtcaddress" class="tsd-anchor"></a>
<h3>getBTCAddress</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">getBTCAddress<span class="tsd-signature-symbol">(</span>version<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span>, checksum<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L142">packages/stacking/src/utils.ts:142</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>version: <span class="tsd-signature-type">Buffer</span></h5>
</li>
<li>
<h5>checksum: <span class="tsd-signature-type">Buffer</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="geterrorstring" class="tsd-anchor"></a>
<h3>get<wbr>Error<wbr>String</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">get<wbr>Error<wbr>String<span class="tsd-signature-symbol">(</span>error<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">StackingErrors</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L147">packages/stacking/src/utils.ts:147</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>error: <span class="tsd-signature-type">StackingErrors</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="hashmodetobtcaddressversion" class="tsd-anchor"></a>
<h3>hash<wbr>Mode<wbr>ToBtc<wbr>Address<wbr>Version</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">hash<wbr>Mode<wbr>ToBtc<wbr>Address<wbr>Version<span class="tsd-signature-symbol">(</span>hashMode<span class="tsd-signature-symbol">: </span><a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a>, network<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;mainnet&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;testnet&quot;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L54">packages/stacking/src/utils.ts:54</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>hashMode: <a href="../enums/transactions.addresshashmode.html" class="tsd-signature-type" data-tsd-kind="Enumeration">AddressHashMode</a></h5>
</li>
<li>
<h5>network: <span class="tsd-signature-type">&quot;mainnet&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;testnet&quot;</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<a name="poxaddresstobtcaddress" class="tsd-anchor"></a>
<h3>pox<wbr>Address<wbr>ToBtc<wbr>Address</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<li class="tsd-signature tsd-kind-icon">pox<wbr>Address<wbr>ToBtc<wbr>Address<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><a href="stacking.html#poxaddressargs" class="tsd-signature-type" data-tsd-kind="Type alias">PoxAddressArgs</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/blockstack/stacks.js/blob/master/packages/stacking/src/utils.ts#L121">packages/stacking/src/utils.ts:121</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <a href="stacking.html#poxaddressargs" class="tsd-signature-type" data-tsd-kind="Type alias">PoxAddressArgs</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../modules.html">Modules</a>
</li>
<li class=" tsd-kind-module">
<a href="auth.html">auth</a>
</li>
<li class=" tsd-kind-module">
<a href="bns.html">bns</a>
</li>
<li class=" tsd-kind-module">
<a href="cli.html">cli</a>
</li>
<li class=" tsd-kind-module">
<a href="common.html">common</a>
</li>
<li class=" tsd-kind-module">
<a href="encryption.html">encryption</a>
</li>
<li class=" tsd-kind-module">
<a href="keychain.html">keychain</a>
</li>
<li class=" tsd-kind-module">
<a href="network.html">network</a>
</li>
<li class=" tsd-kind-module">
<a href="profile.html">profile</a>
</li>
<li class="current tsd-kind-module">
<a href="stacking.html">stacking</a>
</li>
<li class=" tsd-kind-module">
<a href="storage.html">storage</a>
</li>
<li class=" tsd-kind-module">
<a href="transactions.html">transactions</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-module">
<a href="auth.html" class="tsd-kind-icon">auth</a>
</li>
<li class=" tsd-kind-module">
<a href="bns.html" class="tsd-kind-icon">bns</a>
</li>
<li class=" tsd-kind-module">
<a href="cli.html" class="tsd-kind-icon">cli</a>
</li>
<li class=" tsd-kind-module">
<a href="common.html" class="tsd-kind-icon">common</a>
</li>
<li class=" tsd-kind-module">
<a href="encryption.html" class="tsd-kind-icon">encryption</a>
</li>
<li class=" tsd-kind-module">
<a href="keychain.html" class="tsd-kind-icon">keychain</a>
</li>
<li class=" tsd-kind-module">
<a href="network.html" class="tsd-kind-icon">network</a>
</li>
<li class=" tsd-kind-module">
<a href="profile.html" class="tsd-kind-icon">profile</a>
</li>
</ul>
<ul class="current">
<li class="current tsd-kind-module">
<a href="stacking.html" class="tsd-kind-icon">stacking</a>
<ul>
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="../classes/stacking.invalidaddresserror.html" class="tsd-kind-icon">Invalid<wbr>Address<wbr>Error</a>
</li>
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="../classes/stacking.stackingclient.html" class="tsd-kind-icon">Stacking<wbr>Client</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.balanceinfo.html" class="tsd-kind-icon">Balance<wbr>Info</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.blocktimeinfo.html" class="tsd-kind-icon">Block<wbr>Time<wbr>Info</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.canlockstxoptions.html" class="tsd-kind-icon">Can<wbr>Lock<wbr>Stx<wbr>Options</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.coreinfo.html" class="tsd-kind-icon">Core<wbr>Info</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.delegatestackstxoptions.html" class="tsd-kind-icon">Delegate<wbr>Stack<wbr>Stx<wbr>Options</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.delegatestxoptions.html" class="tsd-kind-icon">Delegate<wbr>Stx<wbr>Options</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.lockstxoptions.html" class="tsd-kind-icon">Lock<wbr>Stx<wbr>Options</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.poxinfo.html" class="tsd-kind-icon">Pox<wbr>Info</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.stackaggregationcommitoptions.html" class="tsd-kind-icon">Stack<wbr>Aggregation<wbr>Commit<wbr>Options</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/stacking.stackingeligibility.html" class="tsd-kind-icon">Stacking<wbr>Eligibility</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module">
<a href="stacking.html#poxaddressargs" class="tsd-kind-icon">Pox<wbr>Address<wbr>Args</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module">
<a href="stacking.html#stackerinfo" class="tsd-kind-icon">Stacker<wbr>Info</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module">
<a href="stacking.html#bitcoinnetworkversion" class="tsd-kind-icon">Bitcoin<wbr>Network<wbr>Version</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#btcaddressversiontohashmode" class="tsd-kind-icon">btc<wbr>Address<wbr>Version<wbr>ToHash<wbr>Mode</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#decodebtcaddress" class="tsd-kind-icon">decode<wbr>Btc<wbr>Address</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#extractpoxaddressfromclarityvalue" class="tsd-kind-icon">extract<wbr>Pox<wbr>Address<wbr>From<wbr>Clarity<wbr>Value</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#getaddresshashmode" class="tsd-kind-icon">get<wbr>Address<wbr>Hash<wbr>Mode</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#getbtcaddress" class="tsd-kind-icon">getBTCAddress</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#geterrorstring" class="tsd-kind-icon">get<wbr>Error<wbr>String</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#hashmodetobtcaddressversion" class="tsd-kind-icon">hash<wbr>Mode<wbr>ToBtc<wbr>Address<wbr>Version</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="stacking.html#poxaddresstobtcaddress" class="tsd-kind-icon">pox<wbr>Address<wbr>ToBtc<wbr>Address</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
<li class=" tsd-kind-module">
<a href="storage.html" class="tsd-kind-icon">storage</a>
</li>
<li class=" tsd-kind-module">
<a href="transactions.html" class="tsd-kind-icon">transactions</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
<li class="tsd-kind-type-alias tsd-has-type-parameter"><span class="tsd-kind-icon">Type alias with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>