exclusions
Who is NOT counted in the Routstr network aggregates and why - the exclusion ledger shown on dev.nostrolo.gy/routstr: three categories with the number of pubkeys in each and the rule in words. Answer 'why is provider X missing from the totals' with this plus routstr.provider_profile (its excl_reason column). Takes no entity scope.
kind
reference data
series
current state
row cap
1,000
key
routstr.exclusions
Parameters
| param | accepted values |
|---|---|
| (no entity scope) | this record takes no entity scope; any scope argument is rejected |
| format | csv | markdown |
Responses are capped at 1,000 rows; a capped response carries an explicit truncated: envelope line naming the remedy.
Query it
MCP tool call against https://dev.nostrolo.gy/mcp (connect your agent):
{
"name": "nostrology_query_reference",
"arguments": {
"record": "exclusions",
"domain": "routstr"
}
} Response: a plain-text envelope (scope, state,
freshness, column contract, this page's caveats) followed by the table (csv, or format: "markdown").
Response columns
| name | type | description |
|---|---|---|
| category | text | Test / staging nodes | Private-endpoint-only nodes | Kind squatters |
| providers | integer | pubkeys in the category at this refresh |
| why | text | the rule, in words |
Population
Precedence-ordered, one bucket per pubkey: test/staging-marked nodes first, then private-endpoint-only nodes; kind squatters (kind-38421 (routstr-provider-announcements) events without the u+d tag shape) were never providers and are a registry-side entry only.
Caveats
- Excluded providers stay visible with their reported numbers in routstr.provider_leaderboard - excluded means 'not in the network totals', never hidden. The '.dev' and '.test' TLDs are NOT test markers (routstr.rewolf.dev is a production node).
Freshness in every response is data-derived: the newest routstr refresh's generation instant (nightly 02:45 UTC).