mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-12 15:09:07 -05:00
reformat NIP-11.
This commit is contained in:
parent
33e7650bab
commit
b5b46b629f
154
11.md
154
11.md
|
@ -25,42 +25,42 @@ When a relay receives an HTTP(s) request with an `Accept` header of `application
|
|||
Any field may be omitted, and clients MUST ignore any additional fields they do not understand. Relays MUST accept CORS requests by sending `Access-Control-Allow-Origin`, `Access-Control-Allow-Headers`, and `Access-Control-Allow-Methods` headers.
|
||||
|
||||
Field Descriptions
|
||||
-----------------
|
||||
------------------
|
||||
|
||||
### Name ###
|
||||
### Name
|
||||
|
||||
A relay may select a `name` for use in client software. This is a string, and SHOULD be less than 30 characters to avoid client truncation.
|
||||
|
||||
### Description ###
|
||||
### Description
|
||||
|
||||
Detailed plain-text information about the relay may be contained in the `description` string. It is recommended that this contain no markup, formatting or line breaks for word wrapping, and simply use double newline characters to separate paragraphs. There are no limitations on length.
|
||||
|
||||
### Pubkey ###
|
||||
### Pubkey
|
||||
|
||||
An administrative contact may be listed with a `pubkey`, in the same format as Nostr events (32-byte hex for a `secp256k1` public key). If a contact is listed, this provides clients with a recommended address to send encrypted direct messages (See `NIP-04`) to a system administrator. Expected uses of this address are to report abuse or illegal content, file bug reports, or request other technical assistance.
|
||||
|
||||
Relay operators have no obligation to respond to direct messages.
|
||||
|
||||
### Contact ###
|
||||
### Contact
|
||||
|
||||
An alternative contact may be listed under the `contact` field as well, with the same purpose as `pubkey`. Use of a Nostr public key and direct message SHOULD be preferred over this. Contents of this field SHOULD be a URI, using schemes such as `mailto` or `https` to provide users with a means of contact.
|
||||
|
||||
### Supported NIPs ###
|
||||
### Supported NIPs
|
||||
|
||||
As the Nostr protocol evolves, some functionality may only be available by relays that implement a specific `NIP`. This field is an array of the integer identifiers of `NIP`s that are implemented in the relay. Examples would include `1`, for `"NIP-01"` and `9`, for `"NIP-09"`. Client-side `NIPs` SHOULD NOT be advertised, and can be ignored by clients.
|
||||
|
||||
### Software ###
|
||||
### Software
|
||||
|
||||
The relay server implementation MAY be provided in the `software` attribute. If present, this MUST be a URL to the project's homepage.
|
||||
|
||||
### Version ###
|
||||
### Version
|
||||
|
||||
The relay MAY choose to publish its software version as a string attribute. The string format is defined by the relay implementation. It is recommended this be a version number or commit identifier.
|
||||
|
||||
Extra Fields
|
||||
-----------------
|
||||
------------
|
||||
|
||||
### Server Limitations ###
|
||||
### Server Limitations
|
||||
|
||||
These are limitations imposed by the relay on clients. Your client
|
||||
should expect that requests which exceed these *practical* limitations
|
||||
|
@ -68,22 +68,21 @@ are rejected or fail immediately.
|
|||
|
||||
```json
|
||||
{
|
||||
...
|
||||
...
|
||||
"limitation": {
|
||||
"max_message_length": 16384,
|
||||
"max_subscriptions": 20,
|
||||
"max_filters": 100,
|
||||
"max_limit": 5000,
|
||||
"max_subid_length": 100,
|
||||
"max_event_tags": 100,
|
||||
"max_content_length": 8196,
|
||||
"min_pow_difficulty": 30,
|
||||
"auth_required": true,
|
||||
"payment_required": true,
|
||||
"created_at_lower_limit":31536000,
|
||||
"created_at_upper_limit":3,
|
||||
"max_message_length": 16384,
|
||||
"max_subscriptions": 20,
|
||||
"max_filters": 100,
|
||||
"max_limit": 5000,
|
||||
"max_subid_length": 100,
|
||||
"max_event_tags": 100,
|
||||
"max_content_length": 8196,
|
||||
"min_pow_difficulty": 30,
|
||||
"auth_required": true,
|
||||
"payment_required": true,
|
||||
"created_at_lower_limit": 31536000,
|
||||
"created_at_upper_limit": 3
|
||||
}
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -129,7 +128,7 @@ Even if set to False, authentication may be required for specific actions.
|
|||
|
||||
- `created_at_upper_limit`: 'created_at' upper limit as defined in [NIP-22](22.md)
|
||||
|
||||
### Event Retention ###
|
||||
### Event Retention
|
||||
|
||||
There may be a cost associated with storing data forever, so relays
|
||||
may wish to state retention times. The values stated here are defaults
|
||||
|
@ -142,14 +141,12 @@ all, and preferably an error will be provided when those are received.
|
|||
|
||||
```json
|
||||
{
|
||||
...
|
||||
"retention": [
|
||||
{ "kinds": [0, 1, [5, 7], [40, 49]], "time": 3600 },
|
||||
{ "kinds": [[40000, 49999]], "time": 100 },
|
||||
{ "kinds": [[30000, 39999]], "count": 1000 },
|
||||
{ "time": 3600, "count": 10000 }
|
||||
{"kinds": [0, 1, [5, 7], [40, 49]], "time": 3600},
|
||||
{"kinds": [[40000, 49999]], "time": 100},
|
||||
{"kinds": [[30000, 39999]], "count": 1000},
|
||||
{"time": 3600, "count": 10000}
|
||||
]
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -165,8 +162,7 @@ support their protocol quickly via a single HTTP fetch.
|
|||
|
||||
There is no need to specify retention times for _ephemeral events_ since they are not retained.
|
||||
|
||||
|
||||
### Content Limitations ###
|
||||
### Content Limitations
|
||||
|
||||
Some relays may be governed by the arbitrary laws of a nation state. This
|
||||
may limit what content can be stored in cleartext on those relays. All
|
||||
|
@ -185,9 +181,8 @@ flexibility is up to the client software.
|
|||
|
||||
```json
|
||||
{
|
||||
...
|
||||
"relay_countries": [ "CA", "US" ],
|
||||
...
|
||||
...
|
||||
"relay_countries": [ "CA", "US" ]
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -199,7 +194,7 @@ country of the legal entities who own the relay, so it's very
|
|||
likely a number of countries are involved.
|
||||
|
||||
|
||||
### Community Preferences ###
|
||||
### Community Preferences
|
||||
|
||||
For public text notes at least, a relay may try to foster a
|
||||
local community. This would encourage users to follow the global
|
||||
|
@ -208,11 +203,10 @@ To support this goal, relays MAY specify some of the following values.
|
|||
|
||||
```json
|
||||
{
|
||||
...
|
||||
...
|
||||
"language_tags": [ "en", "en-419" ],
|
||||
"tags": [ "sfw-only", "bitcoin-only", "anime" ],
|
||||
"posting_policy": "https://example.com/posting-policy.html",
|
||||
...
|
||||
"posting_policy": "https://example.com/posting-policy.html"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -239,59 +233,75 @@ detail and legal terms. Use the `tags` field to signify limitations
|
|||
on content, or topics to be discussed, which could be machine
|
||||
processed by appropriate client software.
|
||||
|
||||
### Pay-To-Relay ###
|
||||
### Pay-to-Relay
|
||||
|
||||
Relays that require payments may want to expose their fee schedules.
|
||||
|
||||
```json
|
||||
{
|
||||
...
|
||||
...
|
||||
"payments_url": "https://my-relay/payments",
|
||||
"fees": {
|
||||
"admission": [{ "amount": 1000000, "unit": "msats" }],
|
||||
"subscription": [{ "amount": 5000000, "unit": "msats", "period": 2592000 }],
|
||||
"publication": [{ "kinds": [4], "amount": 100, "unit": "msats" }],
|
||||
},
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Icon ###
|
||||
### Icon
|
||||
|
||||
A URL pointing to an image to be used as an icon for the relay. Recommended to be squared in shape.
|
||||
|
||||
```json
|
||||
{
|
||||
...
|
||||
...
|
||||
"icon": "https://nostr.build/i/53866b44135a27d624e99c6165cabd76ac8f72797209700acb189fce75021f47.jpg",
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Examples ###
|
||||
As of 2 May 2023 the following `curl` command provided these results.
|
||||
### Examples
|
||||
|
||||
>curl -H "Accept: application/nostr+json" https://eden.nostr.land
|
||||
As of 2 May 2023 the following command provided these results:
|
||||
|
||||
{"name":"eden.nostr.land",
|
||||
"description":"Eden Nostr Land - Toronto 1-01",
|
||||
"pubkey":"00000000827ffaa94bfea288c3dfce4422c794fbb96625b6b31e9049f729d700",
|
||||
"contact":"me@ricardocabral.io",
|
||||
"supported_nips":[1,2,4,9,11,12,15,16,20,22,26,28,33,40],
|
||||
"supported_nip_extensions":["11a"],
|
||||
"software":"git+https://github.com/Cameri/nostream.git",
|
||||
"version":"1.22.6",
|
||||
"limitation":{"max_message_length":1048576,
|
||||
"max_subscriptions":10,
|
||||
"max_filters":2500,
|
||||
"max_limit":5000,
|
||||
"max_subid_length":256,
|
||||
"max_event_tags":2500,
|
||||
"max_content_length":65536,
|
||||
"min_pow_difficulty":0,
|
||||
"auth_required":false,
|
||||
"payment_required":true},
|
||||
"payments_url":"https://eden.nostr.land/invoices",
|
||||
"fees":{"admission":[{"amount":5000000,"unit":"msats"}],
|
||||
"publication":[]}},
|
||||
"icon": "https://nostr.build/i/53866b44135a27d624e99c6165cabd76ac8f72797209700acb189fce75021f47.jpg"
|
||||
```
|
||||
~> curl -H "Accept: application/nostr+json" https://eden.nostr.land | jq
|
||||
|
||||
{
|
||||
"description": "nostr.land family of relays (us-or-01)",
|
||||
"name": "nostr.land",
|
||||
"pubkey": "52b4a076bcbbbdc3a1aefa3735816cf74993b1b8db202b01c883c58be7fad8bd",
|
||||
"software": "custom",
|
||||
"supported_nips": [
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
9,
|
||||
11,
|
||||
12,
|
||||
16,
|
||||
20,
|
||||
22,
|
||||
28,
|
||||
33,
|
||||
40
|
||||
],
|
||||
"version": "1.0.1",
|
||||
"limitation": {
|
||||
"payment_required": true,
|
||||
"max_message_length": 65535,
|
||||
"max_event_tags": 2000,
|
||||
"max_subscriptions": 20,
|
||||
"auth_required": false
|
||||
},
|
||||
"payments_url": "https://eden.nostr.land",
|
||||
"fees": {
|
||||
"subscription": [
|
||||
{
|
||||
"amount": 2500000,
|
||||
"unit": "msats",
|
||||
"period": 2592000
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user