How to Revoke a Credential
This guide walks you through the process of revoking a credential using Skippy's platform.
Prerequisites
Before you begin, ensure you have:
- An issued credential with status metadata
- Access to the project where the credential was issued
- Appropriate permissions to revoke credentials
Step-by-Step Process
Step 1: Navigate to Credentials
- Log in to your Skippy dashboard
- Select the project containing the credential you want to revoke
- Click on "Credentials" in the navigation menu
Step 2: Locate the Credential
You can find the credential using several methods:
Option A: Search by Email
- Use the search bar at the top
- Enter the recipient's email address
- Press Enter or click the search icon
Option B: Filter by Status
- Use the status filter dropdown
- Select "Completed" to see issued credentials
- Browse the filtered list
Option C: Filter by Template
- Use the template filter
- Select the credential type
- Find the credential in the filtered results
Step 3: View Credential Details
- Click on the credential row to open the details page
- Review the credential information:
- Recipient: Email and personal information
- Issue Date: When the credential was issued
- Status: Current credential state
- Template: Credential type and attributes
- Status List Info: List ID and index (if available)
Step 4: Verify Status Metadata
Before revoking, confirm the credential has revocation metadata:
Status list: sl_abc123#42
If this information is missing, the credential cannot be revoked through the status list mechanism.
Step 5: Initiate Revocation
- Scroll to the "Credential Lifecycle" section
- Click the "Revoke Credential" button (red button)
- A confirmation dialog will appear
Step 6: Confirm Revocation
The confirmation dialog shows:
- Credential details for review
- Warning that revocation is permanent
- Impact on future verifications
To proceed:
- Review the information carefully
- Click "Confirm" to revoke
- Click "Cancel" to abort
Step 7: Verify Revocation
After revocation:
- Status updates immediately to "Revoked"
- Timestamp recorded showing when revocation occurred
- Status list updated with the new revocation bit
- UI reflects the revoked state with a red badge
You can verify the revocation by:
- Checking the credential details page
- Viewing the "Revoked At" timestamp
- Confirming the status list bit is set to 1
What Happens Next?
Immediate Effects
- Verification fails instantly for this credential
- Status list cache invalidated globally
- Revocation recorded with timestamp and user
- Cannot be undone - revocation is permanent
For the Holder
- The credential remains in their wallet
- Attempting to present it for verification will fail
- Some wallets may display a "Revoked" indicator
- They should be notified of the revocation (if you have a process)
For Verifiers
- Any verification request checking this credential will fail
- The status list indicates revoked status
- Verification response includes revocation information
Common Scenarios
Revoking Multiple Credentials
If you need to revoke multiple credentials:
- Repeat the process for each credential
- Consider using the API for bulk operations
- Keep a log of revocations for audit purposes
Revoking Due to Security Breach
For urgent security revocations:
- Revoke immediately without delay
- Document the reason in your audit log
- Notify affected holders
- Review related credentials that may also be compromised
Revoking Expired Credentials
Even if a credential has expired:
- Revocation provides explicit invalidation
- Useful for audit trails
- Prevents edge cases where expiration is ignored
Troubleshooting
"Cannot Revoke" Button is Disabled
Possible reasons:
- Credential already revoked
- No status metadata present
- Insufficient permissions
- Credential was not issued with revocation support
Solution: Verify the credential was issued after status list implementation was enabled.
Revocation Appears Slow
What's happening:
- Status list update is instant
- Cache invalidation may take seconds
- CDN propagation can take up to 5 minutes
Solution: Wait a few minutes and check again. The revocation is effective even if not immediately visible everywhere.
"Status List Not Found" Error
Possible causes:
- Status list was deleted or corrupted
- Network connectivity issue
- Service temporarily unavailable
Solution: Contact support if the issue persists.
Best Practices
Before Revoking
- Verify you have the correct credential - double-check recipient information
- Document the reason in your internal systems
- Notify the holder if appropriate for your use case
- Consider the timing - immediate vs. scheduled revocation
After Revoking
- Verify revocation succeeded - check the UI confirms revoked status
- Update internal records - mark the credential in your database
- Communicate with stakeholders - inform relevant parties
- Monitor for issues - check for verification attempts
Record Keeping
Maintain records of:
- When credentials were revoked
- Who performed the revocation
- Reason for revocation (in external system)
- Any related incidents or tickets
API Alternative
For programmatic revocation, use the API:
POST /api/statuslist/{listId}/revoke
Content-Type: application/json
{
"idx": 42
}
See the API Reference for complete documentation.
Next Steps
- Understanding Status Lists - Learn how status lists work technically
- Revocation Best Practices - Strategies for managing revocations at scale