The public face of the auths witness network: a public directory of witnesses and a read-only operator console, built to render proofs, not claims — every figure on the page is re-verified in your own browser, so nothing is taken on the server's word.
Two surfaces:
/directory— the public directory of witness operators./node— a single node's console (health, signed build attestation, metrics).
This app bundles none of the auths protocol code. It talks to a running witness
node — part of the auths platform — over plain HTTP, and re-verifies every signed
payload in the browser with the published @auths-dev/verify
package (a WebAssembly build of the platform's own verifier). The node is an untrusted
data source; trust comes from the in-browser verification, never from the connection.
- The console reads a node's
GET /healthandGET /build. - The directory loads a signed
directory.jsonand verifies each entry client-side.
The node itself comes from the auths platform → https://github.com/auths-dev/auths.
Stand one up from the platform repo's deploy/witness/ quickstart (the node binary ships with the platform).
- Node.js 20+ and npm.
- (Only for live console data) Docker + the auths CLI (witness build) to run
the platform's
deploy/witness/quickstart. See the auths repo.
npm install
npm run dev # → http://localhost:3000Open http://localhost:3000/directory and http://localhost:3000/node.
Because the UI only shows what it can verify, it starts empty until you give it data:
- Directory: place a signed
directory.jsonat the web root (public/directory.json). - Console: start a node (the platform's
deploy/witness/quickstart →http://localhost:3331) and, if it runs elsewhere, setNEXT_PUBLIC_NODE_BASE_URLto its base URL (defaulthttp://localhost:3331).
Standard Next.js (15.x):
npm run build
npm start # production serverIt's a static-first, read-only verifier UI with no server-side secrets, so it deploys
anywhere that runs Next.js — Vercel, a Node host, or a container — and is CDN/edge-friendly.
Because verification happens in the browser, the host is untrusted by design: it only
serves the app and the signed directory.json. The single runtime setting is
NEXT_PUBLIC_NODE_BASE_URL (the witness node the console points at).