Skip to content
Docs

Reference

Parameters

Every bound and size the program and the circuit use.

Credentials#

ParameterValue
Attributes per credential4: residency, investor status, age, screening
Residency codes0 to 63; registry 0 EU, 1 UK, 2 CH, 3 SG, 4 US
Investor status levels0 Retail, 1 Qualified, 2 Professional, 3 Accredited
Attested age0 to 150
Screening valueUnix time of the screening
CommitmentPoseidon over 8 inputs: value, salt, wallet (2 limbs), verifier (2 limbs), epoch, attribute index
SaltUniform in the BN254 scalar field
First epoch1, moving up by one on every issuance and revocation
Signers at issuanceThe wallet (payer) and a registered, active verifier

Rule sets#

ParameterValue
Groups per rule set1 to 4, joined by OR
Conditions per groupUp to 4, joined by AND; at least 1
Region conditionA 64-bit set of residency codes
Status conditionMinimum level 0 to 3
Age conditionMinimum 0 to 150
Screening windowUp to 31,622,400 seconds (366 days)
Longest pass1 second to 31,622,400 seconds (366 days)
AddressDerived from the issuer and a 64-bit nonce
Name1 to 100 characters, kept by Writ's index

Proofs#

ParameterValue
Proof systemGroth16 over BN254
Proof size256 bytes: A (G1, 64), B (G2, 128), C (G1, 64)
Public inputs36
Private inputs8
Circuit size5,018 constraints
Circuit version1
Verifying key2,816 bytes: α (G1), β, γ, δ (G2), 37 IC points (G1)
Key upload512-byte chunks, digest-checked, immutable once finalized
On-chain checkalt_bn128 syscalls, about 300,000 compute units
Compute budget requested1,000,000 units

Mints and transfers#

ParameterValue
Token programToken-2022
Mint extensionsExactly one: TransferHook, program Writ, no hook authority
Supply at binding0
Mint authority after bindingThe binding account; issuance only through Writ
Accounts the hook reads6: config, binding, rule set, credential, verifier, pass
With sender checks9: the receiver's three plus the sender's three
Token accountsImmutable owner, as standard associated token accounts
AmountsUnsigned 64-bit base units

Pass fee#

ParameterValue
ChargedFor each rule pass Writ records, new or renewed
AmountSet by governance, in lamports
Paid byThe rule set's issuer, from the rule set's pass funds
Pass fundsLamports a rule set holds above its rent-exempt minimum
Paid intoThe protocol account, address "protocol"

The app and API#

ParameterValue
Sign-in message lifetime5 minutes
Session12 hours, HttpOnly cookie
Unsigned preparation lifetime90 seconds
Signed operations in flight per wallet1
Idempotency key8 to 100 letters, digits, _ or -
Submitted transaction sizeUp to 1,232 bytes
Index freshnessReconciled about every 15 seconds; reads refuse an index older than 2 minutes
Verification session1 hour
Callback clock tolerance5 minutes