JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 356
  • Score
    100M100P100Q92486F
  • License Apache-2.0

DID document resolution for PEAC receipt verification (did:key, did:web)

Package Exports

  • @peac/adapter-did
  • @peac/adapter-did/package.json

Readme

@peac/adapter-did

DID document resolution for PEAC receipt verification. Supports did:key with zero network I/O.

Installation

pnpm add @peac/adapter-did

What 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🔑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🔑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.

Docs | GitHub | Originary