From 75e997e29bc92b9546de9d74bcc8ee755a1252bd Mon Sep 17 00:00:00 2001 From: Logan Johnson Date: Fri, 9 Oct 2026 12:17:34 -0400 Subject: [PATCH] docs(nips): add the oldest-channel rule to NIP-CL Define how every reader picks the same channel when two creates for one label race. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson --- docs/nips/NIP-CL.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/nips/NIP-CL.md b/docs/nips/NIP-CL.md index a88ab43977..222bfb9e0d 100644 --- a/docs/nips/NIP-CL.md +++ b/docs/nips/NIP-CL.md @@ -116,6 +116,25 @@ The relay MUST match `#t` and `#P` before it applies `limit`, as NIP-01 requires. A relay that reads the newest channel events first and matches tags after can return a short or empty page while matching channels exist. +## Choosing one channel + +The relay does not make labels unique. Many channels can share a label, and +any owner or admin can set any label. So two creates for the same label can +both succeed, for example when two processes of one agent start at the same +time. + +A client that needs one channel per creator and label: + +1. queries `{"kinds": [39000], "#P": [""], "#t": ["