Skip to content

Support NIP-67 EOSE completeness hints - #150

Merged
mattn merged 1 commit into
fiatjaf:masterfrom
mattn:feat/nip67
Sep 10, 2026
Merged

mattn merged 1 commit into
fiatjaf:masterfrom
mattn:feat/nip67

Conversation

@mattn

@mattn mattn commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Add the optional third element to EOSE messages so clients know whether to keep paginating:

  • finish when the storage channel was fully drained (definitive)
  • more when extra matching events were proven to exist
  • omitted when stopping exactly at the limit is ambiguous (the storage may have capped the query) -- per the spec, absence is not definitive

Advertise NIP-67 in the default NIP-11 document.

@fiatjaf Could I get maintainer permissions for go-nostr?

Add the optional third element to EOSE messages so clients know whether
to keep paginating:

- "finish" when every filter was provably drained
- "more" when extra matching events were proven to exist
- omitted when stopping exactly at the limit is ambiguous (the storage
  may have capped the query) -- per the spec, absence is not definitive

A filter is not counted as finished when it was never queried
(LimitZero) or when the query failed, since in neither case do we know
what the relay holds. Events past the limit that skipEventFunc would
drop are not reported as "more": the client could never fetch them.

Advertise NIP-67 in the default NIP-11 document.
@mattn
mattn merged commit 3f88d23 into fiatjaf:master Sep 10, 2026
1 check passed
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