Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)

License

NotificationsYou must be signed in to change notification settings

lightninglabs/taproot-assets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Taproot Assets Daemontapd implements theTaproot Assets Protocol for issuing assets on the Bitcoin blockchain. Taproot Assets leverage 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 stored off-chain.

Features:

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

How it works:

When minting a new asset, Taproot Assets will generate the relevant witness data, assign the asset to a key held by you and publish the corresponding bitcoin UTXO -- the minting transaction.

The outpoint this minting transaction consumes becomes thegenesis_point of the newly minted asset, acting as its unique identifier. Assets can be spent to a new recipient, who provides the sender with the necessary information encoded in their Taproot Asset address.

To transact assets, the witnesses in the prior transaction are recommitted into one or multiple taproot outputs while the necessary witness data is passed to the recipient. Similar to bitcoin transactions, the remaining balance is spent back to the sender as a change output.

Learn more about the Taproot Assets Protocol.

Architecture:

Taproot Assets are implemented as the Taproot Assets Daemontapd and the Taproot Assets Command Line Interfacetapcli. Additionally,tapd exposes a GRPC interface to allow for a direct integration into applications.

Taproot Assets leverage several LND features including the Taproot wallet and signing capabilities. These facilities are accessed through LND’s GRPC.

The Taproot Assets stack:

Bitcoin blockchain backend <-> LND <-> Taproot Assets

Custody of Taproot Assets is segmented across LND and Tapd to maximize security. LND holds the private key, which has had a taproot tweak applied to it, controlling the bitcoin UTXO holding the Taproot Asset. The taproot tweak on the other hand is held by Tapd. This increases the requirements for asset recovery as both the internal key as well as the taproot tweak are necessary to spend the output. This prevents LND from accidentally burning Taproot assets.

Prerequisites:

Taproot Assets requireLND versionv0.16.2-beta or later to be synced and running on the same Bitcoin network as Taproot Assets (e.g. regtest, simnet, testnet3). RPC connections need to be accepted and avalid macaroon needs to be present.

git clone https://github.com/lightningnetwork/lnd.gitcd lnd make install tags="signrpc walletrpc chainrpc invoicesrpc"

Installation:

From source:

Compile Taproot Assets from source by cloning this repository.Go version 1.19 or higher is required.

git clone --recurse-submodules https://github.com/lightninglabs/taproot-assets.gitcd taproot-assetsmake install

Initialization:

Run Taproot Assets with the commandtapd. Specify how Taproot Assets can reach LND and what network to run Tapd with by passing it additional flags. The Bitcoin backend and LND need to be running and synced before the Taproot Assets daemon can be started.

tapd --network=testnet --debuglevel=debug --lnd.host=localhost:10009 --lnd.macaroonpath=~/.lnd/data/chain/bitcoin/testnet/admin.macaroon --lnd.tlspath=~/.lnd/tls.cert

Usage:

See a full list of options by executing:

tapd --help

Usetapcli to interact withtapd

tapcli assets mint --type normal --name fantasycoin --supply 100 --meta_bytes"fantastic money"tapcli assets mint finalize
tapcli assets list

Synchronize yourself with a universe, for example the one running as part of the issuer'stapd.

tapcli universe sync --universe_host testnet.universe.lightning.finance

Add multiple universes to your local federation to always stay up to date. You can also use the universe to query existing assets and their metadata. You may also configure your tapd instance to listen to incoming requests with--rpclisten 0.0.0.0:10029 to run your own universe.

tapcli universe federation add --universe_host testnet.universe.lightning.financetapcli universe roots

Once you have obtained the necessary proofs and asset IDs, you can generate a Taproot Asset address for a specific asset and amount.

tapcli addrs new --asset_id bab08407[...]129bf6d0 --amt 21

The sender can now fulfill the request by initiating the transfer.

tapcli assets send --addr taptb1q[...]tywpre3a

Development

API

Taproot Assets exposes a GRPC (port 10029) and a REST (port 8089) API. Connections are encrypted with TLS and authenticated using macaroons.The API is documented here. Further guidescan be found here.

Mainnet

Starting with the release of versionv0.3.0 the daemon does support theBitcoinmainnet.

IMPORTANT NOTE: To avoid loss of funds, it's imperative that you read theOperational Safety Guidelines before usingtapd onmainnet!

The daemon is still inalpha state, which means there can still be bugs andnot all desired data safety and backup mechanisms have been implemented yet.Releasing onmainnet mainly signals that there will be no breaking changes inthe future and that assets minted withv0.3.0 will be compatible with laterversions.

Important note for Umbrel/Lightning Terminal users

DO NOT UNDER ANY CIRCUMSTANCE uninstall (or re-install) the "LightningTerminal" app without first making a manual backup of all localtapd data,if you are using Taproot Assets as part of the "Lightning Terminal" app withUmbrel -- or any comparable node-in-a-box solution. Uninstalling Umbrel appsdeletes application data. This Taproot Assets application data encumbersTaproot AssetsAND bitcoin funds. Receiving and sendingtapd assetsupdates the daemon's funds-custody material. Merely having thelnd seed phraseisNOT enough to restore assets minted or received.WITHOUT BACKUP BEFORE DELETION, FUNDS ARE DESTROYED.

RFQ, asset decimal display, unit precision and price oracle

Everything related to the RFQ (Request For Quote) system, the asset's currencyprecision (decimal display) and the RFQ price oracle can be found in thisdocument.

Submit feature requests

TheGitHub issue tracker can be used to request specific improvements or report bugs.

Join us on Slack

Join us in theLightning Labs Slack and join the#taproot-assets channel to ask questions and interact with the community.

About

A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp