What happened
A did:emp:… was registered on the public testnet via identitySsi.registerDid, from a funded account, and its document read back from the Dids storage — the first identity on the chain. Registration is permissionless; nothing had stopped anyone for months except that nothing worked.
Why it took until 14 September
- The envelope. Until 7 September no client encoded the custom signed extensions, so
registerDid— like every other extrinsic — was rejected with a codec error. The audit had noted 0 DIDs although registration is permissionless as a mystery; it was the two-byte field. - The provider. KryptoOS's issuer and verifier constructed a WebSocket provider without ever calling
connect(). Over WebSocket they had never reached the chain. - The decoder. An audit read polkadot-js's source and concluded the SDK read the DID document's keys from a non-existent field. Tested against a real node on 13 September, the field existed and the "fix" would have broken it. Rule: decode against a node, never infer from the library.
With the three cleared and Phase 3 of the KryptoOS work verified on a local chain at runtime 218, the public registration followed.
What one DID enables
Nothing yet — and everything eventually. Compliance checks, fee discounts for verified humans, credentialed paymaster sponsorship, device attestation and regulated-asset holder rules all read pallet-identity-ssi. A single DID proves the path; a hundred will find its gaps.
What is still not there
A publicly deployed issuer, verifier or resolver (the hosts older docs named do not resolve). The did:emp method registered in the public DID registry. A second DID from someone outside the team. Real zero-knowledge selective disclosure (the earlier module leaked the secret and was deleted).
Tickets
The page this replaces sold tickets to another ecosystem's conference. Registering a DID on EmpoorioChain costs a transaction fee of about 0.000025 DMS and requires no ticket — only a client that knows the envelope.
Based on the KryptoOS Phase 3 verification (2026-09-13) and the runtime 220 notes.


