solana_zk_token_sdk

Module zk_token_proof_instruction

Source
Expand description

Instructions provided by the ZK Token proof program.

There are two types of instructions in the proof program: proof verification instructions and the CloseContextState instruction.

Each proof verification instruction verifies a certain type of zero-knowledge proof. These instructions are processed by the program in two steps:

  1. The program verifies the zero-knowledge proof.
  2. The program optionally stores the context component of the zero-knowledge proof to a dedicated context-state account.

In step 1, the zero-knowledge proof can be included directly as the instruction data or pre-written to an account. The program determines whether the proof is provided as instruction data or pre-written to an account by inspecting the length of the data. If the instruction data is exactly 5 bytes (instruction disciminator + unsigned 32-bit integer), then the program assumes that the first account provided with the instruction contains the zero-knowledge proof and verifies the account data at the offset specified in the instruction data. Otherwise, the program assumes that the zero-knowledge proof is provided as part of the instruction data.

In step 2, the program determines whether to create a context-state account by inspecting the number of accounts provided with the instruction. If two additional accounts are provided with the instruction after verifying the zero-knowledge proof, then the program writes the context data to the specified context-state account.

NOTE: A context-state account must be pre-allocated to the exact size of the context data that is expected for a proof type before it is included in a proof verification instruction.

The CloseContextState instruction closes a context state account. A transaction containing this instruction must be signed by the context account’s owner. This instruction can be used by the account owner to reclaim lamports for storage.

Re-exports§

Structs§

  • Pubkeys associated with a context state account to be used as parameters to functions.

Enums§

Functions§