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.