Skip to content

[REQUEST] Filtering by tags with empty string value #259

Closed

Description

@heguro

Pledge
10000 sats

Is your feature request related to a problem? Please describe.
I wanted to search for events having tag ["d", ""] by using the filter {"#d": [""]}.
Currently this is rejected with the error invalid: "[2].#d[0]" is not allowed to be empty by this line (I think):

https://github.com/Cameri/nostream/blob/f23740073f6b59b230157528376a89ca44af3f27/test/unit/schemas/event-schema.spec.ts#L123

Describe the solution you'd like
Support for filtering tag value by "".

Additional context

  • I could use this filter in nostr-rs-relay.
  • You can see NIP-23 posts (kind:30023) and NIP-58 badges (kind:30009) having tag ["d", ""] at wss://nostr-pub.wellorder.net.
    • Send ["REQ", "subId", { "#d": [""] }] to the relay with Nostr Playground or other tool to see some cases.
  • There was a bug that d tag of some badges created with non-English name become empty string in badges.page. This is fixed, but some badges with tag ["d", ""] have already been published.

Activity

  1. kanishka0411 commented on Apr 26, 2026

    @kanishka0411
    Contributor

    Opened #583 for this. Kept it small-just removed the min(1) on the generic-tag catchall so {"#d":[""]} validates. ids/authors still reject empty strings. The matcher and SQL query already handled empty tag values fine, so this just lines validation up with what the rest of the code was already doing. Added tests at the schema, matcher, and query layers.

  2. cameri commented on Apr 26, 2026

    @cameri
    Owner

    Thank you @kanishka0411 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions