Skip to content

DID Examples

Use the DID package when you already have ledger state and need DID Core-compatible output.

Convert ledger state into a DID document

ts
import { LedgerToDomain, MidnightNetwork } from "@midnight-ntwrk/midnight-did";

const didDocument = LedgerToDomain.ledgerStateToDIDDocument(
  ledgerState,
  MidnightNetwork.Preprod,
  contractAddress,
);

Resolve through the in-process resolver helper

ts
import {
  MidnightDIDResolver,
  MidnightNetwork,
} from "@midnight-ntwrk/midnight-did";

const resolver = new MidnightDIDResolver({
  expectedNetwork: MidnightNetwork.Preprod,
  ledgerReader: async (contractAddress) => {
    return readLedgerStateSomehow(contractAddress);
  },
});

const result = await resolver.resolveResult(
  "did:midnight:preprod:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
);

When to use this package

  • in-process resolver implementation work
  • indexer-backed DID resolution
  • ledger-to-domain mapping outside the main API package

Midnight DID reference implementation