{"id":13511140,"url":"https://github.com/lightninglabs/taproot-assets","last_synced_at":"2026-03-16T09:10:37.804Z","repository":{"id":60386927,"uuid":"480427656","full_name":"lightninglabs/taproot-assets","owner":"lightninglabs","description":"A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)","archived":false,"fork":false,"pushed_at":"2025-04-09T15:29:52.000Z","size":49958,"stargazers_count":483,"open_issues_count":233,"forks_count":130,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-04-09T16:43:32.765Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lightninglabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-11T14:57:30.000Z","updated_at":"2025-04-08T13:21:19.000Z","dependencies_parsed_at":"2023-10-22T21:27:05.784Z","dependency_job_id":"a02c6840-d02f-4927-a942-4d7714759ea5","html_url":"https://github.com/lightninglabs/taproot-assets","commit_stats":{"total_commits":2256,"total_committers":31,"mean_commits":72.7741935483871,"dds":0.6622340425531915,"last_synced_commit":"33365a40fe45892c8dfbb5439a79172bb92a3f38"},"previous_names":["lightninglabs/taro"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightninglabs%2Ftaproot-assets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightninglabs%2Ftaproot-assets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightninglabs%2Ftaproot-assets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightninglabs%2Ftaproot-assets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lightninglabs","download_url":"https://codeload.github.com/lightninglabs/taproot-assets/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248429060,"owners_count":21101780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T03:00:35.480Z","updated_at":"2026-03-16T09:10:37.798Z","avatar_url":"https://github.com/lightninglabs.png","language":"Go","funding_links":[],"categories":["Lightning Labs Resources","Taproot Assets Protocol"],"sub_categories":["Architecture","Implementations of the Taproot Assets protocol."],"readme":"# Taproot Assets\n\nThe Taproot Assets Daemon `tapd` implements the\n[Taproot Assets Protocol](https://github.com/Roasbeef/bips/blob/bip-tap/bip-tap.mediawiki)\nfor issuing assets on the Bitcoin blockchain. Taproot Assets leverage\nTaproot transactions to commit to newly created assets and their\ntransfers in an efficient and scalable manner. Multiple assets can be\ncreated and transferred in a single bitcoin UTXO, while witness data is\ntransacted and stored off-chain.\n\n## Features\n\n- Mint and burn assets\n- Synchronize to universes\n- Send and receive assets\n- Export and import Taproot Asset proofs\n- Create and manage CLI profiles\n\n## How It Works\n\nWhen minting a new asset, Taproot Assets will generate the relevant\nwitness data, assign the asset to a key held by you and publish the\ncorresponding bitcoin UTXO -- the minting transaction.\n\nThe outpoint this minting transaction consumes becomes the\n`genesis_point` of the newly minted asset, acting as its unique\nidentifier. Assets can be spent to a new recipient, who provides the\nsender with the necessary information encoded in their Taproot Asset\naddress.\n\nTo transact assets, the witnesses in the prior transaction are\nrecommitted into one or multiple taproot outputs while the necessary\nwitness data is passed to the recipient. Similar to bitcoin\ntransactions, the remaining balance is spent back to the sender as a\nchange output.\n\n[Learn more about the Taproot Assets Protocol.](https://docs.lightning.engineering/the-lightning-network/taproot-assets)\n\n## Architecture\n\nTaproot Assets are implemented as the Taproot Assets Daemon `tapd`\nand the Taproot Assets Command Line Interface `tapcli`. Additionally,\n`tapd` exposes a gRPC interface to allow for a direct integration into\napplications.\n\nTaproot Assets leverage several `lnd` features including the Taproot\nwallet and signing capabilities. These facilities are accessed through\n`lnd`’s gRPC.\n\n### The Taproot Assets Stack\n\n`Bitcoin blockchain backend \u003c-\u003e lnd \u003c-\u003e tapd`\n\nCustody of Taproot Assets is segmented across `lnd` and `tapd` to\nmaximize security. `lnd` holds the private key, which has had a taproot\ntweak applied to it, controlling the Bitcoin UTXO holding the Taproot\nAsset. The taproot tweak on the other hand is held by `tapd`. This\nincreases the requirements for asset recovery as both the internal key\nas well as the taproot tweak are necessary to spend the output. This\nprevents `lnd` from accidentally burning Taproot assets.\n\n## Prerequisites\n\nTaproot Assets require [lnd](https://github.com/lightningnetwork/lnd/)\nversion `v0.20.0-beta` or later to be synced and running on the\nsame Bitcoin network as Taproot Assets (e.g. regtest, simnet,\ntestnet3). RPC connections need to be accepted and a\n[valid macaroon](https://docs.lightning.engineering/lightning-network-tools/lnd/macaroons)\nneeds to be present.\n\n```shell\n$ git clone https://github.com/lightningnetwork/lnd.git\n$ cd lnd\n$ make install tags=\"signrpc walletrpc chainrpc invoicesrpc\"\n```\n\n## Installation\n\n### From Source\n\nCompile Taproot Assets from source by cloning this repository.\n[Go version 1.24](https://go.dev/dl/) or higher is required.\n\n```shell\n$ git clone https://github.com/lightninglabs/taproot-assets.git\n$ cd taproot-assets\n$ make install\n```\n\n## Initialization\n\nRun Taproot Assets with the command `tapd`. Specify how Taproot Assets\ncan reach `lnd` and what network to run `tapd` with by passing it\nadditional flags. The Bitcoin backend and `lnd` need to be running and\nsynced before the Taproot Assets daemon can be started.\n\n```shell\n$ tapd --network=testnet --debuglevel=debug \\\n    --lnd.host=localhost:10009 \\\n    --lnd.macaroonpath=~/.lnd/data/chain/bitcoin/testnet/admin.macaroon \\\n    --lnd.tlspath=~/.lnd/tls.cert\n```\n\n## Usage\n\nSee a full list of options by executing:\n\n```shell\n$ tapd --help\n```\n\nUse `tapcli` to interact with `tapd`:\n\n```shell\n$ tapcli assets mint --type normal \\\n    --name fantasycoin --supply 100 --meta_bytes \"fantastic money\"\n$ tapcli assets mint finalize\n$ tapcli assets list\n```\n\nSynchronize yourself with a universe, for example the one running as\npart of the issuer's `tapd`.\n\n```shell\n$ tapcli universe sync --universe_host testnet.universe.lightning.finance\n```\n\nAdd multiple universes to your local federation to always stay up\nto date. You can also use the universe to query existing assets and\ntheir metadata. You may also configure your tapd instance to listen\nto incoming requests with `--rpclisten 0.0.0.0:10029` to run your own\nuniverse.\n\n```shell\n$ tapcli universe federation add \\\n    --universe_host testnet.universe.lightning.finance\n$ tapcli universe roots\n```\n\nOnce you have obtained the necessary proofs and asset IDs, you can\ngenerate a Taproot Asset address for a specific asset and amount.\n\n```shell\n$ tapcli addrs new --asset_id bab08407[...]129bf6d0 --amt 21\n```\n\nThe sender can now fulfill the request by initiating the transfer:\n\n```shell\n$ tapcli assets send --addr taptb1q[...]tywpre3a\n```\n## Development\n\n### API\n\nTaproot Assets exposes a gRPC (port 10029) and a REST\n(port 8089) API. Connections are encrypted with TLS and\nauthenticated using macaroons. The API is documented\n[here](https://lightning.engineering/api-docs/api/taproot-assets/), and\nfurther guides can be found\n[here](https://docs.lightning.engineering/lightning-network-tools/taproot-assets).\n\n### Mainnet\n\n`tapd` has supported mainnet since version `v0.3.0`.\n\n**IMPORTANT NOTE**: To avoid loss of funds, it's imperative that you read the\n[Operational Safety Guidelines](docs/safety.md) before using `tapd` on\nmainnet!\n\nThe daemon is still in `alpha` state, which means there can still be bugs and\nnot all desired data safety and backup mechanisms have been implemented yet.\n\n#### Important Note for Umbrel and Lightning Terminal Users\n\n**DO NOT UNDER ANY CIRCUMSTANCE** uninstall (or re-install) the \"Lightning\nTerminal\" app without first making a manual backup of all local `tapd` data,\nif you are using Taproot Assets as part of the \"Lightning Terminal\" app with\nUmbrel -- or any comparable node-in-a-box solution.  Uninstalling Umbrel apps\ndeletes application data. This Taproot Assets application data encumbers\nTaproot Assets **AND** bitcoin funds. Receiving and sending `tapd` assets\nupdates the daemon's funds-custody material. Merely having the `lnd` seed phrase\nis **NOT** enough to restore assets minted or received.\n\n**WITHOUT BACKUP BEFORE DELETION, FUNDS ARE DESTROYED**.\n\n## RFQ and Price Oracle System\n\nEverything related to the RFQ (Request For Quote) system, the asset's currency\nprecision (decimal display) and the RFQ price oracle can be found in\n[this document](./docs/rfq-and-decimal-display.md).\n\n## Bug Reports and Feature Requests\n\nPlease use the [GitHub issue tracker](https://github.com/lightninglabs/taproot-assets/issues)\nto report bugs, or to request specific improvements.\n\n## Join us on Slack\n\nJoin us in the [Lightning Labs Slack](https://lightning.engineering/slack.html)\nand join the `#taproot-assets` channel to ask questions and interact\nwith the community.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightninglabs%2Ftaproot-assets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightninglabs%2Ftaproot-assets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightninglabs%2Ftaproot-assets/lists"}