Algorand Foundation among 37 verified .algo.xyz handles on NFDomains' Bluesky board
From 58-Character Addresses to @foundation.algo.xyz
When the Algorand Foundation posts on Bluesky, its account reads @foundation.algo.xyz — not a generic .bsky.social handle, but a name whose ownership is recorded on the Algorand blockchain. That handle is the visible face of an integration NFDomains launched with a one-line greeting — 'GM, Bluesky!' — on Nov 18, 2024, and which has since matured into a live, publicly ranked feature: the platform's Bluesky leaderboard counts 37 verified .algo.xyz handles, sorted by follower count, with the Foundation sitting at number two.
NFDs — non-fungible domains — are Algorand's name service: human-readable .algo names registered as [on-chain](/glossary/on-chain "Describes transactions that are recorded and permanently stored on a blockchain ledger, making them publicly visible and tamper-resistant.") assets, built for the friction of 58-character wallet addresses that are secure but impossible to memorize or type safely. Each NFD is its own smart-contract instance with a vault account it controls, stores metadata ranging from avatars to verified social links, and doubles as a working domain, because every name is resolvable with a .xyz suffix appended. That dual nature is the bridge the Bluesky integration is built on: the same asset that names a wallet can name a social account.
A Launch That Landed
The feature arrived with immediate community energy. Within days of the how-to thread, one early adopter's handle switch was championed as 'leading from the front by using her .algo.xyz domain as her Bluesky handle'; AlgoDirectory announced it had updated its listings to surface NFD verifications, urging listers to use them 'to help mitigate the risk that people are scammed by lookalike impersonation accounts'; and the JAWS project said it was testing $JAWS rewards for content creation with 'the goal to kickstart the Algorand community.' Patrick Bennett, CEO and co-founder of the studio behind NFDs, announced the capability himself, specifying that it required a root NFD at version 3.x or later — segments were not supported at launch. Nine days in, the Algorand Foundation was verified and posting from its own .algo.xyz handle, a signal of institutional adoption.
The momentum has not been universal. Several accounts from that launch window — staci.algo.xyz, marcvl.algo.xyz, alexacarr.algo.xyz, ganainmtech.algo.xyz — no longer resolve through Bluesky's handle lookup, and the platform's own feed flags them 'Invalid Handle.' The mechanism works; individual deployments of it have proven fragile, for reasons the public record does not fully explain (a name transferred, expired, or stripped of its verification would each produce this result).
How an On-Chain Name Becomes a Bluesky Handle
Bluesky, the decentralized social network, lets accounts replace their default handle with any domain they control. Ownership is verified the way the web always verifies domains: the account must publish a DNS TXT record pointing at its DID — a Decentralized Identifier, a globally unique identifier the account owner controls without a central registry. On Bluesky every account has one, of the form did:plc:....
NFDomains turns that flow into a two-way handshake between the Bluesky account and the on-chain name, and the ordering matters: the DID must be verified in the NFD before Bluesky will accept the handle change, so the on-chain binding comes first.
| Step | What happens | Real-World Implication |
|---|---|---|
| Bluesky requests the domain | The user enters their NFD as name.algo.xyz and picks 'no dns panel'; Bluesky replies with the DID value it expects the domain to publish | The account must prove it controls the name before anything changes |
| The NFD stores the DID on-chain | The user pastes that value into the NFD's blueskydid metadata field | The linkage is recorded on Algorand and travels with the name if it is transferred |
| NFDomains auto-publishes the TXT record | On confirmation the platform writes _atproto.name.algo.xyz TXT 'did=did:plc:...' to the .algo.xyz zone | No manual DNS configuration — the record is generated from on-chain state |
| The handle activates | Bluesky checks the record and accepts the new handle | The account reads name.algo.xyz; the documentation's payoff line: 'Your Bluesky handle will now be your NFD!' |
Where the DNS Actually Lives
The mechanism depends on infrastructure the integration is rarely credited with. The .algo.xyz TLD is served by nfd-coredns, an open-source plugin for CoreDNS that answers DNS queries by reading Algorand chain state directly: it strips the .xyz suffix, queries the blockchain for the NFD's stored records, converts the on-chain JSON into standard DNS resource records and returns a normal reply. When a user verifies a Bluesky account, NFDomains automatically adds the _atproto record — no manual DNS configuration needed.
The zone is currently served by two live resolvers — TxnLab's own and Nodely's — and anyone can run their own from the project's Docker image. The repository shows active maintenance rather than a parked launch feature: releases through v0.1.5 (July 10, 2026) cut the default cache to one minute, standardized TTLs, and fixed how differently-owned subdomain NFDs serve as delegated child zones, with the repo pushed as recently as today.
The chain remains the independent record of truth. Querying Google's public DNS for _atproto.foundation.algo.xyz returns the same DID that Bluesky's own handle resolution returns for the account — the on-chain binding and the live handle match end to end, for the Foundation, for NFDomains itself, and for the studio's founder, whose patrick.algo profile lists a verified patrick.algo.xyz and a #7 Bluesky rank.
Adoption Two Years In
The leaderboard's top of the table is a concentration of recognizable ecosystem names: bmcaymanian.algo at 486 followers, the Algorand Foundation at 463, and builder null.algo at 438. The figures are Bluesky's own — the top entry was cross-checked against Bluesky's public API and matches exactly.
Chart: Top .algo names by Bluesky followers (NFD Bluesky leaderboard, Aug 17 2026)
That roster of handles sits inside a registry of 69,766 minted .algo names held by 40,678 unique owners, with 10,429 segments — subdomains — minted beneath them. The Bluesky feature is a small, social corner of that economy, but it is the one with the widest reach beyond Algorand: it is how an on-chain identity gets worn in public, on a platform that reports having grown from 25 million to 41 million users across 2025.
The Decentralization Caveat
For all the on-chain rigor, three caveats deserve attention. First, the trust boundary: Bluesky verifies handles through ordinary DNS, and as noted above the .algo.xyz zone has exactly two operators, one of them the studio that sells the names — the 'auditable on-chain' story is only as independent as the resolvers. That is precisely why the open-source plugin and the on-chain DID record matter as the fallback audit trail rather than decoration. Second, the portability the table above describes cuts both ways: because the _atproto record is generated from the NFD's metadata, whoever controls the name controls the handle's proof — sell the NFD, or lose access to it, and the new owner holds the key to the social identity attached to it. Third, the leaderboard is a self-published platform metric: its entries are the accounts the service chose to rank, and its follower counts come from Bluesky's API, not from the chain.
None of this diminishes what the integration demonstrates — a blockchain name serving as a working, verified social identity on a mainstream network, end to end. The honest description is 'decentralized registry, trusted serving,' with the trust resting on a small number of operators and on continued control of the name itself.
Source
- NFDomains Bluesky profile
- NFDomains Bluesky leaderboard
- Bluesky verification documentation
- nfd-coredns (GitHub)
- Analytics | NFD Docs
- Bluesky Leaderboard | NFD Docs
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=nfdomains.algo.xyz
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=patrick.algo.xyz
- https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=nfdomains.algo.xyz
- https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=nfdomains.algo.xyz&limit=30
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=foundation.algo.xyz
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=jaws.algo.xyz
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=bmcaymanian.algo.xyz
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=directory.algo.xyz
- https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=larkin.algo.xyz
- Native DNS for NFDs | NFD Docs