Skip to main content

atproto stats for nerds

Fresh statistics from the AT Protocol's PLC directory, the public ledger where every did:plc identity is registered.

A did:plc identity isn't the same as a human user. DIDs get created for infrastructure nodes (like Tangled's relay knots), bots, and spam accounts too, and the PLC directory doesn't distinguish between any of them. Unless a chart says otherwise, all numbers below count raw identity registrations, not individual people.

Total identities
129.6M 
Reachable
46.4M 
Active PDS providers
3.5K13.5K all-time
Last updated
2026-11-13 

Cumulative identity (did:plc) growth

Daily new identities (last 90 days)

Cumulative PDS provider growth

Every independent PDS host that has registered at least one identity. The latest value is the all-time number in the card above. Many of these hosts are no longer online: the card also shows how many respond today. Leaves out Bluesky's own servers and invalid entries such as private network addresses.

Current accounts per provider

Estimated current hosting: originations on each provider plus accounts that migrated in, minus accounts that migrated out. "Other / Junk" covers mass-registration spam hosts like pds.trump.com.

→→→
72.2M
→→→
55.2M
44.3K
41.8K
40.2K
8.8K
7.4K
6.5K
2.0K
1.9K
838

Independent providers scaled to 44.3K. Bluesky and Other / Junk not to scale (→→→).

ProviderEst. current accountsShare
Bluesky72,215,11556.6%
Other / Junk55,168,09043.3%
Blacksky44,3150.0%
Eurosky41,7790.0%
Tangled40,1580.0%
Sprk8,7780.0%
Gems7,4130.0%
surf.social6,4890.0%
selfhosted.social2,0480.0%
Northsky1,8550.0%
npmx.social8380.0%

Top 200 PDS providers by sign-ups

Counts where each identity was originally created (genesis operations), not current hosting. Accounts that later migrated to a different provider are still counted here under their original PDS. Invalid entries such as private network addresses are left out.

Reachability data as of 2026-11-10, checked periodically, not updated daily.

PDSIdentitiesShareReachable
Bluesky (bsky.social + *.bsky.network)72,239,49955.7%64%
https://pds.trump.com53,857,96241.541%0%
https://wallets.tz2at.store217,7970.168%0%
https://bbi.to120,8890.093%0%
https://atproto.brid.gy117,5050.091%50%
https://pds.polymarket.social104,3200.081%0%
https://social.kabcash.com79,4240.061%0%
https://pds.wsocial.network54,5090.042%90%
https://blacksky.app40,6170.031%32%
https://fmpds.cacheblasters.com36,6730.028%0%
https://contracts.tz2at.store31,1160.024%0%
https://pds.federdeck.com24,7590.019%0%
https://eurosky.social24,3190.019%94%
https://social.selting.website21,1710.016%0%
https://bsky.global20,7720.016%0%
https://nacg.club20,2480.016%0%
https://klatch.app19,6550.015%0%
https://goodmkt.id19,1940.015%26%
https://tdpl.io16,2000.013%100%
https://certified.one15,1910.012%100%

200 results · page 1 of 10

PDS provider migrations

Net change in accounts per provider per month, counting provider switches only, new signups are excluded. Positive = more accounts moved in than out. Bluesky internal shard reassignments are not counted.

BlueskyEuroskyBlackskySelf-hostedNorthskyPositive = net gain, negative = net loss

Migration flows

Accounts that switched providers, not net new signups. Each row is one provider-to-provider migration route.

ProviderGainsLossesNet
Eurosky+16,570-234+16,336
Blacksky+3,956-265+3,691
Self-hosted+3,060-527+2,533
Northsky+1,687-43+1,644
selfhosted.social+231-83+148
npmx.social+117-18+99
Sprk+6-15-9
Gems+0-22-22
Tangled+13-45-32
Bluesky+383-24,772-24,389

Methodology

What is the PLC directory?

The Public Ledger of Credentials is the registry where AT Protocol identities are created. Every did:plc identity has a signed genesis operation recorded here. The directory is currently operated by Bluesky PBC, with plans to transfer to an independent organization.

What is a PDS?

A Personal Data Server stores your AT Protocol data: posts, profile, follows, and more. Bluesky runs the largest PDS cluster (the mushroom-named servers like morel, cortinarius, etc.), but anyone can run their own.

What does "reachable" mean?

Each month we take a random sample of accounts currently hosted on every provider with 10 or more identities. The sample grows with provider size, from 3 accounts for small providers up to 200 for the largest. For each sampled account we check whether the username resolves back to the DID through an AT Protocol identity lookup. If it does, the account is functional. Note that this measures accounts hosted on a provider right now, while the table counts identities by the provider where they were created. Most unreachable identities come from spam hosts that mass-register DIDs with no real content, such as pds.trump.com at 0% reachable. Other causes include deleted or suspended accounts, providers that went offline, and DIDs that were never fully set up.

How is this data collected?

We crawl the PLC directory's public export API (plc.directory/export) incrementally, tracking new identity registrations per PDS provider and detecting when accounts switch providers. Provider migrations are identified by comparing consecutive PLC operations for the same DID: only cross-provider moves are counted; Bluesky internal shard reassignments are invisible at this level. Once a month, we sample accounts currently hosted on each provider and resolve their usernames through the public AT Protocol identity API.

Why are there gaps in the chart?

The numbers track the PLC directory exactly, so an upstream outage shows up as a dip. From about 10 to 20 July 2026 the directory logged roughly ten times fewer new identities than usual across the whole network, and the single highest-volume PDS recorded none at all, before creation returned to its normal rate. We leave these dips in place: they reflect the public ledger as it stands, not a gap in our own collection.

Where do the active PDS counts come from?

Live online/offline counts are pulled at build time from mary-ext/atproto-scraping, which probes every known PDS endpoint regularly and drops hosts that have been silent for more than 14 days. We count only the third-party servers on that list, not Bluesky's own. The all-time count is much larger because it includes every independent host that has ever registered an identity in the PLC directory, and many of those have since gone offline. Both counts leave out Bluesky's own servers and invalid entries, such as private network addresses and local test setups that ended up in the directory.

Why do these numbers differ from other trackers?

This page shows two kinds of numbers. The total identity count, around 129 million in November 2026, covers every did:plc ever registered, including bots, spam, and deleted or suspended accounts. About 72 million of those were created on Bluesky's own servers, and pds.trump.com alone accounts for roughly 53 million mass-generated bot identities. The Reachable card, around 46 million, is our estimate of accounts that work today, meaning the handle resolves. We base it on monthly samples of current accounts per provider. That estimate lands close to the roughly 47 million users on Jaz's Bluesky statistics. Bluesky's own reported active user numbers, which Backlinko cites at around 33 to 36 million in early 2026, sit lower again because they measure active use, not working accounts. These are different questions and all of them are valid. Totals show the network including its spam problem. Reachable shows accounts that work.

Source code

The collection scripts are open source at tangled.org/gui.do/atproto-plc-counter. Full transparency on how the data is gathered.

⌂