upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2023-08-03 14:40:45 -0500
committerAlex Gleason <alex@alexgleason.me>2023-08-03 14:40:45 -0500
commit064a79f6142326fa09cda411c15ceca997d37a03 (patch)
treeebc66d5691acd1ea9b0b4222484d3bcc12a657aa
parentb4cdc1a73d415c79c35655fa02f5e55cd1f2a60c (diff)
NIP-48: Proxy Tags
-rw-r--r--48.md60
-rw-r--r--README.md2
2 files changed, 62 insertions, 0 deletions
diff --git a/48.md b/48.md
new file mode 100644
index 0000000..8f22781
--- /dev/null
+++ b/48.md
@@ -0,0 +1,60 @@
1NIP-48
2======
3
4Proxy Tags
5----------
6
7`draft` `optional` `author:alexgleason`
8
9Nostr events bridged from other protocols such as ActivityPub can link back to the source object by including a `"proxy"` tag, in the form:
10
11```
12["proxy", <id>, <protocol>]
13```
14
15Where:
16
17- `<id>` is the ID of the source object. The ID format varies depending on the protocol. The ID must be universally unique, regardless of the protocol.
18- `<protocol>` is the name of the protocol, e.g. `"activitypub"`.
19
20Clients may use this information to reconcile duplicated content bridged from other protocols, or to display a link to the source object.
21
22Proxy tags may be added to any event kind, and doing so indicates that the event did not originate on the Nostr protocol, and instead originated elsewhere on the web.
23
24### Supported protocols
25
26This list may be extended in the future.
27
28| Protocol | ID format | Example |
29| -------- | --------- | ------- |
30| `activitypub` | URL | `https://gleasonator.com/objects/9f524868-c1a0-4ee7-ad51-aaa23d68b526` |
31| `atproto` | AT URI | `at://did:plc:zhbjlbmir5dganqhueg7y4i3/app.bsky.feed.post/3jt5hlibeol2i` |
32| `rss` | URL with guid fragment | `https://soapbox.pub/rss/feed.xml#https%3A%2F%2Fsoapbox.pub%2Fblog%2Fmostr-fediverse-nostr-bridge` |
33| `web` | URL | `https://twitter.com/jack/status/20` |
34
35### Examples
36
37ActivityPub object:
38
39```json
40{
41 "kind": 1,
42 "content": "I'm vegan btw",
43 "tags": [
44 [
45 "proxy",
46 "https://gleasonator.com/objects/8f6fac53-4f66-4c6e-ac7d-92e5e78c3e79",
47 "activitypub"
48 ]
49 ],
50 "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6",
51 "created_at": 1691091365,
52 "id": "55920b758b9c7b17854b6e3d44e6a02a83d1cb49e1227e75a30426dea94d4cb2",
53 "sig": "a72f12c08f18e85d98fb92ae89e2fe63e48b8864c5e10fbdd5335f3c9f936397a6b0a7350efe251f8168b1601d7012d4a6d0ee6eec958067cf22a14f5a5ea579"
54}
55```
56
57### See also
58
59- [FEP-fffd: Proxy Objects](https://codeberg.org/fediverse/fep/src/branch/main/fep/fffd/fep-fffd.md)
60- [Mostr bridge](https://mostr.pub/) \ No newline at end of file
diff --git a/README.md b/README.md
index ff12800..cfee37d 100644
--- a/README.md
+++ b/README.md
@@ -56,6 +56,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
56- [NIP-45: Counting results](45.md) 56- [NIP-45: Counting results](45.md)
57- [NIP-46: Nostr Connect](46.md) 57- [NIP-46: Nostr Connect](46.md)
58- [NIP-47: Wallet Connect](47.md) 58- [NIP-47: Wallet Connect](47.md)
59- [NIP-48: Proxy Tags](48.md)
59- [NIP-50: Keywords filter](50.md) 60- [NIP-50: Keywords filter](50.md)
60- [NIP-51: Lists](51.md) 61- [NIP-51: Lists](51.md)
61- [NIP-52: Calendar Events](52.md) 62- [NIP-52: Calendar Events](52.md)
@@ -191,6 +192,7 @@ When experimenting with kinds, keep in mind the classification introduced by [NI
191| `nonce` | random | -- | [13](13.md) | 192| `nonce` | random | -- | [13](13.md) |
192| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | 193| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) |
193| `price` | price | currency, frequency | [99](99.md) | 194| `price` | price | currency, frequency | [99](99.md) |
195| `proxy` | external ID | protocol | [48](48.md) |
194| `published_at` | unix timestamp (string) | -- | [23](23.md) | 196| `published_at` | unix timestamp (string) | -- | [23](23.md) |
195| `relay` | relay url | -- | [42](42.md) | 197| `relay` | relay url | -- | [42](42.md) |
196| `relays` | relay list | -- | [57](57.md) | 198| `relays` | relay list | -- | [57](57.md) |