upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/45.md
diff options
context:
space:
mode:
Diffstat (limited to '45.md')
-rw-r--r--45.md26
1 files changed, 19 insertions, 7 deletions
diff --git a/45.md b/45.md
index a525391..998b952 100644
--- a/45.md
+++ b/45.md
@@ -4,7 +4,7 @@ NIP-45
4Event Counts 4Event Counts
5-------------- 5--------------
6 6
7`draft` `optional` `author:staab` 7`draft` `optional`
8 8
9Relays may support the verb `COUNT`, which provides a mechanism for obtaining event counts. 9Relays may support the verb `COUNT`, which provides a mechanism for obtaining event counts.
10 10
@@ -16,24 +16,36 @@ Some queries a client may want to execute against connected relays are prohibiti
16 16
17This NIP defines the verb `COUNT`, which accepts a subscription id and filters as specified in [NIP 01](01.md) for the verb `REQ`. Multiple filters are OR'd together and aggregated into a single count result. 17This NIP defines the verb `COUNT`, which accepts a subscription id and filters as specified in [NIP 01](01.md) for the verb `REQ`. Multiple filters are OR'd together and aggregated into a single count result.
18 18
19``` 19```json
20["COUNT", <subscription_id>, <filters JSON>...] 20["COUNT", <subscription_id>, <filters JSON>...]
21``` 21```
22 22
23Counts are returned using a `COUNT` response in the form `{"count": <integer>}`. Relays may use probabilistic counts to reduce compute requirements. 23Counts are returned using a `COUNT` response in the form `{"count": <integer>}`. Relays may use probabilistic counts to reduce compute requirements.
24In case a relay uses probabilistic counts, it MAY indicate it in the response with `approximate` key i.e. `{"count": <integer>, "approximate": <true|false>}`.
24 25
25``` 26```json
26["COUNT", <subscription_id>, {"count": <integer>}] 27["COUNT", <subscription_id>, {"count": <integer>}]
27``` 28```
28 29
29Examples: 30## Examples:
30 31
31``` 32### Followers count
32# Followers count 33
34```json
33["COUNT", <subscription_id>, {"kinds": [3], "#p": [<pubkey>]}] 35["COUNT", <subscription_id>, {"kinds": [3], "#p": [<pubkey>]}]
34["COUNT", <subscription_id>, {"count": 238}] 36["COUNT", <subscription_id>, {"count": 238}]
37```
35 38
36# Count posts and reactions 39### Count posts and reactions
40
41```json
37["COUNT", <subscription_id>, {"kinds": [1, 7], "authors": [<pubkey>]}] 42["COUNT", <subscription_id>, {"kinds": [1, 7], "authors": [<pubkey>]}]
38["COUNT", <subscription_id>, {"count": 5}] 43["COUNT", <subscription_id>, {"count": 5}]
39``` 44```
45
46### Count posts approximately
47
48```
49["COUNT", <subscription_id>, {"kinds": [1]}]
50["COUNT", <subscription_id>, {"count": 93412452, "approximate": true}]
51```