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);