mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-23 08:55:52 -05:00
52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
NIP-110
|
|
=======
|
|
|
|
License tag
|
|
-----------
|
|
|
|
`draft` `optional` `author:degenrocket`
|
|
|
|
This NIP defines how to add licenses to Nostr events.
|
|
|
|
### Problems
|
|
|
|
Currently, the Nostr ecosystem is growing in a very friendly environment, but once the environment will change to hostile, relays and clients can face legal responsibilities for distributing the copyright-protected content. At the moment of writing, a user who signs a Nostr event doesn't give an explicit permission for his content to be distributed without any restriction.
|
|
|
|
Another problem is that some users want to use different licenses for different content like text and media files.
|
|
|
|
### Solution
|
|
|
|
The easiest solution for this problem is to add a license to each signed event in accordance with the [SPASM](https://github.com/degenrocket/spasm) specification.
|
|
|
|
Then relays and clients can check whether events have an MIT license or any other license and choose whether to display/distribute such events or not.
|
|
|
|
While adding a dedicated license field (e.g., `"license":"MIT"`) would be ideal, the easiest solution with backwards-compatibility is to add a license as a tag.
|
|
|
|
```js
|
|
tags: [
|
|
[
|
|
"license",
|
|
"MIT"
|
|
]
|
|
]
|
|
```
|
|
|
|
### Implementation
|
|
|
|
Here is an example of adding an MIT license to each Nostr event as a tag.
|
|
|
|
```js
|
|
let nostrEvent = {
|
|
kind: 1,
|
|
created_at: Math.floor(Date.now() / 1000),
|
|
tags: [
|
|
[
|
|
"license",
|
|
"MIT"
|
|
]
|
|
],
|
|
content: "not your keys, not your words",
|
|
pubkey: "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9",
|
|
}
|
|
```
|