Key Features
VeriCore provides a comprehensive set of features for building decentralized identity and trust systems.
Core Capabilities
1. Decentralized Identifiers (DIDs)
- Pluggable DID Methods: Support for any DID method via the
DidMethodinterface - DID Document Management: W3C DID Core-compliant document handling with all verification relationships
- DID Resolution: Chain-agnostic DID resolution through the registry pattern
- Multiple Method Support: Works with did:key, did:web, did:ion, did:algo, and more
- Verification Relationships: Support for authentication, assertionMethod, keyAgreement, capabilityInvocation, and capabilityDelegation
- JSON-LD Context: Full support for JSON-LD contexts in DID Documents
- DID Document Metadata: Structured metadata with temporal fields (created, updated, etc.)
2. Blockchain Anchoring
- Chain-Agnostic Interface: Write once, anchor to any blockchain
- CAIP-2 Compatible: Uses Chain Agnostic Improvement Proposal 2 for chain identification
- Type-Safe Anchoring: Helper functions for type-safe payload anchoring
- Read/Write Operations: Both anchoring and reading anchored data
3. Key Management
- KMS Abstraction: Pluggable key management service interface
- Multiple Algorithms: Support for Ed25519, secp256k1, and extensible to others
- Key Operations: Generate, retrieve, sign, and delete keys
- Public Key Formats: Support for JWK and multibase formats
4. JSON Canonicalization
- Stable Ordering: Canonical JSON with lexicographically sorted keys
- Digest Computation: SHA-256 digest with multibase encoding (base58btc)
- Consistent Hashing: Same content always produces the same digest
- Nested Structures: Handles complex nested JSON objects and arrays
5. Service Provider Interface (SPI)
- Automatic Discovery: Adapters discovered via Java ServiceLoader
- Runtime Registration: Register adapters without code changes
- Modular Design: Each adapter module is independent and optional
6. Web of Trust
- Trust Registry: Manage trust anchors and discover trust paths between DIDs
- Trust Path Discovery: Find trust relationships using graph traversal algorithms
- Trust Scores: Calculate trust scores based on path length and anchor strength
- Credential Type Filtering: Filter trust anchors by credential type
- Integration with Verification: Built-in trust registry checking during credential verification
7. Delegation Chains
- Capability Delegation: Delegate credential issuance and other capabilities to other DIDs
- Multi-Hop Delegation: Support for hierarchical delegation chains
- Delegation Verification: Verify delegation chains end-to-end
- Integration with Credentials: Automatic delegation checking for delegated credentials
8. Proof Purpose Validation
- Purpose Verification: Validate that proof purposes match DID Document verification relationships
- Relationship Checking: Ensure proofs are used only for their intended purposes
- W3C Compliance: Full compliance with W3C DID Core proof purpose requirements
9. Error Handling
- Structured Error Types: Sealed hierarchy of
VeriCoreErrortypes with context - Result-Based API: All operations return
Result<T>for consistent error handling - Input Validation: Automatic validation of DIDs, credentials, and chain IDs
- Error Context: Rich context information for debugging and error recovery
10. Plugin Lifecycle Management
- Lifecycle Methods: Initialize, start, stop, and cleanup plugins
- Automatic Discovery: VeriCore automatically discovers plugins that implement
PluginLifecycle - Error Handling: Lifecycle methods return
Result<Unit>for error handling - Plugin Configuration: Support for plugin-specific configuration during initialization
Technical Features
Coroutine-Based
All I/O operations use Kotlin coroutines (suspend functions), enabling:
- Non-blocking operations
- Easy composition of async operations
- Integration with Kotlin’s concurrency model
Type-Safe JSON
Uses Kotlinx Serialization for:
- Type-safe JSON serialization/deserialization
- Compile-time type checking
- Reduced runtime errors
Testability
Comprehensive test support:
- In-memory implementations for all interfaces
- Test utilities for common scenarios
- Integration test helpers
Advanced Features & Plugins
11. Audit Logging
- Immutable Audit Logs: Track all operations with immutable audit log entries
- Event Types: DID operations, credential operations, wallet operations, key operations
- Queryable: Filter by time range, type, actor, resource
- Compliance Ready: Ready for database or blockchain-backed implementations
- See Features Documentation for details
12. Metrics & Telemetry
- Performance Tracking: Counter, duration, and value metrics
- Statistics: Min, max, average, percentiles (p50, p95, p99)
- Usage Analytics: Track credentials issued, verified, wallet operations
- Metrics Snapshots: Export metrics for monitoring systems
- See Features Documentation for details
13. QR Code Generation
- Credential Sharing: Generate QR codes for credentials and presentations
- Multiple Formats: JSON, JWT, and URL formats
- Deep Links: Generate deep links for credential verification
- Easy Integration: Simple API for QR code generation
- See Features Documentation for details
14. Notification System
- Push Notifications: Send push notifications for credential events
- Webhooks: Support for webhook-based notifications
- Event-Driven: Notify on credential issuance, verification, expiration
- Flexible Delivery: Support for multiple notification channels
- See Features Documentation for details
15. Credential Versioning
- Version Tracking: Track credential versions and history
- Rollback Support: Rollback to previous versions if needed
- Change Tracking: Track reasons for credential changes
- Version Lineage: Maintain complete version history
- See Features Documentation for details
16. Backup & Recovery
- Export Credentials: Export credentials from wallets
- Import Credentials: Import credentials to wallets
- JSON Format: Standard JSON serialization/deserialization
- Backup Validation: Validate backup data before import
- See Features Documentation for details
17. Expiration Management
- Expiration Monitoring: Monitor expiring and expired credentials
- Renewal Workflows: Support for credential renewal processes
- Batch Operations: Handle multiple credentials at once
- Automatic Alerts: Notify when credentials are about to expire
- See Features Documentation for details
18. Analytics & Reporting
- Usage Analytics: Track issuance, verification, and trust metrics
- Trend Analysis: Analyze trends over time (hourly, daily, weekly, monthly, yearly)
- Top Issuers: Identify top issuers and credential types
- Error Tracking: Monitor error rates and types
- See Features Documentation for details
19. OIDC4VCI Support
- OpenID Connect: OpenID Connect for Verifiable Credential Issuance
- Issuer Metadata: Discover issuer capabilities
- Credential Offers: Create and manage credential offers
- Standards Compliant: Full OIDC4VCI protocol support
- See Features Documentation for details
20. DIDComm v2 Support
- Credential Exchange: DIDComm v2 credential exchange protocol
- Message Types: Support for credential offers, requests, and issues
- Secure Messaging: Encrypted and authenticated messaging
- Protocol Compliant: Full DIDComm v2 specification support
- See Features Documentation for details
21. CHAPI Support
- Credential Handler API: Support for Credential Handler API
- Credential Requests: Handle credential requests from web applications
- Credential Storage: Store credentials via CHAPI
- Browser Integration: Seamless browser integration
- See Features Documentation for details
22. Multi-Party Issuance
- Collaborative Issuance: Support for multi-party credential issuance
- Consensus Types: ALL, MAJORITY, QUORUM, ANY consensus modes
- Signature Collection: Collect signatures from multiple parties
- Approval Workflows: Support for approval/rejection workflows
- See Features Documentation for details
23. Health Checks
- System Diagnostics: Monitor system health and component status
- Health Status: HEALTHY, DEGRADED, UNHEALTHY status reporting
- Component Checks: Check individual component health
- Diagnostics: Detailed diagnostics for troubleshooting
- See Features Documentation for details
24. Credential Rendering
- HTML Rendering: Render credentials as HTML
- PDF Rendering: Render credentials as PDF (placeholder)
- Multiple Formats: Support for JSON, HTML, PDF, and text formats
- Presentation Rendering: Render verifiable presentations
- See Features Documentation for details
Integration Modules
walt.id Integration
- Key management via walt.id
- DID methods: did:key, did:web
- Automatic SPI discovery
GoDiddy Integration
- Universal Resolver for DID resolution
- Universal Registrar for DID creation
- Universal Issuer for VC issuance
- Universal Verifier for VC verification
- Support for 20+ DID methods
Blockchain Adapters
- Algorand: Full support for Algorand mainnet and testnet
- Polygon: Polygon blockchain integration
- Extensible to any blockchain via the
BlockchainAnchorClientinterface
Benefits
- Flexibility: Mix and match components based on your needs
- Portability: Switch between implementations without code changes
- Testability: Easy to test with in-memory implementations
- Maintainability: Clear separation of concerns and interfaces
- Extensibility: Easy to add new adapters and implementations
Next Steps
- See Use Cases for real-world applications
- Explore the Architecture Overview
- Get started with Installation