mirror of
https://github.com/nostr-protocol/nips.git
synced 2026-07-22 07:48:25 +00:00
NIP-91: AND operator for filters (Formerly NIP-119) (#1365)
Co-authored-by: dskvr <dskvr@users.noreply.github.com>
This commit is contained in:
18
91.md
Normal file
18
91.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# NIP-91: AND Operator in Filters
|
||||
|
||||
Enable `AND` within a single tag filter by using an `&` modifier in filters for indexable tags.
|
||||
|
||||
```
|
||||
filters: {
|
||||
"kinds": [1],
|
||||
"&t": ["meme", "cat"],
|
||||
"#t": ["black", "white"]
|
||||
}
|
||||
// returns kind `1` events with `t` tags that have both "meme" and "cat" that have the tag "black" or "white"
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- `AND` **MUST** take precedence over `OR`
|
||||
- Tag values used in `AND` **SHOULD NOT** be used in standard `OR` tags [`#`]
|
||||
- Any tag value used in `AND` **SHOULD** be ignored in `OR`
|
||||
12
README.md
12
README.md
@@ -98,6 +98,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
|
||||
- [NIP-88: Polls](88.md)
|
||||
- [NIP-89: Recommended Application Handlers](89.md)
|
||||
- [NIP-90: Data Vending Machines](90.md)
|
||||
- [NIP-91: AND filters](91.md)
|
||||
- [NIP-92: Media Attachments](92.md)
|
||||
- [NIP-94: File Metadata](94.md)
|
||||
- [NIP-96: HTTP File Storage Integration](96.md) --- **unrecommended**: replaced by blossom APIs
|
||||
@@ -316,6 +317,17 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
|
||||
[marmot]: https://github.com/marmot-protocol/marmot
|
||||
|
||||
|
||||
## Filters
|
||||
|
||||
| kind | description | NIP |
|
||||
| --------------- | -------------------------- | ------------------------ |
|
||||
| `authors` | by pubkey | [01](01.md) |
|
||||
| `ids` | by ids | [01](01.md) |
|
||||
| `kinds` | by kinds | [01](01.md) |
|
||||
| `#{}` | by indexable tag (OR) | [01](01.md) |
|
||||
| `&{}` | by indexable tag (AND) | [91](91.md) |
|
||||
| `search` | by search times | [50](50.md) |
|
||||
|
||||
## Message types
|
||||
|
||||
### Client to Relay
|
||||
|
||||
Reference in New Issue
Block a user