mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-22 00:25:50 -05:00
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
|
NIP-68
|
||
|
======
|
||
|
|
||
|
Picture-first feeds
|
||
|
-------------------
|
||
|
|
||
|
`draft` `optional`
|
||
|
|
||
|
This NIP defines event kind `20` for picture-first clients. Images must be self-contained. They are hosted externally and referenced using `imeta` tags
|
||
|
|
||
|
Unlike a `kind 1` event with a pircture attached, Picture events are meant to contain all additional metadata concerning the subject media and to be surfaced in picture-specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a Instagram/Flickr/Snapshat/9gag like nostr client where the picture itself is at the center of the experience.
|
||
|
|
||
|
## Picture Events
|
||
|
|
||
|
Picture events contain a `title` tag and description in the `.content`.
|
||
|
|
||
|
They may contain multiple images to be displayed as a single post.
|
||
|
|
||
|
```jsonc
|
||
|
{
|
||
|
"id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>,
|
||
|
"pubkey": <32-bytes lowercase hex-encoded public key of the event creator>,
|
||
|
"created_at": <Unix timestamp in seconds>,
|
||
|
"kind": 20,
|
||
|
"content": "<description of post>",
|
||
|
"tags": [
|
||
|
["title", "<short title of post>"],
|
||
|
|
||
|
// Picture Data
|
||
|
[
|
||
|
"imeta",
|
||
|
"url https://nostr.build/i/my-image.jpg",
|
||
|
"m image/jpeg",
|
||
|
"blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$",
|
||
|
"dim 3024x4032",
|
||
|
"alt A scenic photo overlooking the coast of Costa Rica",
|
||
|
"x <sha256 hash as specified in NIP 94>",
|
||
|
"fallback https://nostrcheck.me/alt1.jpg",
|
||
|
"fallback https://void.cat/alt1.jpg"
|
||
|
],
|
||
|
[
|
||
|
"imeta",
|
||
|
"url https://nostr.build/i/my-image2.jpg",
|
||
|
"m image/jpeg",
|
||
|
"blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$",
|
||
|
"dim 3024x4032",
|
||
|
"alt Another scenic photo overlooking the coast of Costa Rica",
|
||
|
"x <sha256 hash as specified in NIP 94>",
|
||
|
"fallback https://nostrcheck.me/alt2.jpg",
|
||
|
"fallback https://void.cat/alt2.jpg",
|
||
|
|
||
|
"annotate-user <32-bytes hex of a pubkey>:<posX>:<posY>" // Tag users in specific locations in the picture
|
||
|
],
|
||
|
|
||
|
["content-warning", "<reason>"], // if NSFW
|
||
|
|
||
|
// Tagged users
|
||
|
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
|
||
|
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
|
||
|
|
||
|
// Hashtags
|
||
|
["t", "<tag>"],
|
||
|
["t", "<tag>"],
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
The `imeta` tag `annotate-user` places a user link in the specific position in the image.
|
||
|
|
||
|
Picture events might be used with [NIP-71](71.md)'s kind `34236` to display short vertical videos in the same feed.
|