Mint the Future with Taproot Assets v0.2 🌿🔮

Ryan Gentry
May 16, 2023

Today we're excited to announce the latest release of the Taproot Assets Protocol daemon (formerly Taro). Taproot Assets v0.2 provides the core set of features for developers looking to issue, send, receive, and discover assets on the bitcoin blockchain, currently on testnet with mainnet support coming soon. We first released the Taproot Assets draft specification a year ago, and continue to be grateful for the reception from the amazing bitcoin developer community. Bitcoin developers, we appreciate your continued support as we bitcoinize the dollar and bring multi-asset support to the Lightning Network!

This core set of developer features consists of these flagship items

  • 📝 Sending and receiving with novel Virtual Partially Signed Bitcoin Transactions (vPSBTs)
  • 🌌 Discovering and publishing assets with the initial Universe APIs
  • 🍀 Maximum chain-space efficiency with multi-asset mints, sends, and receives
  • 🔐 Stability and scalability improvements

Now that the release is available for download, we will propose the finalized Taproot Assets spec to the community as a formal series of BIPs, merge Taproot channels, publish a BLIP describing added interaction for Lightning functionality, and finally launch the first testnet Taproot Assets payment channels on Lightning. We're incredibly excited to release these new Lightning capabilities to the developer community as a new tool to bring bitcoin to the billions!

Get started with the new Taproot Assets daemon: read the Install section, download the daemon release, review the API documentation, and read the getting started guide. The Taproot Assets daemon is also available in the most recent Polar release for rapid prototyping, and in litd v0.10. Note that this release is built for testnet usage for developers to build infrastructure in preparation for mainnet support, which will be coming soon. For a more extensive explanation on how Taproot Assets works, take a deep dive into the BIPs and our documentation.

What Distinguishes Taproot Assets from Other Bitcoin Protocols?

taproot assets v0 2 mempool
A visualization of the price to confirm a bitcoin transaction spiking due to asset issuance popularity, from Mempool.Space

The last several months have seen a surge of interest in asset issuance on the bitcoin blockchain using protocols that write asset metadata directly into block space in a particularly inefficient manner. While the excitement around building on bitcoin is encouraging, the fee market’s response has indicated that these protocols are not designed for scale. And in fact, the creator of one of these protocols has even suggested that Taproot Assets “is unequivocally a better solution,” because it is designed to efficiently handle arbitrary asset issuance and transference over the bitcoin blockchain for large amounts of users.

The Taproot Assets Protocol was designed to operate maximally off-chain, specifically to avoid the kind of blockchain congestion we have seen as of late. In this release, an unbounded number of assets can be minted and/or moved in a single on-chain transaction. This off-chain first design enables asset minters and transactors to enjoy the permissionless nature of the bitcoin blockchain and scale their businesses without running into bitcoin’s scaling constraints. Users will soon be able to integrate their assets into the Lightning Network for instant, high volume, low-fee transactions. This leverages existing network effects and the install base of wallets, exchanges, and merchants, instead of needing to bootstrap a new ecosystem from scratch.

Importantly, the Taproot Assets protocol is designed with bitcoin developers and users in mind throughout the entire stack from developer tooling to end user constructs. For example, Taproot Assets inherits the existing Taproot VM, uses an address format that is both familiar to users of bitcoin and unique to each asset, and leverages well-understood Partially Signed Bitcoin Transaction (PSBT) frameworks. Taproot Assets is also light-client friendly, which means assets issued with the protocol will be more accessible for people around the world. This functionality differs from existing protocols in the asset issuance space, which require developers to run a full node and maintain a multi-gigabyte index to track all the additional assets. On the path to bringing bitcoin to billions, these features will help developers build great experiences with Taproot Assets on mobile and other lower resource-intensive devices.

The Taproot Assets design makes permissionless asset issuance and transfer easy, minimizes on-chain fees required, and will soon let developers access the rapidly growing Lightning Network. As developers begin to make use of Taproot Assets, it should result in far less chain congestion, leaving space to onboard the masses to bitcoin.

What New Developer Tools Come With Taproot Assets v0.2?

Version 0.2 of the Taproot Asset daemon provides the core set of features for on-chain asset issuance, transfer, and discoverability for testnet (plus regtest and simnet), with mainnet coming soon. This release provides developers with all the tools they need to start building amazing application experiences for users, with Lightning integration coming soon. Let’s dive in!

Taproot Assets PSBT Usage 📝

taproot assets v0 2 psbt
A visualization of a PSBT ready for broadcast from River Financial.

First, Partially Signed Bitcoin Transactions (PSBTs) are the community standard defining how developers can allow their users to easily build, sign, and verify bitcoin transactions. PSBTs are broadly supported across bitcoin wallets, allowing for seamless interoperability, and we’re very excited to announce that Taproot Assets is joining this ecosystem of interoperable bitcoin software by supporting PSBTs by default.

Importantly, this support also extends to purely off-chain Taproot Assets transactions, with a novel structure we are calling “virtual Partially Signed Bitcoin Transactions” (vPSBTs). vPSBTs operate the same way bitcoin PSBTs work but handle all of Taproot Assets protocol intricacies so developers can keep building on their best layer. vPSBTs are used within Taproot Assets to create an off-chain transfer or state transition. Transactors will pass their vPSBTs back and forth to generate the necessary witnesses and inclusion/exclusion proofs. Once final, these vPSBTs are "anchored" to the bitcoin chain by compiling the asset trees into taproot outputs, then signing a PSBT transaction that commits to those outputs. It’s important to note that vPSBTs simply add extra Taproot Assets asset tree information to the bitcoin PSBTs bitcoin developers are used to. With this latest release, developers are now able to integrate vPSBTs into their existing applications to abstract away all the low-level complexity around the Taproot Assets structure. This allows them to focus on building amazing experiences for their users instead of on Merkle-Sum Sparse Merkle Trees. We are excited to see vPSBTs in on-chain marketplaces, hardware wallets, and Lightning channels soon!

Universes for Maximum Scalability 🌌

Next, Universes have arrived, with APIs!

taproot assets v0 2 universe1
Sending and Receiving Off-Chain Taproot Asset Proofs

As a refresher, Taproot Assets Universes allow users to download and verify Taproot Assets issuance and transaction data. They are not required for Taproot Assets to function because transactions can be sent with purely peer-to-peer delivery, but they dramatically improve user experience, particularly for mobile or unstable-internet users. A new user, Alice, can download a Taproot Assets wallet, sync with an issuer’s Universe server, and immediately be able to verify the total supply of a given asset, in which block each issuance transaction occurred, and validate that the assets Bob is trying to transfer to her were issued by the issuer she’s expecting. Developers can now leverage these Universe APIs when building products like Taproot Assets block explorers to help users easily discover Taproot Assets. We are very excited to see what the ecosystem builds!

Developers can think of Universe servers like bitcoin full nodes for a specific asset, in that they contain the historical data necessary to validate that assets being received were actually issued by the expected issuer. Universes can also be understood as comparable to Git, an existing well-understood distributed version control system where information, in this case proofs, is efficiently distributed amongst interested servers in a decentralized, simultaneous manner.

As a concrete example, if Alice is paying Bob in an asset called L-USD for a sticker, Bob will want proof that this L-USD is genuine and authentic. Universe servers provide the mechanism to do that, as his wallet can sync with the L-USD issuer’s Universe server, download all the initial issuance transactions, and validate the provenance that Alice’s L-USD assets were initially issued by the L-USD issuer. Importantly, it is permissionless to run a Universe server for a given asset, and Taproot Assets v0.2 supports federations of Universe servers staying in sync for a given asset, so even if the issuer’s server is offline Bob should have many different data sources to verify Alice’s assets are legitimate. Finally, the Universe server state is assembled into yet another tree, which makes syncing state between Universes straightforward and easy.

Multi-Asset Mints for Chain Efficiency 💱

As previously mentioned, a core design principle of Taproot Assets is to be maximally chain efficient. This release executes on that principle by allowing users to perform all protocol actions (mint, send, and receive) involving multiple Taproot assets in a single on-chain transaction. For example, a user could mint three new tranches of three different assets at once, paying only a single miner fee, and then sell all the newly minted assets via a single vPSBT to a buyer paying with a different Taproot Asset, instead of making a new on-chain transaction for each asset transfer. We want to empower bitcoin developers to be excellent stewards of chain-space without needing to do anything extra, and these new features accomplish exactly that.

Additional Stability and Scalability Improvements 🤝

Finally, this release includes a host of scalability and stability improvements that provide a secure and stable foundation for developers seeking scale. A few examples include better integer-overflow prevention and batched APIs to support large amounts of concurrent users. Additionally, asset metadata was optimized for future transferability, allowing developers to include up to 800 KB of metadata per asset upon minting, but only requiring a hash of that metadata to be included in each subsequent on-chain transfer. The developer community is already requesting comments on how to structure this Taproot Asset metadata, exciting to see!

Path to Stablecoins on LN 💸

With this release, we are furthering the ultimate goal of Taproot Assets: enabling Lightning to be a multi-asset network, and specifically enabling stablecoin support for users in emerging markets. Once we have finished the payment channel portions of the protocol, these users will be able to open Taproot Asset channels with a Unit of Account of their choice that plug in at the edges and interoperate with the existing Lightning Network. Assets won't need to rebuild the components of a liquidity network by bootstrapping a new ecosystem of nodes and liquidity. Instead, the Taproot Assets protocol leverages the existing network effects of bitcoin and the Lightning Network along with the infrastructure that's been built up over the last five years securing nearly 5,500 BTC allocated to the network today as a global routing currency.

For routing nodes in the core of the network, the Taproot Assets "edge node" model should mean more volume with no upgrades required as multi-asset transactions route through BTC. For users at the edges of the network, it should mean all the technological benefits of the Lightning Network -- instant settlement, efficient fees, global reach -- with access to their preferred Unit of Account. We not only envision developers integrating Taproot Assets into existing experiences for merchants, creators, and all of today’s users of the Lightning Network, growing their total addressable market, but also building brand new experiences that make it easy for brand new Lightning users to send assets around for payment.

In order to bring Taproot Assets to the Lightning Network, unannounced Taproot channels will complete the spec review process. This ongoing work is the main feature of the next lnd release and, once launched, will lead to Taproot Assets incorporating payment channel functionality and a multi-asset Lightning Network!

Build with Taproot Assets Today! 🥕

To get started exploring Taproot Assets, download the daemon, check out the API documentation, and read the getting started guide. For a more extensive technical explanation on how Taproot Assets works, take a deep dive into the BIPs and our documentation.

We're incredibly excited to release this core set of on-chain functionality to the open source developer community, and hope this progress excites people for the future of innovation from Lightning Labs and the bitcoin developer community. We will be paying close attention to testnet activity, and are looking forward to highlighting the momentum and progress from the developer community. If you're interested in contributing to Taproot Assets, directly, we are actively hiring protocol engineers and infrastructure devs. If you haven't already, join our Slack community, contact us on Twitter, attend the lnd PR review club, contribute a PR, or subscribe to our newsletter!

About the authorRyan Gentry

Ryan holds an MSc in Electrical and Computer Engineering from Georgia Tech and a BS in Aerospace Engineering from the University of Texas. Prior to joining Lightning Labs, he spent two years on the deal team as Lead Analyst for Multicoin Capital. Ryan graduated from UT in 2014 and went to work for Intel as a Controls Engineer. He caught the Bitcoin bug in 2017 while building Internet of Things prototypes when he realized all of these Things were going to need some way to pay each other and USD wasn't going to cut it.

Ryan holds an MSc in Electrical and Computer Engineering from Georgia Tech and a BS in Aerospace Engineering from the University of Texas. Prior to joining Lightning Labs, he spent two years on the deal team as Lead Analyst for Multicoin Capital. Ryan graduated from UT in 2014 and went to work for Intel as a Controls Engineer. He caught the Bitcoin bug in 2017 while building Internet of Things prototypes when he realized all of these Things were going to need some way to pay each other and USD wasn't going to cut it.