# NIP-GNOME: Gnome Speak Translation Protocol `draft` `optional` ## Abstract This NIP defines a client-side translation protocol for converting kind 1 (Short Text Note) events into "Gnome Speak" - a whimsical fantasy language that transforms regular text into gnome-themed vocabulary and expressions. ## Motivation To create an immersive and entertaining experience for users of gnome-themed Nostr clients, where all text content is automatically translated into a consistent fantasy language that maintains readability while adding magical woodland charm. ## Specification ### Translation Scope - **MUST** translate all kind 1 events (Short Text Notes) into Gnome Speak - **SHOULD NOT** translate other event kinds to maintain protocol compatibility - **MUST** preserve original URLs, Nostr references (npub, note, etc.), and hashtags without translation - **SHOULD** maintain the semantic meaning of the original text ### Translation Rules #### Vocabulary Substitution Common words are replaced with gnome-themed equivalents: - Greetings: `hello` → `greetings, fellow earth-dweller` - Technology: `computer` → `thinking-box of metal and magic` - Time: `today` → `this blessed sun-cycle` - Actions: `go` → `venture forth` - People: `friend` → `companion of the woodland path` #### Gnome Expressions - Exclamations are enhanced with gnome phrases: `!` → `! By my pointy hat!` - Sentence starters may be added: `In the sacred grove, ...` - Sentence endings may be appended: `...as the ancients foretold.` #### Special Formatting - Bitcoin/crypto terms: `bitcoin` → `✨golden acorns of the digital realm✨` - Nostr terms: `nostr` → `🍄message-mushroom🍄` - Greetings: `gm` → `🌅when dew kisses the earth🌅` ### Implementation #### Client Behavior Clients implementing this NIP: 1. **MUST** detect kind 1 events 2. **MUST** apply Gnome Speak translation before displaying content 3. **SHOULD** preserve original content for editing/replying 4. **MAY** provide toggle to view original content 5. **SHOULD** indicate when content has been translated #### Content Preservation - Original event content **MUST** remain unchanged in storage/transmission - Translation occurs only at display time - Replies and quotes **SHOULD** reference original content, not translated #### Tag Usage Clients **MAY** add a `t` tag with value `gnome` to indicate gnome-themed content: ```json { "kind": 1, "content": "Hello world!", "tags": [["t", "gnome"]], ... } ``` ### Example Original event: ```json { "kind": 1, "content": "Good morning! Having coffee and checking bitcoin prices.", "tags": [], ... } ``` Displayed as: ``` "When dew kisses the earth! Partaking of bitter bean brew and witnessing ✨golden acorns of the digital realm✨ values, blessed by the forest spirits." ``` ## Rationale This approach provides: 1. **Immersive Experience**: Creates a consistent fantasy atmosphere 2. **Protocol Compatibility**: No changes to underlying Nostr protocol 3. **Reversibility**: Original content always preserved 4. **Interoperability**: Non-gnome clients display original content normally ## Security Considerations - Translation is purely cosmetic and doesn't affect event integrity - Original content validation remains unchanged - No additional attack vectors introduced ## Implementation Status This NIP is implemented in Gnome Nostr client as a client-side translation layer. ## References - [NIP-01: Basic protocol flow description](https://github.com/nostr-protocol/nips/blob/master/01.md) - [NIP-10: Text Notes and Threads](https://github.com/nostr-protocol/nips/blob/master/10.md)