Metrics / nutzaps / mint_activity

mint_activity

Nutzap payments and sats per (UTC day, mint) - the per-mint daily ledger behind the 'Cumulative sats by mint' chart of nostrolo.gy/nutzaps/mints (that chart = the top mints by sats over the window, from nutzaps.mint_leaderboard, each with the running sum of its sats here).

unit

payments+sats

grain

day (UTC)

series

sparse, full history

key

nutzaps.mint_activity@day

Parameters

paramaccepted values
grainday - default day (omit to get the default)
fromoptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for the series start
tooptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for today UTC (that day still in progress)
mint_urloptional Cashu mint URL as nutzaps.mint_leaderboard lists it (e.g. https://mint.minibits.cash/Bitcoin); narrows rows to that mint. Scheme and host case, a default port and a trailing slash are normalized and a URL with no scheme is read as https, but the PATH is case-sensitive; an excluded (test or private) mint returns no rows
formatcsv | markdown

Query it

MCP tool call against https://nostrolo.gy/mcp (connect your agent):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "mint_activity",
    "domain": "nutzaps",
    "grain": "day"
  }
}

Windowed (inclusive UTC days; both optional):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "mint_activity",
    "domain": "nutzaps",
    "grain": "day",
    "from": "2026-07-01",
    "to": "2026-07-31"
  }
}

Response: a plain-text envelope (window, freshness, column contract, this page's caveats) followed by the data table (csv, or format: "markdown") at day grain.

Response columns

nametypedescription
utc_daydateUTC calendar day
mint_urltextthe mint's normalized URL - the value the mint_url filter takes
paymentsintegerpayments on this mint that day
satsintegersats those payments carried

What is counted

The population is the kind-9321 (nutzaps) PAYMENTS in this archive (NIP-61 (nutzaps): zaps whose value moves as Cashu ecash inside the event) - events carrying at least one Cashu proof in a `proof` tag, valued as the sum of those proofs in sats (never the `amount` tag, which was often millisats). Events without such a proof (the 2024 draft format, encrypted payloads, bare cashu tokens, zero-ecash events) are not payments. Test and private mints are excluded: hosts a recipient elsewhere cannot reach (loopback, private-network and other non-public names) and public test mints reviewed as running a fake Lightning backend or no longer running; any other mint counts, reviewed or not. A mint_url filter narrows within this population, so an excluded mint returns no rows. This is exactly the population nostrolo.gy/nutzaps draws.

Caveats

  • Responses are capped at 2,000 rows with an explicit truncated: line; pass from/to or mint_url to keep a response small.
  • The page's charts cover the trailing 365 days on a TIMESTAMP cutoff, so their oldest day (or month) is partial; compare from the day after it.
  • The mint_url column is the mint's normalized URL (lowercase scheme and host, no default port, no trailing slash, PATH CASE KEPT - https://mint.minibits.cash/Bitcoin and /bitcoin are different mints); it is what the mint_url filter takes, and it is third-party text copied from the senders' `u` tags.
  • Values are sats, not millisats: the proof amounts summed as sats. Every keyset behind them that could still be resolved is a sat keyset; some mints no longer serve theirs, so a unit is inferred there, never read.
  • The event time (created_at) is sender-declared and unverified, as everywhere in Nostr; days are UTC calendar days of it.
  • The series ends at as_of, and the most recent day may be absent rather than empty - a day appears once its events are in the archive; with no 'to', the final day is still accumulating.
  • For each day the rows sum to nutzaps.payment_activity@day. Series is sparse: a (day, mint) row exists only where that mint carried a payment that day.

Freshness in every response is data-derived: latest kind-9321 (nutzaps) event time.