I'm excited to announce tapd v0.3.0-alpha, the first software release that supports the Taproot Asset Protocol on mainnet! The deterministic+reproducible release can be found here: https://github.com/lightninglabs/taproot-assets/releases/tag/v0.3.0 Our launch blog post can be found here: https://lightning.engineering/posts/2023-10-18-taproot-assets-v0.3/ For those interested in keeping tabs on usage/activity of the protocol, we're running two Universes servers: * mainnet: https://universe.lightning.finance/v1/taproot-assets/universe/roots * testnet: https://testnet.universe.lightning.finance/v1/taproot-assets/universe/roots REST API documentation for the Universe servers can be found here: https://lightning.engineering/api-docs/api/taproot-assets/rest-endpoints. Users can also interact directly via gRPC as well. Users can run their own Universe server, and also federate with other universe servers using the relevant as of command (`tapcli universe federation`). A technical specification for the Universe/Multiverse protocol can be found here in the BIP: https://github.com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-universe.mediawiki. At a high level, a Universe server is used by clients to verify new asset issuance, archive off-chain transaction data, and transmit proof information for transfers. A Universe data structure is an authenticated merkle-sum sparse merkle tree that maps an `(outpoint, scriptKey)` tuple to proof data. A `scriptKey` is the protocol's version of the pkScript/scriptPubkey we all know and love today. In the initial version of the protocol, the `scriptKey` is actually just a normal taproot output public key. Ultimately, Bitcoin transactions are signed+verified under the hood, as we map a logical state transition to a 1-in-1-out Bitcoin transaction. The mapping from an asset state transition to a "virtual" transaction can be found here: https://github.com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-vm.mediawiki. One cool thing about reusing Bitcoin Script in the first asset script version is that higher level applications can use a familiar PSBT like structure (vPSBTs) to construct off-chain multi-party interactions. Here's an example of using PSTBs, vPSBTs, and `SIGHASH_NONE` (on the TAP layer) to construct a protocol for non-interactive, non-custodial swaps: https://github.com/lightninglabs/taproot-assets/issues/577. We look forward to experimentation and feedback for this mainnet alpha release to continue to evolve and improve the protocol! Thanks to all those that experimented with earlier versions, providing the critical feedback that made this release possible. Onwards! -- Laolu