Nostr社区党支部书记 on Nostr: #nostr科普贴 # Nostr NIPs 详细解释与示例 下面是对主要Nostr ...
#nostr科普贴
# Nostr NIPs 详细解释与示例
下面是对主要Nostr NIPs的详细解释,并为每个NIP提供具体示例:
## NIP-01: 基本协议
**用途**:定义Nostr的基本事件结构和协议
**示例**:发布一条简单的文本帖子
```json
{
"id": "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65",
"pubkey": "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45",
"created_at": 1685222400,
"kind": 1,
"tags": [],
"content": "这是我的第一条Nostr帖子!",
"sig": "8b5e5bed7146e25d9300b714b98067f8f98020153828d86a8b7031083d0adc293761f1a8af289bfc83b93c36a8ecdb8164f0193c0b5a2e0bf4ae29db18d5ea86"
}
```
## NIP-02: 联系人列表
**用途**:允许用户管理关注列表
**示例**:创建一个包含两个联系人的关注列表
```json
{
"kind": 3,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245", "wss://relay.damus.io", "Alice"],
["p", "14aeb4d6a785b0ec1fb9a34c2a1ca35458b7986d0b5ee088816d0accf75d8891", "wss://relay.snort.social", "Bob"]
],
"content": "",
"created_at": 1685222450
}
```
## NIP-04: 加密直接消息
**用途**:允许用户发送加密的私人消息
**示例**:发送加密消息给某用户
```json
{
"kind": 4,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"]
],
"content": "this-is-an-encrypted-message-only-recipient-can-decrypt",
"created_at": 1685222500
}
```
## NIP-05: DNS身份验证
**用途**:将Nostr公钥与网络域名关联
**示例**:用户在个人资料中设置NIP-05标识符
```json
{
"kind": 0,
"content": "{\"name\":\"Alice\",\"nip05\":\"alice@example.com\"}",
"created_at": 1685222550
}
```
网站example.com上的`/.well-known/nostr.json`文件:
```json
{
"names": {
"alice": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"
}
}
```
## NIP-08: 提及处理
**用途**:实现对用户和事件的引用
**示例**:发布提及用户并引用另一条帖子的笔记
```json
{
"kind": 1,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"]
],
"content": "嘿 npub18de9d6f3skzuhgj9zegr8qsn4e8n87ce5gf0qzkcjrjk7xazqgvqrdguwe (npub18de…guwe),我也同意 note1z54hs4v5k6cj6jt3c38aw33wh5zqzgsa4hg2qsyxwfpkhprhjkxq69pylt 中说的!",
"created_at": 1685222600
}
```
## NIP-09: 事件删除
**用途**:允许用户删除自己之前发布的事件
**示例**:删除之前发送的帖子
```json
{
"kind": 5,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"]
],
"content": "删除这条帖子,因为有拼写错误",
"created_at": 1685222650
}
```
## NIP-10: 回复标记约定
**用途**:定义如何标记回复和引用关系
**示例**:回复特定帖子
```json
{
"kind": 1,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65", "", "root"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"]
],
"content": "这是对你帖子的回复!",
"created_at": 1685222700
}
```
## NIP-19: bech32编码实体
**用途**:提供人类可读的编码格式
**示例**:使用bech32格式分享公钥和事件ID
```
npub1deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
note1deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
```
## NIP-23: 长文内容
**用途**:支持发布长篇文章
**示例**:发布博客文章
```json
{
"kind": 30023,
"content": "# 我的第一篇Nostr文章\n\n这是一篇使用Markdown格式的长文章...",
"tags": [
["title", "我的第一篇Nostr文章"],
["summary", "这是我发布在Nostr上的第一篇长文"],
["published_at", "1685222750"],
["t", "nostr"],
["t", "教程"]
],
"created_at": 1685222750
}
```
## NIP-25: 反应
**用途**:允许对帖子进行点赞等反应
**示例**:对帖子点赞
```json
{
"kind": 7,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"]
],
"content": "+",
"created_at": 1685222800
}
```
## NIP-28: 公共聊天频道
**用途**:提供群组聊天功能
**示例**:创建一个聊天频道
```json
{
"kind": 40,
"content": "{\"name\":\"Nostr爱好者\",\"about\":\"讨论Nostr协议和应用\",\"picture\":\"https://example.com/channel.jpg\";}",
"tags": [
["t", "nostr"],
["t", "技术"]
],
"created_at": 1685222850
}
```
## NIP-36: 敏感内容标记
**用途**:允许标记敏感或不适内容
**示例**:发布带有内容警告的帖子
```json
{
"kind": 1,
"content": "这条帖子包含可能令人不安的信息...",
"tags": [
["content-warning", "政治讨论"]
],
"created_at": 1685222900
}
```
## NIP-42: 中继认证
**用途**:提供中继认证机制
**示例**:向中继发送认证请求
```json
{
"kind": 22242,
"content": "",
"tags": [
["relay", "wss://example-relay.com"],
["challenge", "random-string-from-relay"]
],
"created_at": 1685222950
}
```
## NIP-51: 列表
**用途**:允许创建各种类型的列表
**示例**:创建一个书签列表
```json
{
"kind": 30001,
"content": "我收藏的帖子",
"tags": [
["d", "bookmarks"],
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["e", "8f7afe69619155ca32e564738ee1fca4c2c4a8f32ee8f552110d28a428770ca7"]
],
"created_at": 1685223000
}
```
## NIP-57: 闪电赞赏
**用途**:支持比特币闪电网络打赏
**示例**:发送带有打赏信息的帖子
```json
{
"kind": 9734,
"content": "我喜欢你的内容!这是一点赞赏。",
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"],
["amount", "10000"],
["lnurl", "lightning:lnurl1dp68gurn8ghj7um9w3skccne9e3k7mf0w3skwctnw3tj7vtyvsurgepk8y6nzv9knzcf5v3skctzwfjhyatz9ekxz6twvekxjcnyv56nvvt9v5cnqcf5x33nxfjkgctjvs"]
],
"created_at": 1685223050
}
```
## NIP-90: 数据验证机器(DVM)
**用途**:提供去中心化计算服务
**示例**:请求AI生成一张图像
```json
{
"kind": 5000,
"content": "{\"prompt\":\"一个阳光明媚的海滩场景\"}",
"tags": [
["i", "ai-image-gen"],
["amount", "1000"],
["payment_hash", "1234..."],
["expiration", "1685223150"]
],
"created_at": 1685223100
}
```
## NIP-98: 登录认证
**用途**:使用Nostr身份登录第三方网站
**示例**:生成用于网站登录的认证事件
```json
{
"kind": 27235,
"created_at": 1685223200,
"tags": [
["u", "https://example.com/login";],
["method", "GET"],
["payload", ""]
],
"content": ""
}
```
这些示例展示了Nostr协议通过不同NIP实现的多样化功能,从基本的社交网络功能如发帖、评论,到高级功能如加密通信、支付集成和去中心化计算。每个NIP都扩展了协议的功能,共同构建了Nostr的完整生态系统。
# Nostr NIPs 详细解释与示例
下面是对主要Nostr NIPs的详细解释,并为每个NIP提供具体示例:
## NIP-01: 基本协议
**用途**:定义Nostr的基本事件结构和协议
**示例**:发布一条简单的文本帖子
```json
{
"id": "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65",
"pubkey": "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45",
"created_at": 1685222400,
"kind": 1,
"tags": [],
"content": "这是我的第一条Nostr帖子!",
"sig": "8b5e5bed7146e25d9300b714b98067f8f98020153828d86a8b7031083d0adc293761f1a8af289bfc83b93c36a8ecdb8164f0193c0b5a2e0bf4ae29db18d5ea86"
}
```
## NIP-02: 联系人列表
**用途**:允许用户管理关注列表
**示例**:创建一个包含两个联系人的关注列表
```json
{
"kind": 3,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245", "wss://relay.damus.io", "Alice"],
["p", "14aeb4d6a785b0ec1fb9a34c2a1ca35458b7986d0b5ee088816d0accf75d8891", "wss://relay.snort.social", "Bob"]
],
"content": "",
"created_at": 1685222450
}
```
## NIP-04: 加密直接消息
**用途**:允许用户发送加密的私人消息
**示例**:发送加密消息给某用户
```json
{
"kind": 4,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"]
],
"content": "this-is-an-encrypted-message-only-recipient-can-decrypt",
"created_at": 1685222500
}
```
## NIP-05: DNS身份验证
**用途**:将Nostr公钥与网络域名关联
**示例**:用户在个人资料中设置NIP-05标识符
```json
{
"kind": 0,
"content": "{\"name\":\"Alice\",\"nip05\":\"alice@example.com\"}",
"created_at": 1685222550
}
```
网站example.com上的`/.well-known/nostr.json`文件:
```json
{
"names": {
"alice": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"
}
}
```
## NIP-08: 提及处理
**用途**:实现对用户和事件的引用
**示例**:发布提及用户并引用另一条帖子的笔记
```json
{
"kind": 1,
"tags": [
["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"]
],
"content": "嘿 npub18de9d6f3skzuhgj9zegr8qsn4e8n87ce5gf0qzkcjrjk7xazqgvqrdguwe (npub18de…guwe),我也同意 note1z54hs4v5k6cj6jt3c38aw33wh5zqzgsa4hg2qsyxwfpkhprhjkxq69pylt 中说的!",
"created_at": 1685222600
}
```
## NIP-09: 事件删除
**用途**:允许用户删除自己之前发布的事件
**示例**:删除之前发送的帖子
```json
{
"kind": 5,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"]
],
"content": "删除这条帖子,因为有拼写错误",
"created_at": 1685222650
}
```
## NIP-10: 回复标记约定
**用途**:定义如何标记回复和引用关系
**示例**:回复特定帖子
```json
{
"kind": 1,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65", "", "root"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"]
],
"content": "这是对你帖子的回复!",
"created_at": 1685222700
}
```
## NIP-19: bech32编码实体
**用途**:提供人类可读的编码格式
**示例**:使用bech32格式分享公钥和事件ID
```
npub1deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
note1deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
```
## NIP-23: 长文内容
**用途**:支持发布长篇文章
**示例**:发布博客文章
```json
{
"kind": 30023,
"content": "# 我的第一篇Nostr文章\n\n这是一篇使用Markdown格式的长文章...",
"tags": [
["title", "我的第一篇Nostr文章"],
["summary", "这是我发布在Nostr上的第一篇长文"],
["published_at", "1685222750"],
["t", "nostr"],
["t", "教程"]
],
"created_at": 1685222750
}
```
## NIP-25: 反应
**用途**:允许对帖子进行点赞等反应
**示例**:对帖子点赞
```json
{
"kind": 7,
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"]
],
"content": "+",
"created_at": 1685222800
}
```
## NIP-28: 公共聊天频道
**用途**:提供群组聊天功能
**示例**:创建一个聊天频道
```json
{
"kind": 40,
"content": "{\"name\":\"Nostr爱好者\",\"about\":\"讨论Nostr协议和应用\",\"picture\":\"https://example.com/channel.jpg\";}",
"tags": [
["t", "nostr"],
["t", "技术"]
],
"created_at": 1685222850
}
```
## NIP-36: 敏感内容标记
**用途**:允许标记敏感或不适内容
**示例**:发布带有内容警告的帖子
```json
{
"kind": 1,
"content": "这条帖子包含可能令人不安的信息...",
"tags": [
["content-warning", "政治讨论"]
],
"created_at": 1685222900
}
```
## NIP-42: 中继认证
**用途**:提供中继认证机制
**示例**:向中继发送认证请求
```json
{
"kind": 22242,
"content": "",
"tags": [
["relay", "wss://example-relay.com"],
["challenge", "random-string-from-relay"]
],
"created_at": 1685222950
}
```
## NIP-51: 列表
**用途**:允许创建各种类型的列表
**示例**:创建一个书签列表
```json
{
"kind": 30001,
"content": "我收藏的帖子",
"tags": [
["d", "bookmarks"],
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["e", "8f7afe69619155ca32e564738ee1fca4c2c4a8f32ee8f552110d28a428770ca7"]
],
"created_at": 1685223000
}
```
## NIP-57: 闪电赞赏
**用途**:支持比特币闪电网络打赏
**示例**:发送带有打赏信息的帖子
```json
{
"kind": 9734,
"content": "我喜欢你的内容!这是一点赞赏。",
"tags": [
["e", "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65"],
["p", "1f5fe03f2965c8801531577e5c8e6f6fdac496a002c732410760af868b6d9b45"],
["amount", "10000"],
["lnurl", "lightning:lnurl1dp68gurn8ghj7um9w3skccne9e3k7mf0w3skwctnw3tj7vtyvsurgepk8y6nzv9knzcf5v3skctzwfjhyatz9ekxz6twvekxjcnyv56nvvt9v5cnqcf5x33nxfjkgctjvs"]
],
"created_at": 1685223050
}
```
## NIP-90: 数据验证机器(DVM)
**用途**:提供去中心化计算服务
**示例**:请求AI生成一张图像
```json
{
"kind": 5000,
"content": "{\"prompt\":\"一个阳光明媚的海滩场景\"}",
"tags": [
["i", "ai-image-gen"],
["amount", "1000"],
["payment_hash", "1234..."],
["expiration", "1685223150"]
],
"created_at": 1685223100
}
```
## NIP-98: 登录认证
**用途**:使用Nostr身份登录第三方网站
**示例**:生成用于网站登录的认证事件
```json
{
"kind": 27235,
"created_at": 1685223200,
"tags": [
["u", "https://example.com/login";],
["method", "GET"],
["payload", ""]
],
"content": ""
}
```
这些示例展示了Nostr协议通过不同NIP实现的多样化功能,从基本的社交网络功能如发帖、评论,到高级功能如加密通信、支付集成和去中心化计算。每个NIP都扩展了协议的功能,共同构建了Nostr的完整生态系统。