Why Nostr? What is Njump?
2025-05-07 20:27:01

arkinox on Nostr: I want to show you why nostr relays and clients should support partial event ID ...

I want to show you why nostr relays and clients should support partial event ID queries with a cool new thing.

send or come yes our like

Paste these 6 words into https://approx.vercel.app and you will retrieve this note:
Can't shadowban this


I've mapped the 256 shortest and most common words in the English language to a unique byte. You can use a short string of innocuous looking words to link to any nostr event, ie, any data you want.

Partial event queries have classically been part of the nostr protocol, but relay implementations have been enforcing limits on how short an event id query may be, with most relays requiring the full 64 hex characters.

I am hoping that relay devs (and client devs) will reconsider this artificial limit when considering how useful partial queries can be.

Uses:
- Representing nostr events with ~6 words can enable you to link to a nostr event in adversarial environments where known nostr URLs are shadowbanned and long hex strings would raise suspicion. (I got banned from Github for putting my pubkey in my bio once, for example)
- sharing ~6 words is shorter than sharing a full id/nevent/note1
- You can remember ~6 words to memorize a nostr event id
- As most events will never collide after 6 or 7 bytes, partial queries are a powerful shorthand for data portability. Imagine being able to represent everything on the internet with only 7 bytes. You could literally memorize how to retrieve any data on the internet!

I think this is too much of an opportunity to waste. Nostr has this unique advantage of making a universe of data accessible with minimal effort. Let's not suffocate it with arbitrary limits!

Relay implementors, please let me know your feedback on this if you care to comment.

Caveats:
- Will 6 words ever represent more than 1 nostr event? Yes, it can happen. So then you use 7 or 8 words to be more specific. Git and Github use 7 bytes to refer to commits because it's so exceedingly rare that they ever repeat. In the case that there is a collision, picking between the 2 events retrieved is likely not a problem.
- It's not as convenient to refer to an event with words as it is to link to an event, but links can be grepped and banned on centralized platforms.
- This word list probably sucks, I made it in less than an hour, but there aren't any lists of 256 words that I could find that were specifically engineered to appear reasonably innocuous and likely evade algorithmic detection. BIP-39 uses 2048 words for 11 bits each which is too uneven for conveying an arbitrary number of bytes. Also, the BIP-39 words are not very subtle.

Anyways, I kindly ask relay implementors to consider supporting partial event id queries so that this sort of powerful feature can remain a core part of the nostr protocol.

Brought to you by
Author Public Key
npub1arkn0xxxll4llgy9qxkrncn3vc4l69s0dz8ef3zadykcwe7ax3dqrrh43w