derivationBLAKE3("agid:v1:"‖domain‖input)
cross-platformidentical id · x86-64 / ARM / Pi / WASM
domains6 · separated by protocol prefix
throughput1.14 GiB/s @1 KiB · 6.13 GiB/s @64 KiB
footprintno_std · zero heap on hot path
conformancecross-language vectors + Python witness
open & verifiable
No server. No randomness.
A pure function (domain, input) → 32 bytes, dual-licensed MIT / Apache-2.0. Domain separation is a security property: a User id can never equal a Document id from the same bytes. Wire form is a W3C DID URI ABNF-conformant string.
what a did is not
A name, not a credential.
It proves nothing about who computed it; do not use equality as proof of possession. Not constant-time. No deletion or rotation — a low-entropy input becomes a stable pseudonym forever (wrap under a deployment secret). Not yet a registered W3C DID method — registration is on the roadmap.