Transaction Outputs
Introduction
These rules apply to transaction outputs, excluding miner transaction outputs.
Rules
Outputs Must Not Overflow
The outputs when summed must not overflow a u641.
Output Amount
For version 1, txs sum of the outputs must be less than the sum of the inputs, the difference between the inputs and the outputs is then the fee.2 The amount of each output must also not be zero.3
From hard-fork 2, version 1 transaction output amounts also must be validly decomposed4. A valid decomposed amount is an amount contained in this table
For version 2, txs all outputs must have a zero amount.5
Output Keys Canonical
All output public keys must be canonical points
6.
This was added as a rule in hard-fork 4 but that check is redundant as it was done before that. So how did invalid keys get on the chain? miner txs.
Output Type
The output type allowed depends on the hard-fork7:
hard-fork | output type |
---|---|
1 to 14 | txout_to_key |
15 | txout_to_key and txout_to_tagged_key |
16 onwards | txout_to_tagged_key |
For hard-fork 15, both are allowed but the transactions outputs must all be the same type8.
2 Outputs
From hard-fork 12, version 2 transactions (RCT) must have 2 outputs9.