> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.adid.dev/llms.txt.
> For full documentation content, see https://docs.adid.dev/llms-full.txt.

# DID Resolve Sequence

**Used in:** §3.1.9 Universal DID Resolver, §9.3 DID endpoints
**Audience:** Holder, Verifier, Backend Developer
**IA ID:** D2 detail

```mermaid
sequenceDiagram
  autonumber
  participant Resolver as Caller (any client)
  participant API
  participant DB
  participant DIDRegistry

  Resolver->>API: GET /api/v1/dids/resolve/{did}
  alt did:adi
    API->>DB: SELECT cached DID document
    alt cache miss or stale
      API->>DIDRegistry: resolveDID(did)
      DIDRegistry-->>API: didDocument, owner, created, updated, deactivated
      API->>DB: UPSERT cached doc
    end
  else did:key
    API->>API: Decode multibase pubkey, derive document
  else did:web
    API->>API: HTTPS fetch /.well-known/did.json
  else did:ethr
    API->>API: ENS / ERC-1056 lookup
  end
  API-->>Resolver: 200 { didDocument, didDocumentMetadata, didResolutionMetadata }
```

**Reading guide:** The universal resolver endpoint is **public** (no auth) per `router.go:74`. Off-chain caches in DB are best-effort; the chain remains the source of truth for `did:adi`.

***