Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Transaction Format

Version 6 follows the version 5 transaction format, with an Ironwood bundle added after the Orchard bundle.

At the transaction ID layer, Ironwood is another child in the transaction hash tree:

flowchart TD
    TxId["txid<br/>ZcashTxHash_ || consensusBranchId"]

    Header["header digest<br/>version, branch ID, lock time, expiry height"]
    Transparent["transparent digest"]
    Sapling["Sapling digest"]
    Orchard["Orchard bundle digest"]
    Ironwood["Ironwood bundle digest"]

    TxId --> Header
    TxId --> Transparent
    TxId --> Sapling
    TxId --> Orchard
    TxId --> Ironwood

The Orchard and Ironwood bundle digests have the same structure. The difference is that Ironwood uses its own personalization strings at each bundle-hash node:

flowchart TD
    OrchardBundle["Orchard bundle digest<br/>ZTxIdOrchardHash"]
    IronwoodBundle["Ironwood bundle digest<br/>ZTxIdIronwd_Hash"]

    subgraph Shape["Same Orchard-style bundle hash shape"]
        Compact["actions compact hash<br/>nf, cmx, epk, compact ciphertext"]
        Memos["actions memo hash<br/>memo ciphertext"]
        NonCompact["actions non-compact hash<br/>cv, rk, remaining ciphertext"]
        Flags["bundle flags"]
        Value["value balance"]
        Anchor["bundle anchor"]
    end

    OrchardBundle --> Compact
    OrchardBundle --> Memos
    OrchardBundle --> NonCompact
    OrchardBundle --> Flags
    OrchardBundle --> Value
    OrchardBundle --> Anchor

    IronwoodBundle -. same fields .-> Compact
    IronwoodBundle -. same fields .-> Memos
    IronwoodBundle -. same fields .-> NonCompact
    IronwoodBundle -. same fields .-> Flags
    IronwoodBundle -. same fields .-> Value
    IronwoodBundle -. same fields .-> Anchor

The same rule applies to authorization hashing: Ironwood follows the Orchard bundle authorization structure, but uses Ironwood-specific personalization strings.