Join Nostr
Kind 30817
Published at
2026-04-23 14:07:23 GMT
Kind type
30817
Event JSON
{ "id": "57d11cdf2f9ed73f7f39d6a7a6012ee3d642584ab11887f96a031f7d00fd9697", "pubkey": "b22b06b051fd5232966a9344a634d956c3dc33a7f5ecdcad9ed11ddc4120a7f2", "created_at": 1776953243, "kind": 30817, "tags": [ [ "d", "nostr-mail-core" ], [ "title", "Nostr mail core" ], [ "k", "1301" ], [ "k", "13" ], [ "k", "1059" ], [ "client", "nostrhub.io" ] ], "content": "# Nostr Email Protocol\n\n## Goal\n\nRemove gatekeepers from email. Use Nostr as transport instead of SMTP between users.\n\n## Event Kind\n\n### Kind 1301: Email\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"\u003csender pubkey\u003e\",\n \"content\": \"\u003cRFC 2822 email\u003e\"\n}\n```\n\nThe content is a standard email. Nostr is just the delivery mechanism.\n\n## Sending\n\nThere are 2 kinds of users, those using nostr and the others. If the recipient is not on nostr we need to send the email to a bridge that will forward the email to the recipient legacy inbox.\n\nNostr emails uses NIP-59 gift wraps for privacy. It's similar to NIP-17.\n\n1. Create the event kind 1301\n2. Gift wrap it\n3. Send it to recipient DMs relays\n\n### Sending to a nostr user\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"\u003csender pubkey\u003e\",\n \"content\": \"\u003cRFC 2822 email\u003e\"\n}\n```\n\n#### Example\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"alice pubkey\",\n \"content\": \"From: npub1alice...@nostr\\nTo: npub1bob...@nostr\\nSubject: Hello\\nDate: Sat, 28 Dec 2024 12:00:00 +0000\\n\\nHey Bob, how are you?\"\n}\n```\n\n### Sending to a non nostr user\n\nSending to a non nostr user require using a bridge.\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"\u003csender pubkey\u003e\",\n \"tags\": [\n [\"mail-from\", \"\u003csender_email\u003e\"],\n [\"rcpt-to\", \"\u003crecipient_email\u003e\"]\n ],\n \"content\": \"\u003cRFC 2822 email\u003e\"\n}\n```\n\n- You can get the `bridge pubkey` by resolving `_smtp@bridge_domain` with NIP-05.\n- Multiple `rcpt-to` tags MAY be used for CC/BCC recipients.\n\n#### Example\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"alice pubkey\",\n \"tags\": [\n [\"mail-from\", \"[email protected]\"],\n [\"rcpt-to\", \"[email protected]\"]\n ],\n \"content\": \"From: [email protected]\\nTo: [email protected]\\nSubject: Hello\\nDate: Sat, 28 Dec 2024 12:00:00 +0000\\n\\nHey Bob, how are you?\"\n}\n```\n\n## Authentication\n \nBy default, the kind 1301 rumor is unsigned, providing deniability.\n \nIf the sender wants to prove authorship to third parties, they MAY sign the rumor. A signed rumor is a fully valid Nostr event with a `sig` field. This is useful in professional or legal contexts where the sender needs to prove they wrote an email.\n \n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"alice pubkey\",\n \"content\": \"From: npub1alice...@nostr\\nTo: npub1bob...@nostr\\nSubject: Hello\\nDate: Sat, 28 Dec 2024 12:00:00 +0000\\n\\nHey Bob, how are you?\",\n \"sig\": \"...\"\n}\n```\n \nSince a signed rumor is a valid Nostr event, it can be published to relays or reposted by anyone. This allows third parties to independently verify that the sender wrote the email, without requiring any trust in the recipient.\n\n## Public Emails\n\nEmails sent to public entities MAY be sent without gift wrap, published directly to relays as a plain kind 1301 event. In this case the event MUST be signed, providing a public and verifiable proof that the sender wrote the email.\n\nThis is useful for communications with public entities (governments, companies) where transparency is required.\n\n### BCC on Public Emails\n\nPublic emails MAY have BCC recipients. Since the email is public, BCC recipients are notified via a gift wrap containing the kind 1301 rumor with a `public-ref` tag pointing to the public event on relays.\n\nThis allows the BCC recipient's client to:\n1. Identify that this email is public (not a private communication)\n2. Fetch the signed event from the relays\n\n```json\n{\n \"kind\": 1301,\n \"pubkey\": \"\u003calice-pubkey\u003e\",\n \"content\": \"From: npub1alice...@nostr\\nTo: npub1bob...@nostr\\nSubject: Hello\\nDate: Sat, 28 Dec 2024 12:00:00 +0000\\n\\nHey Bob, how are you?\",\n \"tags\": [\n [\"public-ref\", \"\u003cpublic-event-id\u003e\", \"wss://relay1.com\", \"wss://relay2.com\"]\n ]\n}\n```\n\n- The `public-ref` tag contains the event ID of the public kind 1301 event, followed by one or more relay hints where the event can be fetched.\n- Multiple relay hints MAY be provided for redundancy.", "sig": "cc08435ebedf021670dbb9c23cc9a5f07448982243cb97c83567ce8cfeb700e8844994d0a9f93cca51aed2232b06f6dee56b8ef6287fe492ec8e9b8d5a828ad9" }