#
Nostr Email Protocol
#
Goal
Remove gatekeepers from email. Use Nostr as transport instead of SMTP between users.
#
Event Kind
#
Kind 1301: Email
{
"kind": 1301,
"pubkey": "<sender_npub>",
"tags": [
["p", "<recipient_npub>"]
],
"content": "<RFC 2822 email>"
}
The content is a standard email. Nostr is just the delivery mechanism.
#
Sending
There 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.
Nostr emails uses NIP-59 gift wraps for privacy. It's similar to NIP-17.
- Create the event kind 1301
- Gift wrap it
- Send it to recipient DMs relays
#
Sending to a nostr user
{
"kind": 1301,
"pubkey": "<sender_npub>",
"tags": [
["p", "<recipient_npub>"]
],
"content": "<RFC 2822 email>"
}
#
Example
{
"kind": 1301,
"pubkey": "npub1alice...",
"tags": [
["p", "npub1bob..."]
],
"content": "From: npub1alice...@nostr\nTo: npub1bob...@nostr\nSubject: Hello\nDate: Sat, 28 Dec 2024 12:00:00 +0000\n\nHey Bob, how are you?"
}
#
Sending to a non nostr user
Sending to a non nostr user require using a bridge.
{
"kind": 1301,
"pubkey": "<sender_npub>",
"tags": [
["p", "<bridge_npub>"],
["mail-from", "<sender_email>"],
["rcpt-to", "<recipient_email>"]
],
"content": "<RFC 2822 email>"
}
- You can get the
bridge_npubby resolving_smtp@bridge_domainwith NIP-05. - Multiple
rcpt-totags MAY be used for CC/BCC recipients.
#
Example
{
"kind": 1301,
"pubkey": "npub1alice...",
"tags": [
["p", "npub1bridge..."],
["mail-from", "npub1alice...@bridge.com"],
["rcpt-to", "bob@example.com"]
],
"content": "From: npub1alice...@bridge.com\nTo: bob@example.com\nSubject: Hello\nDate: Sat, 28 Dec 2024 12:00:00 +0000\n\nHey Bob, how are you?"
}