LOL! Note IDs, nevents, naddrs, and hex IDs... So many to try and keep straight!
I think I've got it now, though. So you are proposing making a mnemonic phrase out of the first 6-8 characters of the HEX ID of, well, anything you want to, right? Could be the hex version of a user's npub, the hex version of a bookmark list's ID, or the hex version of a book ID published to Alexandria, and as long as the Nostr client knows where to look for it, since relay hints aren't encoded into the hex, only the nevent or naddr, the client should be able to find it with just that mnemonic phrase.
And hex IDs are completely different from nevents and such. You can't just take the "nevent" prefix off of the front and what you are left with is the hex ID. It's a completely different set of characters.
Jumble is kind enough to allow users to see the raw event information if they want to, and I believe the hex ID of your reply is:
`a50bc29d3377e1b0f50a0f471ca7431d27489f013df620a90e313c5f10b1c2a9`
While the nevent is:
`nevent1qvzqqqqqqypzp68dx7vvdlltl7sg2qdv8838ze3tl5tq76y0jnz966fdsana6dz6qyt8wumn8ghj7mn0wd68yetvd96x2uewdaexwtcpr9mhxue69uhhwmm59e38y6t8dp6xymmvwshxuet59uqzpfgtc2wnxalpkr6s5r68rjn5x8f8fz0sz00kyz5suvfutugtrs4ffsug0m`
But we could have clients display an option to copy an "event seed" or some similar title for it, which is a mnemonic phrase of human readable words that represent the first 6-8 characters of the hex ID.
So, the question becomes, how will clients know where to find the referenced event without relay hints?
Do we have "indexer" relays that just record hex IDs and what relays they were seen on, so clients can reach out to the indexer to tell them where to look for the event? Or do we use a DHT for that? Or do we make the phrase 12 words, with the first 6 being a mnemonic of the author's pubkey and the last 6 the mnemonic of the event, and then the client can just check the author's kind 10002 relay list to see where to look for the event?
Login to reply
Replies (4)
Good questions! I like the "event seed" option you mention.
Without relay hints, it's just a game of brute force searching relays. But perhaps we could encode the relay somehow. TBH that's a bit trickier. The primary ID of a relay is its URL. Encoding all of it would take too many words. But expressing the relay URL in plaintext would betray the purpose of the preceding 6 words, which would reduce this scheme's effectiveness against shadowbanning. Perhaps it's up to the user. Include the relay if you aren't in an adversarial environment, and exclude it if you are; without a relay hint you'll simply have to brute force search relays for it until you find it, which can be somewhat automated. If you are sharing an event in such a furtive way, you might want to broadcast your event to as many relays as you can in order to ease the pain of finding it.
By the way, it's easy to convert n-entities to their raw components at
Just paste it into the box and it will be decoded for you. Then you can grab the raw event id, pubkey, etc.
nostr web army knife
That makes sense. Tools like NADAR exist already for searching all known relays for a particular event, and yes, an event you want to share in this way could be intentionally blasted far and wide to assist in finding it with just the first several characters of the hex. Runs against the philosophy of outbox, though.
I think maybe sharing a 6 or 7 word string of the author's hex pubkey along with 6 or 7 words of the event's hex ID would probably do the trick, and be more in line with outbox, though.
A user could pretty quickly commit to memory the phrase referring to their public key, so they would just need to add the phrase representing the particular event they want to share. Clients could then find the author's kind 10002, which should already be blasted far and wide in the relays, and look for the event itself on the author's listed outbox relays.
I feel like this could help diminish the chances of collision as well. How likely is it there will be two events with the same author and the same leading 6 characters for their hex ID?
Adding to my list of resources.
I need to learn how to use nak in general...