Reference
Instructions
Every instruction, who signs it and what it changes.
The SDK builds every instruction; the names below are the program's.
Holders and issuers#
| Instruction | Signed by | Effect |
|---|
create_rule_set | Issuer | Writes an immutable rule set at an address from the issuer and a nonce |
bind_mint | Issuer, as mint authority | Binds a zero-supply Writ-hooked mint to a rule set, writes the hook's extra accounts, takes the mint authority |
prove | Holder | Checks a 256-byte proof against the credential and rule set, writes or extends the holder's pass, and pays the pass fee from the rule set's pass funds into the protocol account |
withdraw_pass_funds | Issuer | Returns unused pass funds from a rule set to its issuer, never below the rule set's rent |
mint_to_eligible | Issuer | Mints to a token account whose owner holds a live pass for the binding's rule set |
transfer_hook | Called by Token-2022 | Checks the receiver, and the sender when required, on every transfer |
Verifiers#
| Instruction | Signed by | Effect |
|---|
issue_credential | Holder's wallet and the verifier | Writes four commitments and expiries, moves the epoch; the expected epoch guards against concurrent reissues |
revoke_credential | The credential's verifier, or the admin | Revokes and moves the epoch, guarded by the expected epoch |
Governance#
| Instruction | Signed by | Effect |
|---|
initialize_config | Program upgrade authority | Creates governance with the signer as admin |
set_paused | Admin | Pauses or resumes credentials, rule sets, bindings, passes, issuance and transfers; revocation keeps working |
register_verifier | Admin | Admits a verifier key |
set_verifier_active | Admin | Deactivates or reactivates a verifier, moving its generation |
propose_admin | Admin | Names a new admin |
accept_admin | Proposed admin | Takes over administration |
initialize_circuit | Admin | Opens the version 1 circuit with its key digest |
upload_circuit_chunk | Admin | Writes up to 512 bytes of the key at an offset |
finalize_circuit | Admin | Checks the digest and fixes the key |
set_pass_fee | Admin | Sets the pass fee; the first call opens the protocol account |
Transactions the app builds#
Writ actions prepared by the API carry one more instruction, an SPL Memo writ:v1:<operationId> signed by the wallet, so that each intent has its own signature. Proofs add a compute budget instruction for 1,000,000 units. Adding pass funds is an ordinary SOL transfer to the rule set's address.