Skip to main content

Taproot Assets Protocol

Welcome to the API reference documentation for Taproot Assets Daemon.

The Taproot Assets Daemon tapd implements the Taproot Assets Protocol for issuing assets on the Bitcoin blockchain. Taproot Assets leverages Taproot transactions to commit to newly created assets and their transfers in an efficient and scalable manner. Multiple assets can be created and transferred in a single bitcoin UTXO, while witness data is transacted and kept off-chain.

Features:

  • Mint assets
  • Synchronize to universes
  • Send and receive assets
  • Export and import Taproot Asset proofs
  • Create and manage CLI profiles

Usage

Learn how to install, configure, and use Taproot Assets Daemon by viewing the documentation in the Builder's Guide.

Summary

This site features the documentation for tapcli (CLI), and the API documentation for Python and JavaScript clients in order to communicate with a local tapd instance through gRPC.

gRPC

The code samples assume that the there is a local tapd instance running and listening for gRPC connections on port 10029. TAPROOT-ASSETS_DIR will be used as a placeholder to denote the base directory of the tapd instance. By default, this is ~/.taproot-assets on Linux and ~/Library/Application Support/TaprootAssets on macOS.

At the time of writing this documentation, two things are needed in order to make a gRPC request to an tapd instance: a TLS/SSL connection and a macaroon used for RPC authentication. The code samples will show how these can be used in order to make a successful, secure, and authenticated gRPC request.

The original *.proto files from which the gRPC documentation was generated can be found here:

REST

View a listing of all REST URLs on the REST Endpoints page.

The code samples assume that the there is a local tapd instance running and listening for REST connections on port 8089. TAPROOT-ASSETS_DIR will be used as a placeholder to denote the base directory of the tapd instance. By default, this is ~/.taproot-assets on Linux and ~/Library/Application Support/TaprootAssets on macOS.

At the time of writing this documentation, two things are needed in order to make an HTTP request to an tapd instance: a TLS/SSL connection and a macaroon used for RPC authentication. The code samples will show how these can be used in order to make a successful, secure, and authenticated HTTP request.

The original *.swagger.json files from which the gRPC documentation was generated can be found here:

REST Encoding

NOTE: The byte field type must be set as the base64 encoded string representation of a raw byte array. Also, any time this must be used in a URL path (ie. /v1/abc/xyz/{payment_hash}) the base64 string must be encoded using a URL and Filename Safe Alphabet. This means you must replace + with -, / with _, and keep the trailing = as is. Url encoding (ie. %2F) will not work.

This documentation was generated automatically against commit fde673202d0d5dbb63c7e38058801753bb6355a7.