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 points6.

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-forkoutput type
1 to 14txout_to_key
15txout_to_key and txout_to_tagged_key
16 onwardstxout_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.