Credential Verification

How credentials are verified locally

/

Local Verification

Lemma credentials are W3C Verifiable Credentials with Ed25519 signatures. Verification happens entirely in the browser - no server calls required.

Signature Check

Ed25519 cryptographic signature verified using Web Crypto API

Expiration Check

Credential expiration timestamp checked against current time

Revocation Check

Bloom filter synced hourly for revocation status

Verifying Credentials

JavaScript
// Verify any credential const isValid = await wallet.verifyCredential(credential); // Quick verify with caching const result = await wallet.quickVerify(credential, { checkRevocation: true, // Check revocation status cacheValid: true // Cache valid signatures }); if (result.valid) { console.log('Credential is valid'); } else { console.log('Invalid:', result.reason); }

Revocation Sync

The SDK automatically syncs the revocation list (Bloom filter) every hour:

JavaScript
// Manual sync (usually not needed) await wallet.syncRevocationList(); // Check if a credential is revoked const isRevoked = await wallet.isRevoked(credentialId);