0xtr on Nostr: Not really possible but that depends on how you define a nostr user. If you define a ...
Not really possible but that depends on how you define a nostr user.
If you define a nostr user as 1 pubkey = 1 user, then you'd have to get all events from all relays in the world and then count all distinct pubkeys. That is obviously impossible because not all relays are available to you. Best case then would be to be able to count all distinct pubkeys from all publicly available relays (requires you to know about all publicly available relays too).
You could also define a user more specifically. E.g. require a published kind 0 event, a nip-05 handle, regular posting, etc. You'd still have to do the same as above only this time with more filtering.
If we drop the "absolute" mindset here, you could narrow the count down to e.g. a certain set of relays (e.g. top 30 relays). That would only give you one view/angle of the number of nostr "users" but at least it would give you a number to work with.
nostr.band probably has the best data on this currently:
https://stats.nostr.band/Published at
2025-02-04 17:33:57Event JSON
{
"id": "23761d435cd0789dfb6ad3a323b248358ff5137205f8bd52681a67c281b0a6be",
"pubkey": "b2d670de53b27691c0c3400225b65c35a26d06093bcc41f48ffc71e0907f9d4a",
"created_at": 1738690437,
"kind": 1,
"tags": [
[
"e",
"c464130d14fcf3a2e4d7cf2549a9063d35a7afbb894a0df61d422e165db255bf",
"nostr-idb://cache-relay",
"root",
"fc994dc4d95efe62e5ed1c84542f40a1f513e2c4bf9953003aa4dfe8ad649b11"
],
[
"e",
"c464130d14fcf3a2e4d7cf2549a9063d35a7afbb894a0df61d422e165db255bf",
"nostr-idb://cache-relay",
"reply",
"fc994dc4d95efe62e5ed1c84542f40a1f513e2c4bf9953003aa4dfe8ad649b11"
],
[
"p",
"fc994dc4d95efe62e5ed1c84542f40a1f513e2c4bf9953003aa4dfe8ad649b11"
],
[
"client",
"noStrudel",
"31990:266815e0c9210dfa324c6cba3573b14bee49da4209a9456f9484e5106cd408a5:1686066542546"
]
],
"content": "Not really possible but that depends on how you define a nostr user.\n\nIf you define a nostr user as 1 pubkey = 1 user, then you'd have to get all events from all relays in the world and then count all distinct pubkeys. That is obviously impossible because not all relays are available to you. Best case then would be to be able to count all distinct pubkeys from all publicly available relays (requires you to know about all publicly available relays too).\n\nYou could also define a user more specifically. E.g. require a published kind 0 event, a nip-05 handle, regular posting, etc. You'd still have to do the same as above only this time with more filtering.\n\nIf we drop the \"absolute\" mindset here, you could narrow the count down to e.g. a certain set of relays (e.g. top 30 relays). That would only give you one view/angle of the number of nostr \"users\" but at least it would give you a number to work with. \n\nnostr.band probably has the best data on this currently: https://stats.nostr.band/",
"sig": "7ce7361e537dfc2af60031c9c89796ae7eae83c2f8621ae16a5beec290c6e79440d3c945258ce59b77e14ff921cc977c4f7305ad67c58fb32b20abb3084f959b"
}