Merge branch 'nostr-protocol:master' into permalink
This commit is contained in:
commit
095fe84cc1
2
65.md
2
65.md
|
@ -63,6 +63,8 @@ This NIP allows Clients to connect directly with the most up-to-date relay set f
|
|||
|
||||
6. Clients SHOULD deduplicate connections by normalizing relay URIs according to [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986#section-6).
|
||||
|
||||
7. When publishing to a relay, clients SHOULD ensure the user's `kind 10002` is also available on that relay. Relays SHOULD accept and serve `kind 10002` notes for any pubkey whose notes they store. Relays MAY scrape the network for missing `kind 10002` events. The goal here is that for any note served from a relay the user can also request the author's relay selections as a way of bootstrapping further context discovery.
|
||||
|
||||
## Related articles
|
||||
- [Outbox model](https://mikedilger.com/gossip-model/)
|
||||
- [What is the Outbox Model?](https://habla.news/u/hodlbod@coracle.social/8YjqXm4SKY-TauwjOfLXS)
|
||||
|
|
83
73.md
83
73.md
|
@ -13,29 +13,32 @@ There are certain established global content identifiers such as [Book ISBNs](ht
|
|||
|
||||
## Supported IDs
|
||||
|
||||
| Type | `i` tag | `k` tag |
|
||||
| --- | --- | --- |
|
||||
| URLs | "`<URL, normalized, no fragment>`" | "web" |
|
||||
| Hashtags | "#`<topic, lowercase>`" | "#" |
|
||||
| Geohashes | "geo:`<geohash, lowercase>`" | "geo" |
|
||||
| Books | "isbn:`<id, without hyphens>`" | "isbn" |
|
||||
| Podcast Feeds | "podcast:guid:`<guid>`" | "podcast:guid" |
|
||||
| Podcast Episodes | "podcast:item:guid:`<guid>`" | "podcast:item:guid" |
|
||||
| Podcast Publishers | "podcast:publisher:guid:`<guid>`" | "podcast:publisher:guid" |
|
||||
| Movies | "isan:`<id, without version part>`" | "isan" |
|
||||
| Papers | "doi:`<id, lowercase>`" | "doi" |
|
||||
| Type | `i` tag | `k` tag |
|
||||
| --- | --- | --- |
|
||||
| URLs | "`<URL, normalized, no fragment>`" | "web" |
|
||||
| Books | "isbn:`<id, without hyphens>`" | "isbn" |
|
||||
| Geohashes | "geo:`<geohash, lowercase>`" | "geo" |
|
||||
| Movies | "isan:`<id, without version part>`" | "isan" |
|
||||
| Papers | "doi:`<id, lowercase>`" | "doi" |
|
||||
| Hashtags | "#`<topic, lowercase>`" | "#" |
|
||||
| Podcast Feeds | "podcast:guid:`<guid>`" | "podcast:guid" |
|
||||
| Podcast Episodes | "podcast:item:guid:`<guid>`" | "podcast:item:guid" |
|
||||
| Podcast Publishers | "podcast:publisher:guid:`<guid>`" | "podcast:publisher:guid" |
|
||||
| Blockchain Transaction | "`<blockchain>`:[`<chainId>`:]tx:`<txid, hex, lowercase>`" | "`<blockchain>`:tx" |
|
||||
| Blockchain Address | "`<blockchain>`:[`<chainId>`:]address:`<address>`" | "`<blockchain>`:address" |
|
||||
|
||||
---
|
||||
|
||||
## Examples
|
||||
|
||||
|
||||
### Webpages
|
||||
|
||||
For the webpage "https://myblog.example.com/post/2012-03-27/hello-world" the "i" and "k" tags are:
|
||||
|
||||
```jsonc
|
||||
[
|
||||
["i","https://myblog.example.com/post/2012-03-27/hello-world"],
|
||||
["i", "https://myblog.example.com/post/2012-03-27/hello-world"],
|
||||
["k", "web"]
|
||||
]
|
||||
```
|
||||
|
@ -58,6 +61,62 @@ Book ISBNs MUST be referenced _**without hyphens**_ as many book search APIs ret
|
|||
|
||||
Movie ISANs SHOULD be referenced _**without the version part**_ as the versions / edits of movies are not relevant. More info on ISAN parts here - https://support.isan.org/hc/en-us/articles/360002783131-Records-relations-and-hierarchies-in-the-ISAN-Registry
|
||||
|
||||
### Blockchain
|
||||
|
||||
`<blockchain>` can be any layer 1 chain (`bitcoin`, `ethereum`, `solana`, ...). If necessary (e.g. for ethereum), you can specify a `<chainId>`.
|
||||
|
||||
#### Bitcoin
|
||||
|
||||
```
|
||||
bitcoin:address:<bech32, lowercase | base58, case sensitive>
|
||||
bitcoin:tx:<txid, hex, lowercase>
|
||||
```
|
||||
|
||||
E.g. https://blockstream.info/tx/a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d
|
||||
|
||||
```jsonc
|
||||
[
|
||||
["i", "bitcoin:tx:a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d"],
|
||||
["k", "bitcoin:tx"]
|
||||
]
|
||||
```
|
||||
|
||||
E.g. https://blockstream.info/address/1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx
|
||||
|
||||
```jsonc
|
||||
[
|
||||
["i", "bitcoin:address:1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx"],
|
||||
["k", "bitcoin:address"]
|
||||
]
|
||||
```
|
||||
|
||||
#### Ethereum (and other EVM chains)
|
||||
|
||||
```
|
||||
ethereum:<chainId, integer>:tx:<txHash, hex, lowercase>
|
||||
ethereum:<chainId, integer>:address:<hex, lowercase>
|
||||
```
|
||||
|
||||
E.g. https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
|
||||
|
||||
```jsonc
|
||||
[
|
||||
["i", "ethereum:1:address:0xd8da6bf26964af9d7eed9e03e53415d37aa96045"],
|
||||
["k", "ethereum:address"]
|
||||
]
|
||||
```
|
||||
|
||||
E.g. https://gnosisscan.io/tx/0x98f7812be496f97f80e2e98d66358d1fc733cf34176a8356d171ea7fbbe97ccd
|
||||
|
||||
```jsonc
|
||||
[
|
||||
["i", "ethereum:100:tx:0x98f7812be496f97f80e2e98d66358d1fc733cf34176a8356d171ea7fbbe97ccd"],
|
||||
["k", "ethereum:tx"]
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Optional URL Hints
|
||||
|
|
11
README.md
11
README.md
|
@ -300,7 +300,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
|
|||
| `I` | root external identity | -- | [22](22.md) |
|
||||
| `k` | kind | -- | [18](18.md), [25](25.md), [72](72.md), [73](73.md) |
|
||||
| `K` | root scope | -- | [22](22.md) |
|
||||
| `l` | label, label namespace | -- | [32](32.md) |
|
||||
| `l` | label, label namespace, language name| -- | [32](32.md), [C0](C0.md) |
|
||||
| `L` | label namespace | -- | [32](32.md) |
|
||||
| `m` | MIME type | -- | [94](94.md) |
|
||||
| `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md), [22](22.md) |
|
||||
|
@ -323,17 +323,20 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
|
|||
| `clone` | git clone URL | -- | [34](34.md) |
|
||||
| `content-warning` | reason | -- | [36](36.md) |
|
||||
| `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) |
|
||||
| `description` | description | -- | [34](34.md), [57](57.md), [58](58.md) |
|
||||
| `dep` | Required dependency | -- | [C0](C0.md) |
|
||||
| `description` | description | -- | [34](34.md), [57](57.md), [58](58.md), [C0](C0.md) |
|
||||
| `emoji` | shortcode, image URL | -- | [30](30.md) |
|
||||
| `encrypted` | -- | -- | [90](90.md) |
|
||||
| `extension` | File extension | -- | [C0](C0.md) |
|
||||
| `expiration` | unix timestamp (string) | -- | [40](40.md) |
|
||||
| `file` | full path (string) | -- | [35](35.md) |
|
||||
| `goal` | event id (hex) | relay URL | [75](75.md) |
|
||||
| `image` | image URL | dimensions in pixels | [23](23.md), [52](52.md), [58](58.md) |
|
||||
| `imeta` | inline metadata | -- | [92](92.md) |
|
||||
| `license` | License of the shared content | -- | [C0](C0.md) |
|
||||
| `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) |
|
||||
| `location` | location string | -- | [52](52.md), [99](99.md) |
|
||||
| `name` | name | -- | [34](34.md), [58](58.md), [72](72.md) |
|
||||
| `name` | name | -- | [34](34.md), [58](58.md), [72](72.md), [C0](C0.md) |
|
||||
| `nonce` | random | difficulty | [13](13.md) |
|
||||
| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) |
|
||||
| `price` | price | currency, frequency | [99](99.md) |
|
||||
|
@ -341,6 +344,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
|
|||
| `published_at` | unix timestamp (string) | -- | [23](23.md) |
|
||||
| `relay` | relay url | -- | [42](42.md), [17](17.md) |
|
||||
| `relays` | relay list | -- | [57](57.md) |
|
||||
| `repo` | Reference to the origin repository | -- | [C0](C0.md) |
|
||||
| `runtime` | Runtime or environment specification | -- | [C0](C0.md) |
|
||||
| `server` | file storage server url | -- | [96](96.md) |
|
||||
| `subject` | subject | -- | [14](14.md), [17](17.md), [34](34.md) |
|
||||
| `summary` | summary | -- | [23](23.md), [52](52.md) |
|
||||
|
|
Loading…
Reference in New Issue