Live edition loading…

PXke Algorand

Independent daily coverage of the Algorand ecosystem — verified reporting on wallets, DeFi, NFTs and infrastructure, fact-checked on-chain before it publishes.

← Latest stories

Algorand team GoPlausible donates universal DID resolver to standards body DIF

· · · · · ·

Algorand team GoPlausible donates universal DID resolver to standards body DIF

In mid-May, the Decentralized Identity Foundation (DIF) — the industry body where companies and projects collaborate on decentralized identity standards — used its newsletter to float an uncomfortable possibility: that its long-running Universal Resolver, the shared reference service that turns decentralized identifiers into documents applications can verify, might simply be retired, 'unless it becomes clear that our members actually need it.' Since then the question has been answered with a rebuild. DIF's own account has pointed readers to thisDID — 'handling supported methods directly and proxying other requests to known resolvers' — and the project's README states plainly that it was built and donated to DIF by GoPlausible, a team whose own identity infrastructure lives on Algorand.

The donation matters beyond standards housekeeping. A universal resolver is the plumbing that lets a credential-checking application accept identifiers anchored anywhere — a domain, a blockchain, a name service — without integrating each source separately. Algorand is not a bystander: did:algo and did:nfd are among the resolver's featured entries.

One endpoint for every flavor of identity

A decentralized identifier (DID) is a string defined by the World Wide Web Consortium (W3C), the web's main standards body: did:web:example.com, did:key:z6Mk..., did:algo:uti7paas... Each resolves to a DID document, a machine-readable record holding public keys and service endpoints — the raw material for checking signatures and verifiable credentials, digitally signed attestations. The method segment names where the identifier lives and how to fetch that document, and an application wanting to accept DIDs from several ecosystems historically had to wire up each method's resolution logic on its own.

thisDID collapses that work into one HTTP call. Its landing page advertises '70+' supported methods — its own published list names 68 — of which 24 resolve inside the service through isolated TypeScript driver programs running at the edge on Cloudflare's network, compute distributed across data centers close to users (42 regions, by the site's count), with the long tail routed upstream. Every response is normalized into a single W3C-conformant document carrying signed resolution metadata. The API implements DIF's Universal Resolver HTTP binding — an agreed URL shape, GET /1.0/identifiers/{did}, that any conformant client already knows how to call; the documentation's own example is did:web:identity.foundation. Discovery, health, analytics and a live resolution feed sit alongside it, plus a /mcp endpoint implementing Model Context Protocol, the open standard for wiring tools into AI agents — an agent could resolve DIDs mid-workflow without custom glue.

Inside the routing engine

The site's tagline, 'The universal resolver that thinks before it routes,' describes a four-step pipeline: parse and classify the identifier; weigh latency, trust and freshness in a rules engine; dispatch to the matching driver, several in parallel where that helps; and return the signed, normalized result.

ConceptReal-world implication
GoPlausible — Algorand-native worker; first hop for did:algo and did:nfd, with godiddy and archon as fallbacksAlgorand identifiers resolve through a specialist driver rather than a general-purpose upstream
Godiddy (Danube Tech) — hosted Universal Resolver and registrar APIAbsorbs most methods that need an upstream driver
Archon — runs the iden3 and did:cid driversFirst hop for Polygon's iden3 zk-identity method; final fallback elsewhere

New drivers ship under what the README calls a verification guarantee: wherever an independent upstream can resolve the same method, every resolution is double-checked in parallel until the driver's live match rate earns graduation, and methods no upstream serves are stamped unverified. The public feed shows both outcomes — a did:cheqd identifier resolved locally with its cross-check marked 'match', and a did:ebsi resolution flagged 'mismatch'. A separate probe worker runs canary resolutions against every route every five minutes; on August 31 the status page listed every provider up, with success rates between 0.997 and 1.0.

The Algorand on-ramp

did:algo resolves Algorand on-chain identifiers, and the live feed shows it handling assets as well as accounts: identifiers built on the did:algo:mainnet:asa: pattern resolved successfully throughout the sampled window, including the asset ID behind USDC, the dollar stablecoin. did:nfd resolves names from NFDomains, Algorand's .algo name service mapping human-readable names to chain addresses, into identity documents.

Tested on August 31, the API documentation's example identifier — did:algo:uti7paas..., a full Algorand address — resolved in 332 milliseconds through the GoPlausible upstream, and the USDC asset identifier resolved in 400 milliseconds. The example address is not arbitrary: it is the deposit account behind the goplausible.algo NFD, registered in June 2023, holding 1,544.13 ALGO and 40,283.56 USDC across 197 assets. The builder resolved its own identity first.

One rough edge: the site's featured did:nfd example, did:nfd:thisdid.algo, returns a 404, and no such name exists in the NFD directory. The service's own showcase name does not resolve.

Reading the metrics honestly

The landing page claims a median resolve under 200 milliseconds and 99.98% global uptime. The day-range analytics snapshot supports half of that: thisDID's own in-Worker drivers averaged 198 milliseconds, but upstream routes ran slower — 477 milliseconds through GoPlausible, 488 through godiddy and 1,471 through archon — dragging the overall average to roughly 700 milliseconds. Median and average measure different things, so the claim describes the local fast path rather than the whole service. GoPlausible carried the largest routed share in the same snapshot, 179 resolutions.

Success rates need similar unpacking. The dashboard reports 253 successful resolutions out of 285 (88.8%), while the underlying JSON endpoint reports 248 of 280 (88.6%) — the two surfaces disagree slightly, and the dashboard also displays a setup notice, 'Analytics storage isn't bound yet,' beside its figures. Most failures, moreover, are notFound errors: DIDs that simply do not exist, such as the did:web identifiers for a German memorial site that top the live error feed. A resolver correctly reporting an absent identifier is not the same as the resolver failing.

Traffic is real but modest. The day-range timeline shows between 1 and 39 resolutions per day across the first three weeks of July, peaking at 39 on July 7. A longer-range query tells a stranger story: 59,468 requests on August 14 alone, 33,262 of them notFound — the profile of an automated scan — and a country split led by the United States (52,379) and Austria (15,385). The analytics are coarse by design, with no IPs, no cookies and country-level geography only, and the ranges themselves behave oddly: the 'day' snapshot's timeline runs from July 1 to July 21.

A donation with a test attached

The code lives under DIF's own GitHub organization as decentralized-identity/thisdid, under the permissive Apache-2.0 license, last pushed on August 28 with a commit updating research on 'Wave 6 method candidates' — more methods in the pipeline. Traction is thin so far: the repository has a single star, and top contributor emg110 accounts for 73 contributions. DIF's June newsletter described 'an overhaul of DIF's instance of the Universal Resolver' and named did:webvh and did:webplus as recommended methods; a further update was teased for August.

What happens next turns on the variable DIF itself identified in May: whether members route real traffic through it. The infrastructure is live and observable — status probes, a public feed, an open API — and Algorand's identities now have a named, standards-anchored path into it. For a team that resolved its own account first, the next milestone is someone else's identifier.

Source

Source: https://thisdid.com