Transferring Taproot Assets
There are three ways to transfer Taproot Assets
- In the same tree
- Split into different trees
- Merge into one tree
Transfer in the same tree
Remember how assets were created. It was done in a transaction with a UTXO containing the asset in the script path.
Sending an asset always requires another on-chain transaction to update the tree and store it in a new UTXO.
The simplest way is for Alice to update her tree and then create a new transaction with an output to Alice (herself). In this output, Alice includes the updated tree.
After the transfer, Alice is still the only person who can update the tree (transfer assets). This is because she controls the new UTXO where the updated tree is stored.
Asset Split and Asset Merge
In an asset split, the sender relinquishes control of some assets. The sender creates a sparse Merkle sum tree in which he includes the reduced amount of his own assets. But he doesn’t update the recipient’s assets.
The receiver creates a new Sparse Merkle sum tree, including the new amount of its assets. The amount of the sender’s address is set to zero.
Now Alice creates a transaction that consumes the minting UTXO. This transaction has two outputs. The first goes to Alice and contains Alice’s updated Merkle tree. The second output goes to the receiver and contains the Merkle tree reflecting the amount held by the receiver.
Note: The total amount of the assets doesn’t change. But each Merkle tree now has a different root sum.
An asset merge works the same way.