Assessment reports>Penumbra>Threat Model>Action: Spend

Action: Spend

The Spend action allows a user to spend a note, adding to the transactions-value balance. The action contains the following fields.

  • body — the body of the spend, containing the balance commitment, nullifier, and randomized verification key

  • auth_sig — the signature to be verified by the randomized verification key

  • proof — a zero-knowledge proof to verify that the supplied balance commitment, nullifier, verification key, and transactions anchor are valid

Spend::check_stateless verifies the spend auth signature and that the supplied proof matches the public inputs.

Spend::check_stateful checks that the nullifier has not been used before (also see ref).

Spend::execute will add the supplied note payload into the state commitment tree and emit an event.

Zellic © 2025Back to top ↑