SATS20

Docs · 08 / 8

Design notes and pitfalls

Receiver address types, dust and funding for parallel actions.

Receiver address types

The indexer stores whatever address an output script decodes to. If a token transfer pays a p2wpkh (bc1q…) address, the balance is stored under that string. The owner can only act as their taproot identity address, so those tokens can never be spent.

Dust

A program-account output must hold at least 330 sats; the change at output 1 must be at least that.

Funding and parallel actions

A program account is funded by paying sats to it. Several separate funded outputs let several actions run in parallel without waiting for a confirmation.

Fees

The miner fee is the fee rate times the transaction's virtual size, so it grows with the number of inputs and payment outputs.

Input amounts

The signature commits to the amount of every input. Building or signing an action with a wrong input amount produces an invalid signature.