{"_id":"@blockialabs/ssi-did","_rev":"8-ce86ef68dd284c8f67019ae25a0f1e38","name":"@blockialabs/ssi-did","dist-tags":{"latest":"2.0.8"},"versions":{"2.0.0":{"name":"@blockialabs/ssi-did","version":"2.0.0","_id":"@blockialabs/ssi-did@2.0.0","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"nx":{"name":"ssi-did"},"dist":{"shasum":"606ecdc370dc19fdf5f8763747c42e401a746603","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.0.tgz","fileCount":98,"integrity":"sha512-gLd5ZSToLs1ZsUxeSjSP9FBukUtXsTXOVhELCJo3xtgbZ9W68qpOJllmOpp+1A1zXmVL+WN2Gg6L+fspE73+IQ==","signatures":[{"sig":"MEQCICdSw5nguaJJCNJKPVv1p1gn10juDUBUd6r34AYxz5pZAiAO6XC2tnsQ3cjLL/9a+n95bpyM+sakwatToSD8k/2IpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"1d934414afd658a43ffe3699784c51869a955851","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"_npmVersion":"10.9.2","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.17.1","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.0","@blockialabs/ssi-utils":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.0_1757410398274_0.5095028877020815","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@blockialabs/ssi-did","version":"2.0.1","license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.1","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"nx":{"name":"ssi-did"},"dist":{"shasum":"2bf59a3f97c7136afd6f7af77d9876fc59fcd036","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.1.tgz","fileCount":98,"integrity":"sha512-zqcP5UDHfMhEEwi6jD4ZuQjpAohkXtEvDa4m+5pC3WAuz7v9y8/FRXmjS+T1i6i6FgJwqqiQ1BlY0k/0CVGkXw==","signatures":[{"sig":"MEUCIQCguoYKmGQgay8BkdmZJa/3QEAxm9yB8Kbf6pAHLAThmAIgWspqjEzynZ8rVmBMyhEEYbSFAdmPTV3wSxJat3hnbjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187582},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"7326fa169b854b03b693d74a22b53491083aeb8a","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"_npmVersion":"10.9.2","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.17.1","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.1","@blockialabs/ssi-utils":"2.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.1_1757426805387_0.3389771876101526","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@blockialabs/ssi-did","version":"2.0.2","keywords":["ssi","verifiable credentials","VC","did","decentralized identity"],"license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.2","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-did"},"dist":{"shasum":"444c1694cba364dbbec5ef61936557ed7f5e1704","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.2.tgz","fileCount":98,"integrity":"sha512-dFULY1Knn8QFgjBgA31tOi9FQHu2Kp8qzQ3K9uSs21roHLQ3Ihpccr5+bFZnykVgQ/uG2BnnxCBc/owyvlvpLA==","signatures":[{"sig":"MEUCIBeSWMcTRZjd86A1wsYlyhb+Py5LgM1jhvo16cRHWfLpAiEAqjORi0MPmJPqEQaLQBPJcxrDI5gW0Ak51g5QUrhhdAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188121},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"2f8809648b4da5bab2d6740e223630b9b55f7237","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-did"},"_npmVersion":"10.9.2","description":"A library for creating and managing DIDs in decentralized identity systems.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.2","@blockialabs/ssi-utils":"2.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.2_1757506749364_0.6648430114578046","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@blockialabs/ssi-did","version":"2.0.4","keywords":["ssi","verifiable credentials","VC","did","decentralized identity"],"license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.4","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-did"},"dist":{"shasum":"8ad459d541560d20a90a27875bacefb2bb5ea903","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.4.tgz","fileCount":2,"integrity":"sha512-EOkW0BRfFr53/jYVyA168PmQ0jCFE6kkYzxtMRQCVfjpirpXyW3xVxoiMUL8SDYAgDZ6ETn5IVr0qB9YcS3Lgg==","signatures":[{"sig":"MEQCIAjZ0dQCXqSsUAq6uCOcodbpKi1OX8TcLOVwtxGh2s/SAiBOr1XL4o2cQMG7EG/0NjLQQHSEjFSYh/+3MwId68SngQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-did@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7738},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"8955516e01892565319f30209391d5bd17d8277b","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-did"},"_npmVersion":"10.8.2","description":"A library for creating and managing DIDs in decentralized identity systems.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.4","@blockialabs/ssi-utils":"2.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.4_1757603905056_0.1846442832925217","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@blockialabs/ssi-did","version":"2.0.5","keywords":["ssi","verifiable credentials","VC","did","decentralized identity"],"license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.5","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-did"},"dist":{"shasum":"e0a58d358d02fa8ee2f099a15af7e1c37b940f8b","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.5.tgz","fileCount":98,"integrity":"sha512-we4PdWPrQIbbpMdghPq8avCvUFrtZUC3FYdFcYpFZ6Gq7XTCZAXjmBIOdSlUc7Usdgy5+WIPLPWZzJS94WsgmA==","signatures":[{"sig":"MEUCIHy63/VVVYkW8Zxwge3l4y0+4w92bFK4pwJ5naPC+iYrAiEA31FMbAZXoXWihpbtFxYhEZJa77fGf66sPzmluttYxwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-did@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203006},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"8757f919d7d3e049ed9095c27b0296025488e926","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-did"},"_npmVersion":"10.8.2","description":"A library for creating and managing DIDs in decentralized identity systems.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.5","@blockialabs/ssi-utils":"2.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.5_1757610205994_0.10958214449806292","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@blockialabs/ssi-did","version":"2.0.6","keywords":["ssi","verifiable credentials","VC","did","decentralized identity"],"license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.6","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-did"},"dist":{"shasum":"98ce322a08bafa7a2e45c453a1352f19aa5123c9","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.6.tgz","fileCount":98,"integrity":"sha512-9jnU0uckZl7lrLvQ9192dWSJlwsERkDnav68dxSX+XP2vvNkWKStLrWziX3rrReWq2oHHNzp1lJ6bE9gieH+RA==","signatures":[{"sig":"MEYCIQC8pS6eW0/sEMp5O3scsHRYkI6iIAG33LBjHDKNkNXX0wIhAIRDgggXOLq6Yi1ZKdkPvx8ojtHwMmHFPwd1Ey5yB4zz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-did@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203006},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"2604a08dee38daf8218e9963fb73f5f6114e96e6","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-did"},"_npmVersion":"10.8.2","description":"A library for creating and managing DIDs in decentralized identity systems.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.6","@blockialabs/ssi-utils":"2.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.6_1757683829566_0.4961322841985196","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@blockialabs/ssi-did","version":"2.0.7","keywords":["ssi","did","decentralized-identity","did-core","w3c","did-resolution","did-methods","typescript","blockchain","cryptography"],"license":"Apache-2.0","_id":"@blockialabs/ssi-did@2.0.7","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-did"},"dist":{"shasum":"4f05fb0a3a4dd5836d7a60a546ab287cc24406b9","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.7.tgz","fileCount":98,"integrity":"sha512-+KJduoTHVJmvb8o2Ieb21d+GWdKZo0mS0LHMC3jweuSeFaODD2+IO0qt58w6mDRZrYc/Y4yxmB4f1xHCp8obAQ==","signatures":[{"sig":"MEYCIQC9FU4/7oJi/rDWp+Tl7/ZVXZR0eHppbPui1HKzdFVz6wIhAPBcioG9lUCjXq9P8atdffm1nVPaTS7G2Zdfkv0gPNoc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-did@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203180},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"dfcbd422c56abf23c3c7bd3bf2818a1ce03ba7e7","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-did"},"_npmVersion":"10.8.2","description":"Professional TypeScript SDK for universal DID operations supporting multiple methods (did:key, did:web). W3C DID Core 1.0 compliant with registry-based architecture.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"cbor":"^10.0.11","tslib":"^2.3.0","jsonld":"^8.3.3","@blockialabs/ssi-types":"2.0.7","@blockialabs/ssi-utils":"2.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-did_2.0.7_1758102257232_0.7179695161166235","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@blockialabs/ssi-did","version":"2.0.8","license":"Apache-2.0","keywords":["ssi","did","decentralized-identity","did-core","w3c","did-resolution","did-methods","typescript","blockchain","cryptography"],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"repository":{"type":"git","url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","directory":"packages/ssi-did"},"description":"Professional TypeScript SDK for universal DID operations supporting multiple methods (did:key, did:web). W3C DID Core 1.0 compliant with registry-based architecture.","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"development":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"nx":{"name":"ssi-did"},"dependencies":{"@blockialabs/ssi-types":"2.0.8","@blockialabs/ssi-utils":"2.0.8","cbor":"^10.0.11","jsonld":"^8.3.3","tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_id":"@blockialabs/ssi-did@2.0.8","gitHead":"ec8efbed31088c87c74972943839d10ef337a4d8","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lB+p5lqFb/CGbBLPmTijwKLuKa8l/Qzyvy/9knoKk8FpSXEgB5jU8HhysI8y1OZhDmaY2+nDLSCECjEuDAniFg==","shasum":"c95405f5694a8cdfb2c4709614e0b6f2b5965d19","tarball":"https://registry.npmjs.org/@blockialabs/ssi-did/-/ssi-did-2.0.8.tgz","fileCount":98,"unpackedSize":203180,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-did@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDAocyBCoY+MGjHkdbsw5mv8IBZdR5x9yTRgL40/rCCmQIhANM6r/t9TXOb6iwVs8Edm012Fs8aosd9f+e66QFolMrC"}]},"_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"directories":{},"maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ssi-did_2.0.8_1758625097186_0.9728023941323942"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-09T09:33:18.214Z","modified":"2025-09-23T10:58:17.815Z","2.0.0":"2025-09-09T09:33:18.458Z","2.0.1":"2025-09-09T14:06:45.565Z","2.0.2":"2025-09-10T12:19:09.558Z","2.0.4":"2025-09-11T15:18:25.225Z","2.0.5":"2025-09-11T17:03:26.193Z","2.0.6":"2025-09-12T13:30:29.793Z","2.0.7":"2025-09-17T09:44:17.480Z","2.0.8":"2025-09-23T10:58:17.411Z"},"bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"license":"Apache-2.0","homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-did/README.md","keywords":["ssi","did","decentralized-identity","did-core","w3c","did-resolution","did-methods","typescript","blockchain","cryptography"],"repository":{"type":"git","url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","directory":"packages/ssi-did"},"description":"Professional TypeScript SDK for universal DID operations supporting multiple methods (did:key, did:web). W3C DID Core 1.0 compliant with registry-based architecture.","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"readme":"# SSI DID\n\nThe `ssi-did` package provides comprehensive functionality for creating, managing, and resolving Decentralized Identifiers (DIDs) in Self-Sovereign Identity (SSI) systems. It supports the W3C DID Core specification and provides a flexible architecture for different DID methods.\n\n## Installation\n\nInstall the package via NPM:\n\n```bash\nnpm install @blockialabs/ssi-did\n```\n\n## Key Components\n\n### Core Classes\n\n- `DIDOrchestrator`: Main orchestrator for DID lifecycle operations (create, update, resolve)\n- `DIDDocumentBuilder`: Builder pattern for constructing DID documents\n- `DIDStringBuilder`: Builder for creating DID strings according to W3C specification\n- `DIDDocumentVerifier`: Verification utilities for DID documents\n- `DIDStringValidator`: Validation utilities for DID strings\n\n### Registry System\n\n- `DIDMethodRegistry`: Registry for managing different DID methods\n- `DIDResolverRegistry`: Registry for managing DID resolvers\n\n### Interfaces\n\n- `IDIDDocument`: Core interface for DID documents\n- `IVerificationMethod`: Interface for verification methods\n- `IService`: Interface for service endpoints\n- `IProof`: Interface for cryptographic proofs\n- `IDIDMethod`: Interface for DID method implementations\n- `IDIDResolver`: Interface for DID resolution\n\n## Basic Usage\n\n### 1. Setup Registries and Orchestrator\n\nInitialize the required registries and orchestrator.\n\n```typescript\nimport { DIDOrchestrator, DIDMethodRegistry, DIDResolverRegistry } from '@blockialabs/ssi-did';\nimport { KeyDIDMethod } from '@blockialabs/ssi-did-key';\n\n// Setup registries\nconst methodRegistry = new DIDMethodRegistry();\nconst resolverRegistry = new DIDResolverRegistry();\n\n// Register DID methods (example with did:key)\nconst keyMethod = new KeyDIDMethod();\nmethodRegistry.register('key', keyMethod);\nresolverRegistry.register('key', keyMethod);\n\n// Setup orchestrator\nconst orchestrator = new DIDOrchestrator({\n  methodRegistry,\n  resolverRegistry,\n  signatureProviders: {\n    // Register signature providers for different algorithms\n    Ed25519: ed25519SignatureProvider,\n    Secp256k1: secp256k1SignatureProvider,\n  },\n});\n```\n\n### 2. Create a DID\n\nPrepare and complete DID creation.\n\n```typescript\n// Step 1: Prepare DID creation (get message to sign)\nconst { message, serializedPayload } = await orchestrator.prepareDid('key', {\n  publicKeyHex: 'your-public-key-hex',\n  signatureType: 'Ed25519',\n});\n\n// Step 2: Sign the message\nconst signature = await signatureProvider.sign(message, privateKey);\n\n// Step 3: Complete DID creation\nconst { did, didDocument } = await orchestrator.completeDid('key', {\n  publicKeyHex: 'your-public-key-hex',\n  signature,\n  signatureType: 'Ed25519',\n  serializedPayload,\n});\n\nconsole.log('Created DID:', did);\n```\n\n### 3. Resolve a DID\n\nResolve a DID to get its document.\n\n```typescript\nconst resolutionResult = await orchestrator.resolve(did);\nconsole.log('DID Document:', resolutionResult.didDocument);\n```\n\n### 4. Update a DID Document\n\nPrepare and complete DID document updates.\n\n```typescript\n// Create updated document\nconst updatedDocument = {\n  ...didDocument,\n  // Add new verification method, service, etc.\n};\n\n// Prepare update\nconst { message, serializedPayload } = await orchestrator.prepareUpdate(\n  'key',\n  did,\n  updatedDocument,\n  {\n    publicKeyHex: 'your-public-key-hex',\n    signatureType: 'Ed25519',\n  },\n);\n\n// Sign the update message\nconst signature = await signMessage(message, privateKey);\n\n// Complete the update\nconst updateResult = await orchestrator.completeUpdate('key', did, {\n  updatedDocument,\n  signature,\n  signatureType: 'Ed25519',\n  serializedPayload,\n});\n```\n\n## DID Document Management\n\n### Building DID Documents\n\nUse the `DIDDocumentBuilder` to construct DID documents programmatically.\n\n```typescript\nimport { DIDDocumentBuilder } from '@blockialabs/ssi-did';\n\nconst builder = DIDDocumentBuilder.create('did:key:z6Mkabcd...');\n\n// Add verification methods\nbuilder.addVerificationMethod({\n  id: `${did}#keys-1`,\n  type: 'Ed25519VerificationKey2020',\n  controller: did,\n  publicKeyMultibase: 'z6Mkabcd...',\n});\n\n// Add services\nbuilder.addService({\n  id: `${did}#linked-domain`,\n  type: 'LinkedDomains',\n  serviceEndpoint: 'https://example.com',\n});\n\n// Build the document\nconst didDocument = builder.build();\n```\n\n### Building DID Strings\n\nUse the `DIDStringBuilder` to construct DID strings.\n\n```typescript\nimport { DIDStringBuilder } from '@blockialabs/ssi-did';\n\nconst didString = DIDStringBuilder.create('key')\n  .withMethodSpecificIdentifier('z6Mkabcd...')\n  .withFragment('keys-1')\n  .build();\n\nconsole.log('DID:', didString); // did:key:z6Mkabcd...#keys-1\n```\n\n## DID Method Implementation\n\n### Creating Custom DID Methods\n\nImplement the `IDIDMethod` interface for custom DID methods.\n\n```typescript\nimport { IDIDMethod, IDIDDocument } from '@blockialabs/ssi-did';\n\nclass CustomDIDMethod implements IDIDMethod {\n  async create(options: any): Promise<{ did: string; didDocument: IDIDDocument }> {\n    // Implementation for creating DID\n    const did = `did:custom:${generateIdentifier()}`;\n    const didDocument = {\n      '@context': 'https://www.w3.org/ns/did/v1',\n      'id': did,\n      // ... other document properties\n    };\n    return { did, didDocument };\n  }\n\n  async update(did: string, document: IDIDDocument): Promise<IDIDDocument> {\n    // Implementation for updating DID document\n    // ... update logic\n    return updatedDocument;\n  }\n\n  async resolve(did: string): Promise<{ didDocument: IDIDDocument; metadata: any }> {\n    // Implementation for resolving DID\n    // ... resolution logic\n    return { didDocument, metadata: {} };\n  }\n}\n```\n\n### Registering Custom Methods\n\nRegister your custom DID method with the registry.\n\n```typescript\nconst customMethod = new CustomDIDMethod();\nmethodRegistry.register('custom', customMethod);\nresolverRegistry.register('custom', customMethod);\n```\n\n## Verification and Validation\n\n### DID Document Verification\n\nUse the `DIDDocumentVerifier` to verify DID documents.\n\n```typescript\nimport { DIDDocumentVerifier } from '@blockialabs/ssi-did';\n\nconst verifier = new DIDDocumentVerifier();\n\n// Verify document\nconst isValid = verifier.verify(didDocument);\n```\n\n## Building\n\nRun `nx build ssi-did` to build the library.\n\n## Running unit tests\n\nRun `nx test ssi-did` to execute the unit tests via [Jest](https://jestjs.io).\n\n## Running lint\n\nRun `nx lint ssi-did` to check if there are lint errors.\n\nSee [LICENSE](../../LICENSE).\n","readmeFilename":"README.md"}