Merge pull request #693 from alexgleason/proxy

NIP-48: Proxy Tags
This commit is contained in:
Alex Gleason 2023-08-07 14:11:13 -05:00 committed by GitHub
commit 33fcb7c9bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 0 deletions

60
48.md Normal file
View File

@ -0,0 +1,60 @@
NIP-48
======
Proxy Tags
----------
`draft` `optional` `author:alexgleason`
Nostr events bridged from other protocols such as ActivityPub can link back to the source object by including a `"proxy"` tag, in the form:
```
["proxy", <id>, <protocol>]
```
Where:
- `<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.
- `<protocol>` is the name of the protocol, e.g. `"activitypub"`.
Clients may use this information to reconcile duplicated content bridged from other protocols, or to display a link to the source object.
Proxy 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.
### Supported protocols
This list may be extended in the future.
| Protocol | ID format | Example |
| -------- | --------- | ------- |
| `activitypub` | URL | `https://gleasonator.com/objects/9f524868-c1a0-4ee7-ad51-aaa23d68b526` |
| `atproto` | AT URI | `at://did:plc:zhbjlbmir5dganqhueg7y4i3/app.bsky.feed.post/3jt5hlibeol2i` |
| `rss` | URL with guid fragment | `https://soapbox.pub/rss/feed.xml#https%3A%2F%2Fsoapbox.pub%2Fblog%2Fmostr-fediverse-nostr-bridge` |
| `web` | URL | `https://twitter.com/jack/status/20` |
### Examples
ActivityPub object:
```json
{
"kind": 1,
"content": "I'm vegan btw",
"tags": [
[
"proxy",
"https://gleasonator.com/objects/8f6fac53-4f66-4c6e-ac7d-92e5e78c3e79",
"activitypub"
]
],
"pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6",
"created_at": 1691091365,
"id": "55920b758b9c7b17854b6e3d44e6a02a83d1cb49e1227e75a30426dea94d4cb2",
"sig": "a72f12c08f18e85d98fb92ae89e2fe63e48b8864c5e10fbdd5335f3c9f936397a6b0a7350efe251f8168b1601d7012d4a6d0ee6eec958067cf22a14f5a5ea579"
}
```
### See also
- [FEP-fffd: Proxy Objects](https://codeberg.org/fediverse/fep/src/branch/main/fep/fffd/fep-fffd.md)
- [Mostr bridge](https://mostr.pub/)

View File

@ -56,6 +56,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [NIP-45: Counting results](45.md) - [NIP-45: Counting results](45.md)
- [NIP-46: Nostr Connect](46.md) - [NIP-46: Nostr Connect](46.md)
- [NIP-47: Wallet Connect](47.md) - [NIP-47: Wallet Connect](47.md)
- [NIP-48: Proxy Tags](48.md)
- [NIP-50: Keywords filter](50.md) - [NIP-50: Keywords filter](50.md)
- [NIP-51: Lists](51.md) - [NIP-51: Lists](51.md)
- [NIP-52: Calendar Events](52.md) - [NIP-52: Calendar Events](52.md)
@ -191,6 +192,7 @@ When experimenting with kinds, keep in mind the classification introduced by [NI
| `nonce` | random | -- | [13](13.md) | | `nonce` | random | -- | [13](13.md) |
| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) |
| `price` | price | currency, frequency | [99](99.md) | | `price` | price | currency, frequency | [99](99.md) |
| `proxy` | external ID | protocol | [48](48.md) |
| `published_at` | unix timestamp (string) | -- | [23](23.md) | | `published_at` | unix timestamp (string) | -- | [23](23.md) |
| `relay` | relay url | -- | [42](42.md) | | `relay` | relay url | -- | [42](42.md) |
| `relays` | relay list | -- | [57](57.md) | | `relays` | relay list | -- | [57](57.md) |