Reference implementation · v0.1

Resolver Playground

Run the reference implementation rather than reading pseudocode. Generate keys locally, publish signed DID operations, and independently verify the resulting history in the browser.

Informative · v0.1Updated 22 August 2026

One implementation core

Inspect every boundary.

The playground is intentionally transparent: inputs and derived JSON stay visible, protocol failures keep their error codes, and directory responses are verified instead of trusted. Start with the normative vector, then create a fresh identity and drive its lifecycle through signed operations.

Browser-held keys

Creation, rotation, recovery, and deactivation are signed locally with Web Crypto. The reference node receives signed public records, never private keys.

Persistent reference directory

This deployment accepts valid reference writes into an append-only operation log and exposes every published DID through the v0.1 /.well-known/sizuq/did/…/operations read profile.

Specification stays authoritative

The write API is a non-normative reference implementation surface. The normative v0.1 specification defines record validity and the interoperable read profile.

Protocol package

@sizuq/protocol

The package currently lives in the protocol repository as a private v0.1 package while its external package namespace and public API stabilize. Browser writer helpers and server verification use the same core, so publication later does not require a second implementation.

Implementer Guide → · Conformance & Test Vectors →

import {
  createCreationRecord,
  createDirectoryResolver,
  createOperationRecord,
} from "@sizuq/protocol";

const resolve = createDirectoryResolver({ endpoint: "https://sizuq.org" });
const result = await resolve("did:sizuq:z75o3Y...");

Workbench

Run the protocol.

All five tools below use the reference package. No product account, sizuq.com database, or application session is involved; the reference node uses its own protocol persistence boundary.

01

Normative vector

Recompute the v0.1 identity root and creation-record digest, verify the published Ed25519 signature, and derive the DID Document using the same package imported by this page.

Run the normative vector to verify the core implementation in this browser.
02

Resolve operation history

Edit the JSON directly. Signature, genesis digest, sequence, predecessor hashes, key authority, and state transitions are checked locally; invalid histories fail closed.

Paste or edit an operation history, then resolve it locally.
03

Parse sq:

Inspect scheme normalization, identity root, resource path, query, fragment, and the canonical primary identifier before any dereferencing occurs.

Parse an sq: URI without making a network request.
04

Live directory resolution

Fetch the interoperable operation-array representation from a directory node, then independently verify it in the browser. Leave Directory endpoint empty to use this deployment’s reference node.

Resolve through the reference directory endpoint over HTTP, then verify locally.
05

Writable identity lifecycle

Generate Ed25519 rotation and recovery keys locally, sign a creation record in this browser, and submit only the signed public record to the non-normative reference write API. Private keys remain in memory and disappear when this tab is refreshed.

Create a fresh browser-held identity, then append signed lifecycle operations to this reference node.