Skip to content

NIP-F5: Population Census - #2453

Open
steve02081504 wants to merge 1 commit into
nostr-protocol:masterfrom
steve02081504:add-nip-f5-population-census
Open

NIP-F5: Population Census#2453
steve02081504 wants to merge 1 commit into
nostr-protocol:masterfrom
steve02081504:add-nip-f5-population-census

Conversation

@steve02081504

@steve02081504 steve02081504 commented Sep 1, 2026

Copy link
Copy Markdown

Adds NIP-F5: Population Census — a generic event kind (30789) for estimating the number of online nodes in a distributed network via probabilistic self-reporting and a Horvitz-Thompson estimator. It is application-agnostic: any mesh/P2P overlay can pick a scope label, and the estimator recovers the online population from sampled events.

The design was first deployed in fount-p2p (discovery/nostr/census.mjs, kind 30789), and this NIP generalizes it so other networks can implement the same census without reinventing it.

Key points:

  • kind 30789, tags t=<scope> / x=census; content is JSON with a single defined field p (inclusion probability)
  • identity is deliberately left open: the NIP does not mandate any identity/signature scheme — implementations may use the event pubkey, an application-level signature, or anything else; readers only require a valid NIP-01 event
  • per-node inclusion probability p, windowed sampling, HT estimator M = Σ(1/p) − 1/p_self + 1
  • no d tag (missing d in addressable range is treated as empty-string address per NIP-01)
  • orthogonal to NIP-45 (event counts) and NIP-66 (relay discovery)

Files changed:

  • F5.md (new)
  • README.md (list + event kinds table row for 30789)

Kind 30789 is also being registered in nostr-protocol/registry-of-kinds#13, alongside the fount-network transport kinds 20787/30787.

@steve02081504
steve02081504 force-pushed the add-nip-f5-population-census branch from 4086f91 to 1eaa8ff Compare September 1, 2026 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant