DID Core SDK
The foundational SDK for DID (Decentralized Identifier) operations. This is the core infrastructure that powers all other SDKs.
Architecture:
ssi-did
- Core DID SDK with universal operationsssi-did-key
- DID Key method implementationssi-did-web
- DID Web method implementation
npm install @blockialabs/ssi-did @blockialabs/ssi-did-key @blockialabs/ssi-did-web
Quick Start (3 Steps)
Create and manage DIDs:
import { DIDOrchestrator, DIDMethodRegistry, DIDResolverRegistry } from '@blockialabs/ssi-did';
import { KeyDIDMethod, KeyDIDResolver } from '@blockialabs/ssi-did-key';
// 1. Setup registries (actual API)
const methodRegistry = new DIDMethodRegistry();
const resolverRegistry = new DIDResolverRegistry();
// Register DID methods
const keyMethod = new KeyDIDMethod();
methodRegistry.register('key', keyMethod);
resolverRegistry.register('key', new KeyDIDResolver(keyMethod));
// 2. Create orchestrator
const orchestrator = new DIDOrchestrator({
methodRegistry,
resolverRegistry
});
// 3. Create DID using direct method
const keyDid = await keyMethod.create({
publicKeyHex: '04a8b8d7e4c...' // Your public key
});
Perfect! You now have decentralized identity infrastructure.
Advanced DID Operations
Multiple DID Methods
import { WebDIDMethod, WebDIDResolver } from '@blockialabs/ssi-did-web';
// Add web DID support - register additional methods
const webMethod = new WebDIDMethod();
methodRegistry.register('web', webMethod);
resolverRegistry.register('web', new WebDIDResolver(webMethod));
// Create web-based DID using method directly
const webDid = await webMethod.create({
domain: 'issuer.example.com',
publicKeyHex: '04a8b8d7e4c...'
});
console.log('Web DID:', webDid.did); // did:web:issuer.example.com
DID Resolution
import { DIDResolverRegistry, KeyDIDResolver } from '@blockialabs/ssi-did';
// Setup universal resolver
const resolverRegistry = new DIDResolverRegistry();
resolverRegistry.register('key', new KeyDIDResolver(new KeyDIDMethod()));
// Resolve any DID
const result = await resolverRegistry.resolve('did:key:z6Mk...');
console.log('DID Document:', result.didDocument);
DID Validation
import { DIDStringValidator } from '@blockialabs/ssi-did';
const validator = new DIDStringValidator();
const dids = [
'did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK',
'did:web:example.com',
'invalid:did:string'
];
dids.forEach(did => {
const isValid = validator.validate(did);
console.log(`${did}: ${isValid ? 'Valid' : 'Invalid'}`);
});
Document Updates
// Add services to existing DID document
const updatedDoc = new DIDDocumentBuilder(existingDid)
.addService({
id: '#messaging-service',
type: 'MessagingService',
serviceEndpoint: 'https://example.com/messages'
})
.addVerificationMethod({
id: '#key-2',
type: 'Ed25519VerificationKey2020',
controller: existingDid,
publicKeyMultibase: 'z6MkhaXgBZDvotDkL...'
})
.build();