Verifier: Transaction Proofs

Validates a transaction proof is properly formatted.

  1. The header of the transaction proof must be valid.
  2. The Merkle proof of the transaction proof must be valid.
  3. The length of the transaction leaf transaction.length must be greater than 0.

TransactionProof

name type size description
blockHeader BlockHeader variable Block header substructure.
rootHeader RootHeader variable Root header substructure.
rootIndex uint16 2 Root index.
merkleProof.length uint16 2 Number of nodes in Merkle proof.
merkleProof bytes32[] 32* Merkle inclusion proof.
inputIndex uint8 1 Input index.
outputIndex uint8 1 Output index.
transactionIndex uint16 2 Transaction index.
transaction TransactionLeaf variable Transaction leaf substructure.
data.length uint8 1 Next field number of elements.
data bytes32[] 32* List of state elements being spent.
signatureFeeToken uint256 32 Implicit fee token ID.
signatureFee uint256 32 Implicit fee rate.
token address 20 Token address, used for invalid sum.
returnOwner address 20 For HTLC outputs only, the return owner.