NIP46
NOSTR 连接
draft
optional
author:tiero
author:giowe
author:vforvalerio87
基本原理
私钥应尽可能少地暴露给系统(应用程序、操作系统、设备),因为每个系统都会增加攻击面。
输入私钥也很烦人,并且需要将它们暴露给更多的系统,例如可能被恶意应用程序监视的操作系统剪贴板。
条款
应用程序:代表 NOSTR 帐户的任何平台要求上的 NOSTR 应用程序。
签名者:持有 NOSTR 帐户的私钥并可以签名代表该帐户的 NOSTR 应用程序。
`TL;博士
应用程序并且签名者使用选择的中继,使用种类 24133
向彼此发送短暂的加密消息。
APP 提示签名者执行获取公钥或签名事件等操作。
content
字段必须是加密的 JSONRPC-ISH请求或响应。
签名者协议
留言
请求
回应
方法
强制性的
以下是远程签名者应用程序必须实现的强制方法:
描述
参数 []
结果
["describe", "get_public_key", "sign_event", "connect", "disconnect", "delegate",...]
获取 _ 公共 _ 密钥
参数 []
结果
pubkey
为_ 事件签名
参数 [
event
]结果
event_with_signature
可选
连接
参数 [
pubkey
]
断开连接
参数 []
代表
参数 [
delegatee
,{ kind: number, since: number, until: number}
]结果
{ from: string, to: string, cond: string, sig: string}
去拿 _ 继电器
参数 []
结果
{ [url: string]: {read: boolean, write: boolean}}
NIP04_ 加密
参数 [
pubkey
,plaintext
]结果
nip4 ciphertext
NIP04_ 解密
参数 [
pubkey
,nip4 ciphertext
]结果 [
plaintext
]
注意: pubkey
和 signature
是十六进制编码的字符串。
NOSTR 连接 URI
通过扫描 QR 码、点击深层链接或复制粘贴 URI 来签名者发现应用程序。
应用程序生成一个特殊的 URI,其前缀 nostrconnect://
和基本路径使用以下 querystring 参数URL已编码进行十六进制编码 pubkey
连接且签名者必须发送和侦听消息的所选应用程序中继的
relay
URL.的应用程序
metadata
元数据 JSON的应用程序
name
人类可读名称url
(可选)请求连接的网站的 URLdescription
(可选)的应用程序说明icons
(可选)的应用程序图标的 URL 数组。
JavaScript
例子
流动
content
字段包含由指定NIP04的加密消息。 kind
被选中的是 24133
。
连接
用户点击网站上的**“连接”**按钮或用二维码扫描
它将显示一个 URI 来打开一个已启用的签名者“nostr connect ”
在 URI 中有一个 IE 的应用程序公钥。
nostrconnect://<pubkey>&relay=<relay>&metadata=<metadata>
他签名者将发送一条消息来确认
connect
请求,同时发送的还有他的公钥
断开连接(从应用程序)
用户单击**“断开连接”上的应用程序**按钮
应用程序将向签名者发送一条带有
disconnect
请求的消息签名者将发送消息以确认
disconnect
请求
断开(与签名者)
用户单击**“断开连接”上的签名者**按钮
签名者将向应用程序发送一条带有
disconnect
请求的消息
获取公钥
应用程序将向签名者发送一条带有
get_public_key
请求的消息签名者将发回一条包含公钥的消息作为对
get_public_key
请求的响应
签名事件
应用程序将向签名者发送一条消息,其中包含一个
sign_event
请求以及要签名的事件签名者将向用户显示一个弹出窗口,以检查事件并对其签名
signature
作为对sign_event
请求的响应,签名者将发回一条包含事件(包括id
和 schnorr)的消息
代表
应用程序将向签名者发送一条包含元数据的消息,其中包含一个
delegate
请求以及条件要委托的应用程序的查询字符串和公共钥匙。签名者将向用户显示一个弹出窗口,以委托应用程序代表其进行签名
签名者将发回带有签名NIP-26委派令牌的消息或拒绝该消息
Last updated