Groth16 calldata is positional. The names below help humans review it; the verifier receives only the values in this exact order. The current withdrawal verifier expects these public inputs in exact order:
Names are explanatory labels. Verifier calldata is positional; reordering, dropping, or substituting one field produces a different statement.

What each field fixes

The remaining sibling was committed with the bundle at deposit and stays available until its own nullifier is spent.

Integration rules

  • Preserve the generated order. Never sort inputs by name.
  • Compare every generated value with the intended root, nullifier, recipient, amount, fee, chain, pool, context, and payload.
  • Reject missing, extra, malformed, or out-of-field values before encoding calldata.
  • Build a fresh proof after any root, recipient, amount, fee, runtime, or payload change.
Changing even one field creates a different statement. A proof with nine values can still be wrong if one value or position differs.