Skip to content
Docs

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#

InstructionSigned byEffect
create_rule_setIssuerWrites an immutable rule set at an address from the issuer and a nonce
bind_mintIssuer, as mint authorityBinds a zero-supply Writ-hooked mint to a rule set, writes the hook's extra accounts, takes the mint authority
proveHolderChecks 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_fundsIssuerReturns unused pass funds from a rule set to its issuer, never below the rule set's rent
mint_to_eligibleIssuerMints to a token account whose owner holds a live pass for the binding's rule set
transfer_hookCalled by Token-2022Checks the receiver, and the sender when required, on every transfer

Verifiers#

InstructionSigned byEffect
issue_credentialHolder's wallet and the verifierWrites four commitments and expiries, moves the epoch; the expected epoch guards against concurrent reissues
revoke_credentialThe credential's verifier, or the adminRevokes and moves the epoch, guarded by the expected epoch

Governance#

InstructionSigned byEffect
initialize_configProgram upgrade authorityCreates governance with the signer as admin
set_pausedAdminPauses or resumes credentials, rule sets, bindings, passes, issuance and transfers; revocation keeps working
register_verifierAdminAdmits a verifier key
set_verifier_activeAdminDeactivates or reactivates a verifier, moving its generation
propose_adminAdminNames a new admin
accept_adminProposed adminTakes over administration
initialize_circuitAdminOpens the version 1 circuit with its key digest
upload_circuit_chunkAdminWrites up to 512 bytes of the key at an offset
finalize_circuitAdminChecks the digest and fixes the key
set_pass_feeAdminSets 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.