commit 4dee92a50805e201fb376651e6de099938051eb7
Author: _ <>
Date:   Tue Mar 25 21:20:55 2025 +0000

    feat: initial commit

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c32db03
--- /dev/null
+++ b/README.md
@@ -0,0 +1,64 @@
+# HTTP Messages
+
+A specification for exchanging data using remote HTTP messages on a trusted server
+
+![](./http.png)
+
+## Overview
+
+Enables a local client to make and receive http requests from a remote computer.  Requires:
+
+* A trusted machine to process the messages (can be a home PC or Raspberry Pi)
+* A relay (can be untrusted)
+* A blossom server (can be untrusted)
+
+
+## Architecture
+
+```mermaid
+architecture-beta
+group user(internet)[Nostr Client]
+group cloud(cloud)[Untrusted Servers]
+group home(server)[Trusted Server]
+service client(internet) in user
+service blossom(database)[Blossom Storage] in cloud
+service relay(logos:aws-ec2)[Relays] in cloud
+service pc(logos:aws-elb) in home
+service bbi[Big Bad Internet]
+
+client:R -- L:blossom
+client:B -- L:relay
+pc:L -- R:blossom
+pc:L -- R:relay
+pc:B <--> T:bbi
+
+
+```
+
+## Event Structure
+
+```jsonc
+{
+  "kind": 1120,
+  "pubkey": "<pubkey>",
+  "content": "nip44Encrypt({'url':'blossom.one','decrypt':'password123'})",
+  "tags": [
+    ["x", "<hash of encrypted message blob>"] 
+    ["E", "<request event id>"], // (RES) Request ID (mandatory)
+    ["r", "https://relay.one"] // (REQ) Response Relay (optional)
+  ],
+  // other fields...
+}
+```
+
+Explanations:
+
+ * `kind:1120` - BIP39 word #1120 ([message](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt#L1120)).
+ * `"content"` - encrypted (NIP-44) JSON with location of blob and decryption key
+ * `"x"` - Blossom file hash of the encrypted request or response
+ * `"E"` - ID of the request event.  Enables a response to be easily identified.
+ * `"r"` - (optional) relay on which the response should be sent.  For Requests only.
+
+
+
+
diff --git a/http.png b/http.png
new file mode 100644
index 0000000..ea37cc8
Binary files /dev/null and b/http.png differ