Builder's Guide

Get Started

The Taproot Assets Daemon tapd implements the Taproot Assets Protocol for issuing assets on the Bitcoin blockchain.


Taproot Assets is alpha software. It is configured to run on regtest, testnet3 and simnet only, where it’s okay if bitcoin or Taproot Assets are irrevocably lost.


Taproot Assets requires LND v0.16.2. If compiled from source, it needs to be built with tags=signrpc walletrpc chainrpc invoicesrpc. LND needs to be synced and running on the same bitcoin network as you are doing your testing. RPC connections need to be accepted and Macaroons need to be set. Learn how to set up LND using the default configuration here.


From source:

Compile Taproot Assets from source by cloning the taproot-assets repository. Go version 1.18 or higher is required (you may check what version of go is running with go version).
git clone cd taproot-assets make install


Optionally, create a Taproot Assets configuration file under ~/.taproot-assets/tap.conf on Linux or BSD, ~/Library/Application Support/Taproot-assets/tap.conf in Mac OS or $LOCALAPPDATA/Taproot-assets/tap.conf in Windows.
Within the tap.conf file you can permanently set your variables, such as directory, macaroon or other paths and how to connect to your LND.

Running tapd:

Run Taproot Assets with the command tapd. Specify how Taproot Assets can reach LND and what bitcoin network to run Taproot Assets with by passing it additional flags.
tapd --network=testnet --debuglevel=debug --lnd.macaroonpath=/.lnd/data/chain/bitcoin/testnet/admin.macaroon --lnd.tlspath=/.lnd/tls.cert --tapdir=~/.taprooot-assets --rpclisten= --restlisten=
You may run multiple tapd instances on the same machine, but you will also have to set up multiple LND instances. Refer to this guide for how to set up multiple LND instances with a single Bitcoin backend using rpcpolling. When running multiple tapd instances on one machine, don’t forget to set an alternate Taproot Assets directory and API endpoints and specify these when calling tapcli as well.
For example, to run a second instance of tapd:
tapd --tapdir=~/.taprooot-assets-2 --rpclisten= --restlisten=
To interact with this second instance using tapcli:
tapcli --rpcserver= --tapdir=~/.taproot-assets-2
You can make use of tapcli profiles to make calls to separate tapd instances on the same machine.