---
description: A simple explanation of Taproot Assets Protocol (TAP) for non-developers
---

# What is Taproot Assets Protocol?

## What is Taproot Assets ?

Taproot Assets is not a blockchain and is NOT in any way related to ERC-20 or other tokens. TAP is also not related to TARI, $TARO token or Taroverse.

Taproot Assets is a protocol - a set of rules - that defines how to write onto the Bitcoin blockchain to represent assets other than Bitcoin.

Taproot Assets Protocol allows for representation of fungible assets (alt-coins or currencies) as well as Non-Fungible Tokens (NFTs or collectibles) on Bitcoin blockchain.&#x20;

TAP Asset / Taproot asset information is split into two parts - one part is stored on Blockchain and the other part is stored by the owners of the asset. The part that is held by the owner is passed from owner to owner via messages on the Lightning network.

This makes Taproot Asset fundamentally different from Ordinals and other inscrition-based protcols. Taproot assets is similar to RGB protocol in its operation.

## What are Taproot Assets ?

There are two types of Taproot Assets:

* Curriencies / Fungible assets / Alt-coins&#x20;
  * [AdamCoin ($AC)](https://mainnet.tiramisuwallet.com/walletapp/currencies_public/2)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FHnA6TNRn1DZc4O4gLYzc%2Fimage.png?alt=media\&token=737870cb-7fa4-47d7-b2dd-43b24df07b1f)
  * [PePe ($PePe)](https://mainnet.tiramisuwallet.com/walletapp/currencies_public/15)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FKCy0iLAGnwHklLOcDhhx%2Fimage.png?alt=media\&token=bd6345ea-8700-4f75-9a80-5661b6481429)
  * [MAXImalists ($MAXI)](https://mainnet.tiramisuwallet.com/walletapp/currencies_public/659)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FpdA3S6udr4cXSvCZD9Ov%2Fimage.png?alt=media\&token=8b9e41c7-3bb2-4698-a5c2-56b6a197c27f)\

* Collectibles / Non-fungible tokens / NFTs
  * [Taproot Adam](https://mainnet.tiramisuwallet.com/walletapp/public_currencies?asset_type=nft\&collection=TaprootAdam) and Taproot [Eve collections](https://mainnet.tiramisuwallet.com/walletapp/public_currencies?asset_type=nft\&collection=TaprootEve)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FhUKDCltbtETSekJs4pgx%2Fimage.png?alt=media\&token=c43114db-09db-4ae6-9e8b-d3b6cc440e4f)
  * [Taproot cans](https://mainnet.tiramisuwallet.com/walletapp/public_currencies?asset_type=nft\&collection=TaprootCans)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FaY45rAR8AoqQgEFKSwX8%2Fimage.png?alt=media\&token=c6cbfe7d-8061-4fc2-8ca9-5eadd03c8963)
  * [Taproot monkeys](https://mainnet.tiramisuwallet.com/walletapp/public_currencies?asset_type=nft\&collection=TaprootApes)\
    ![](https://2030877470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYPCqjMJwBzaMKLGWDjCH%2Fuploads%2FCQx1IKm4Hr9lvnbxDeq3%2Fimage.png?alt=media\&token=e33368dc-c2dd-4d3d-a7a8-be0d3619da87)

All Taproot Assets have the following user-defined attributes:

* Name
* Metadata
* Supply
* isNFT

As of now Taproot Assets does not add or allow for addition of any utility to the currencies and tokens represented on the protocol.&#x20;

All utility of Taproot Assets needs to be provided by the minter / maintainer of the asset. In other words if Bob mints a Taproot Assets stablecoin called BobUSD. Bob is responsile for making sure that BobUSD is always equal to 1 USD . If Alive mints a a Taproot asset representing tokenized stock of Apple Inc. called AliceAAPL, Alice is responsible for ensuring  AliceAAPL has the same value as the real stock.

Fungible assets can be minted in emmisions where the minter decides to mint more currency after the initial minting.&#x20;

## Taproot Assets and Lightning&#x20;

Taproot Asset currencies can in theory be transferred on the lightning network. This functionality is being built right now and is not supported yet. TAP NFTs cannot and will not be transacted on the lightning network.

## Tiramisu wallet

Self-custody of Taproot Assets requires that one operates a taps node. Tape connects to lnd to access blockchain and the lightning network.

Tiramisu wallet allows users to hold and transfer assets using a web UI without the need to install tarod or set up a lightning node.

## Running your own node

This video shows how to start your own node and self-custody your assets.

{% embed url="https://www.youtube.com/watch?v=obqQXlxa1Ws" %}

Here are the commands required:

`sudo yum install wget -y sudo yum install git -y sudo yum install make -y`

`wget https://go.dev/dl/go1.21.3.linux-amd6... tar -C ~/ -xzf go1.21.3.linux-amd64.tar.gz`

`I am using fake angled brackets here because of Youtube does not allow the symbol. When running these commands please use the greater than sign here. echo 'export PATH="/home/ec2-user/go/bin:${PATH}"' ⟩⟩ ~/.bashrc echo 'export GOPATH=/home/ec2-user/go' ⟩⟩ ~/.bashrc export PATH="/home/ec2-user/go/bin:${PATH}" export GOPATH=/home/ec2-user/go`

`git clone https://github.com/lightningnetwork/lnd git clone --recurse-submodules https://github.com/lightninglabs/tapr...`

`cd lnd make install tags="signrpc walletrpc chainrpc invoicesrpc" cd ..`

`cd taproot-assets make install cd ..`

`screen -S lnd lnd --bitcoin.active --bitcoin.mainnet --debuglevel=debug --bitcoin.node=neutrino --neutrino.addpeer=faucet.lightning.community --neutrino.addpeer=btcd-testnet.lightning.computer --neutrino.addpeer=testnet3-btcd.zaphq.io --neutrino.addpeer=btcd0.lightning.computer:18333 --neutrino.addpeer=lnd.bitrefill.com:18333 --neutrino.addpeer=testnet1-btcd.zaphq.io --neutrino.addpeer=testnet2-btcd.zaphq.io --neutrino.addpeer=neutrino.addpeer=testnet4-btcd.zaphq.io --rpclisten=0.0.0.0:10009 --feeurl=https://nodes.lightning.computer/fees...`

Press Control + A + D to detach from screen

`lncli create`

`lncli getinfo`

`Wait for a little bit for synced_to_chain to change to true`

`screen -S tapd`

`tapd --network=mainnet --debuglevel=debug --lnd.host=localhost:10009 --lnd.macaroonpath=/home/ec2-user/.lnd/data/chain/bitcoin/testnet/admin.macaroon --lnd.tlspath=/home/ec2-user/.lnd/tls.cert --rpclisten=0.0.0.0:10029 --restlisten=0.0.0.0:8089 --allow-public-uni-proof-courier --allow-public-stats --universe.public-access --batch-minting-interval="1s"`

Press Control + A + D to detach from screen

`tapcli -n=mainnet addrs new --asset_id=3b7693c532a59186a56c25b39328bb1801b052ca960a7effd25724f3074eeda9 --amt=1`

This should generate a TAP invoice / address
