AIR Kit Compliance Access Key (CAK) — an optional consent-gated encryption framework for regulated data access in the verifiable credential lifecycle.
The Compliance Access Key (CAK) is an optional encryption framework that enables regulated data usage without platform-level custody, key escrow, or implicit trust assumptions. When enabled, sensitive user data is encrypted during credential issuance and can only be decrypted by a Verifier who has obtained explicit user consent.
CAK is optional. If your credentials do not contain raw PII or biometric data, or if verifiers only need zero-knowledge proof results, the standard AIR Kit flow is sufficient.
Enable CAK on a Pricing Schema — This is the top-level switch. Only pricing schemas with CAK enabled can produce CAK-encrypted credentials.
Enable CAK on an Issuance Program — When enabled, the Issuance SDK will generate a CAK key pair during issuance and return the public key to your system for encryption.
Configure a Global Callback URL — Set an HTTPS endpoint via POST /issuer/modify (pass callbackUrl). This endpoint receives authorization notifications whenever a Verifier is granted access to your users’ data.
When a user presents a CAK-encrypted credential to a Verifier, the process includes a consent step and a two-stage decryption.
Step
Party
Action
1
Verifier
Calls POST /verifier/verify/initialize to start the verification flow
2
Verification SDK
Detects CAK requirement from program configuration
3
Verification SDK
Displays a clear authorization statement to the user
4
User
Grants or denies consent
5
Verification SDK
On consent, generates the CAK private key locally via identity wallet signing
6
Verification SDK
Returns the private key to the Verifier backend via callback
7
Platform
Updates callback record status and sends HTTPS notification to Issuer
8
Verifier
Requests semi-decrypted data from the Issuer (zkMe)
9
Issuer (zkMe)
Partially decrypts with managed key, returns semi-decrypted package
10
Verifier
Performs final decryption with CAK private key to obtain plaintext data
The verifyCredential() response includes a cakPrivateKey field when the result is "Compliant" and CAK is enabled. See Verifying Credentials for the SDK reference.
The CAK private key must be used in-memory only. Never persist it to disk, database, or logs.