Stacks 2.0: Proof of Transfer rolled out on testnet

As announced in today’s blog post, we’ve reached the Krypton phase, with Proof of Transfer (PoX) live on the testnet! With this milestone, 90% of the design for Stacks 2.0 has now been implemented and released. The next milestone will focus on testing Stacks 1.0 → 2.0 upgrades; integration and testing with the Bitcoin testnet; and porting and compatibility for the Blockstack Naming System (BNS).

This release was many months in the making - not only does it include the PoX implementation, we also released new Clarity features, a developer preview of the Stacks Blockchain API, a completely revamped documentation system, and improved transaction support inside available libraries. Read on to dive into the details of each project.

We can’t wait to see what you will start building. Join our Discord and tell us what you think of this release! Please also participate in our bounty program by disclosing bugs you may find.

Proof of Transfer (PoX)

PoX is a consensus mechanism that leverages the security and stability of Bitcoin to create a new blockchain, without modifying the Bitcoin protocol. With the PoX mechanism, miners use Bitcoin to secure the Stacks 2.0 network.

Start mining Stacks (STX) tokens

PoX makes it also possible to reward Stacks token holders with bitcoins, a feature called Stacking. With Stacking, Stacks (STX) token holders lock up STX tokens for a certain time. With that, they help secure the network by effectively acting as validators on the network, incentivizing honest behavior on the part of miners. We are currently working on a Stacking guide - stay tuned! In the meantime, if you want to get your hands dirty with Stacking and don’t mind some rough edges, feel free to try out the stacking runbook.

Try the stacking runbook


The Stacks 2.0 Transactions JS library now fully supports generation, serialization, and broadcasting of all transaction types. The latest version also supports sponsored and multi-signature transactions!

Build Stacks 2.0 transactions

You can also use Connect to authenticate users and let them sign transactions, without having to handle private keys. The last version of Connect can be used within any JS-based app, thanks to StencilJS.

Add transactions signing


The Clarity smart language was extended with string types (string-ascii and string-utf8) to better support use-cases that require strings, not buffers. Next, new primitives for signature verification were provided (secp256k1-verify and secp256k1-recover). This feature enables, among other things, building Oracles on Clarity. Finally, a native square-root function (sqrti) was released to support accurate square-root computations for use-cases like a DEX.

Learn more about Clarity

Stacks 2.0 Blockchain API (Developer Preview)

The Stacks Blockchain API is a hosted NodeJS server that exposes a RESTful JSON API, making it easy to host, extend, and integrate with the Stacks 2.0 blockchain (see full announcement). It enables you to receive updates for user transactions, call smart contracts, fetch updates for Stacks accounts, and access and broadcast blockchain transactions.

Check out API references

The project is defined using the OpenAPI specification and comes with a generated JavaScript library with full type support.

Try the JS client library


The documentation system was rebuild (see full announcement) to improve UX, performance, and search functionality. The new docs set us up to have interactive components (thanks for NextJS) inside the docs.

Try the new docs

Apart from technical updates, the new docs come with overhauled content like new guides and tutorials.

→ Check out the stacks integration guide for wallet and exchange builders

Tell us what you think on Discord or by replying to this thread.


Huge shout out to the Blockstack PBC and Stacks Foundation team members and open source developers who made it happen! :raised_hands: