Taproot Assets address

Each Taproot Assets address is identified by its 256-bit key, this means each leaf is one possible account (One leaf contains the account number and the amount this account has). To receive an asset, you need a Taproot Assets address and this address is specific to an asset but also to an amount!

So let’s say, you want to receive 100 units of RoylloCoin. First you will have to retrieve the royllo genesis_bootstrap_info (we saw in the previous chapter that this data never changes and contains what we need: genesis_point, name, meta and outpoint index).

When you generate this address, you create the merkle tree you expect. This means, the merkle-Sum Sparse Merkle tree that contains a leaf with your account number and the amount you want. After doing this, you tweak a Taproot key with it.

The result of this is a converted to taproot address. And now we wait for an incoming transaction.

You can create your address with this command line:

tapdcli addrs new \
    --genesis_bootstrap_info TODO \
    --amt 100

You will get this result:

encodedThe bech32 encoded Taproot Assets address
asset_idThe asset ID of the asset that the address corresponds to
family_keyIf emission is enabled for an asset, its family key will appear here
script_keyThis key identifies the script that defines how a Taproot Assets asset may be transferred
internal_keyThe key that holds the Taproot asset
taproot_output_keyThe key that is going to hold the Taproot output once it is received