@peac/adapter-did
v0.12.6
Published
DID document resolution for PEAC receipt verification (did:key, did:web)
Maintainers
Readme
@peac/adapter-did
DID document resolution for PEAC receipt verification. Supports did:key with zero network I/O.
Installation
pnpm add @peac/adapter-didWhat It Does
@peac/adapter-did is a Layer 4 adapter that resolves W3C Decentralized Identifiers (DIDs) to Ed25519 public keys for use with verifyLocal(). It implements the DID Verification Method Selection Policy (DD-202) for deterministic key extraction.
Supports did:key (Ed25519, zero network I/O) and did:web (caller-provided SSRF-hardened HTTPS fetch). Includes TTL-based caching and composite resolver for multi-method support.
How Do I Use It?
Resolve a did:key and extract the public key
import { DidKeyResolver, extractVerificationKey } from '@peac/adapter-did';
import { verifyLocal } from '@peac/protocol';
const resolver = new DidKeyResolver();
const result = await resolver.resolve('did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK');
const publicKey = extractVerificationKey(result.didDocument!);
const verification = await verifyLocal(receiptJws, publicKey!, {
strictness: 'strict',
});Use a composite resolver for multiple DID methods
import { createCompositeResolver, DidKeyResolver } from '@peac/adapter-did';
const resolver = createCompositeResolver([
new DidKeyResolver(),
// add DidWebResolver here when available
]);
const result = await resolver.resolve('did:key:z6Mk...');Integrates With
@peac/kernel(Layer 0): Error codes (EDID*) and types@peac/schema(Layer 1): Schema validation@peac/protocol(Layer 3):verifyLocal()accepts the extracted public key directly
Supported Key Types
Only Ed25519 keys are extracted. Other key types are silently skipped to prevent key-type oracle attacks. Both multibase encodings from the did:key spec are supported: z (base58btc) and u (base64url).
Standards
- W3C DID Core v1.0 (Recommendation 2022): baseline type model
- did:key (W3C CCG v0.9): method-specific resolution as interoperability adapter
- did:web (W3C CCG draft): HTTPS resolution as interoperability adapter, not a normative dependency
License
Apache-2.0
PEAC Protocol is an open source project stewarded by Originary and community contributors.
