Verifiable Credentials (VCs)
Verifiable Credentials are tamper-evident digital credentials that can be cryptographically verified without contacting the issuer. They’re the digital equivalent of physical credentials like driver’s licenses, diplomas, or identity cards.What is a Verifiable Credential?
A Verifiable Credential is a digital statement made by an issuer about a subject (usually the credential holder) that includes:- Claims: Information about the subject (name, date of birth, degree, etc.)
- Metadata: Issuer, issue date, expiration, credential type
- Proof: Cryptographic signature that proves authenticity
Think of a VC like a digitally-signed diploma: it contains information about you, who issued it, and a cryptographic proof that it hasn’t been tampered with.
VC Structure
A standard Verifiable Credential follows the W3C data model:VC Components
@context
@context
Defines the meaning of terms used in the credential. Points to JSON-LD context files.
id
id
Unique identifier for this specific credential instance.
type
type
Specifies what kind of credential this is. Always includes
VerifiableCredential.issuer
issuer
DID of the organization that issued the credential.
issuanceDate
issuanceDate
When the credential was issued (ISO 8601 format).
credentialSubject
credentialSubject
The actual claims about the subject. This is the main content of the credential.
proof
proof
Cryptographic proof that makes the credential verifiable.
VC Lifecycle
Issuance Process
In Sphyre, credential issuance follows these steps:1
User Requests Credential
User fills out a credential request form in Sphyre ALV
2
Issuer Reviews Request
Request appears in issuer dashboard (Sphyre Issuers)
3
Issuer Approves & Signs
Issuer approves and Fortro Engine creates the VC
4
Store on IPFS
Credential is uploaded to IPFS for decentralized storage
5
Anchor on Blockchain
IPFS hash is anchored on Ethereum for immutability
6
Deliver to Holder
Credential is sent to user’s wallet
Verification Process
Verifiers can check credential authenticity without contacting the issuer:1
Receive Presentation
Verifier receives a Verifiable Presentation containing the VC
2
Extract Credential
Parse the VC and extract the proof
3
Resolve Issuer DID
Get issuer’s public key from their DID
4
Verify Signature
Check cryptographic signature using issuer’s public key
5
Check Blockchain Anchor
Verify the credential hash exists on blockchain
6
Check Revocation Status
Ensure credential hasn’t been revoked
7
Validate Expiration
Check if credential is still valid
Credential Types in Sphyre
Sphyre supports various credential schemas:National ID
Government-issued identity credentials with full name, DOB, nationality
Driver's License
Driving credentials with license class, restrictions, expiration
Student ID
Educational institution credentials with student number, program
Employee Badge
Employment credentials with job title, department, access level
Professional License
Professional certifications with license number, specialty, board
Health Insurance
Insurance credentials with policy number, coverage type, provider
Selective Disclosure
VCs support selective disclosure - sharing only specific claims:Example: Age Verification
Instead of showing full ID:Verifiable Presentations
To share credentials, holders create Verifiable Presentations (VPs):- Holder signs the presentation (not just the credential)
- Includes challenge from verifier to prevent replay attacks
- Can contain multiple credentials
- Proves holder controls the DID
Revocation
Issuers can revoke credentials if needed:Revocation Methods
- Status List
- Blockchain Registry
Credential contains a reference to a revocation list
Storage & Privacy
IPFS Storage
Content-Addressed
Files identified by cryptographic hash, ensuring data integrity
Decentralized
No single point of failure, distributed across IPFS network
Immutable
Content cannot be modified; changes create new hash
Optional Encryption
Credentials can be encrypted before upload for privacy
Privacy Considerations
Privacy Strategies:- Encryption: Encrypt credential before IPFS upload
- Hashed Claims: Store only hashes of sensitive data
- Zero-Knowledge Proofs: Prove claims without revealing data
- Pairwise Credentials: Issue different credentials for different relationships
Schema Management
Schemas define the structure of credentials:Best Practices
Expiration Dates
Expiration Dates
Always set appropriate expiration dates. Credentials shouldn’t be valid forever.
Credential Scope
Credential Scope
Issue specific credentials for specific purposes. Don’t create “super credentials” with all user data.
Minimize Data
Minimize Data
Include only necessary claims. Less data = better privacy.
Versioning
Versioning
Version your schemas and credentials for backward compatibility.
Linked Data
Linked Data
Use JSON-LD contexts for semantic interoperability across systems.
VC vs Traditional Credentials
| Feature | Traditional | Verifiable Credential |
|---|---|---|
| Format | Paper/PDF | JSON-LD |
| Verification | Contact issuer | Cryptographic proof |
| Tampering | Easy to forge | Cryptographically impossible |
| Sharing | Photocopy | Selective disclosure |
| Revocation | Difficult | Instant via blockchain |
| Privacy | Full disclosure | Minimal disclosure |
| Portability | Physical/email | Digital wallet |
| Speed | Days/weeks | Instant |
Advanced Features
Composite Credentials
Combine multiple credentials for complex proofs:Derived Credentials
Create new credentials based on existing ones:Delegated Credentials
Issue credentials on behalf of another issuer:Code Examples
Creating a Credential (Backend)
Verifying a Credential (Frontend)
Resources
W3C VC Data Model
Official specification for Verifiable Credentials
JSON-LD Playground
Test and validate JSON-LD credentials
VC Implementation Guidelines
Best practices for implementing VCs
Credential Schemas
Standard vocabularies for credentials
Next Steps
1
Issue Your First Credential
Follow the issuing credentials guide
2
Learn About ZKP
Explore Zero-Knowledge Proofs for privacy
3
API Integration
Check the Issuer API reference
4
Build an Issuer
Read the developer integration guide