Nostr Signer

com.frontiercrown.signer由 signer.frontiercrown.com 发布官方发布者v0.4.0更新于 Nov 2, 2026

Approve Nostr signatures with your own browser signer without exposing a private key.

已验证Streamable HTTP可网页运行金融安全与监控

概览

AI 生成的概览

把 AI 助手连接到用户自己掌控的 Nostr 签名器,可准备、签名并发布事件,而助手始终不接触私钥。

可以做什么
  • 连接与查看签名器:获取本机回环设置页、检查签名器状态、通过 nostrconnect 或 bunker URI 配对、读取公钥、断开连接
  • 准备与签名事件:绑定一条确切的 kind:1 笔记或通用事件供审阅,再针对该确切意图请求签名
  • 发布与读取:把已验证的签名事件发布到配置的中继并逐个中继确认,以及按限定条件查询公开的个人资料与笔记事件
  • Grynvault 账户:读取只读的支持者、付款与 NIP-05 面板,并批准短期浏览器交接码
  • Grynvault 发票:准备并在另行确认后创建一张待付款的支持者捐赠发票或 2,000 sats 的 NIP-05 发票
适用场景
适合希望助手起草、签名并发布 Nostr 笔记或事件,同时私钥始终留在 NIP-07 浏览器扩展或 NIP-46 远程签名器中的场景。面向能在本机运行桥接程序、并在自己的浏览器中逐次批准签名的桌面用户。
运行要求
托管端点无需账号或 OAuth,只需一个装有兼容 NIP-07 扩展的浏览器完成配对。推荐的本地安装需要 Node.js 22 或更高版本、npm、装有 Alby、nos2x 或其他 NIP-07 签名器的 Chrome 或 Firefox 系浏览器配置,并把 NOSTR_RELAYS 设为逗号分隔的 wss:// 中继地址;设置页仅绑定 127.0.0.1 的 34846 端口,可用 NOSTR_SETUP_PORT 修改。
安装前请注意
签名与发布是分开的、需明确确认的步骤,发布会写入公共中继。托管测试版会把事件内容、公钥、签名和中继响应经 Frontier Crown 的基础设施传输,并自称未经审计的 alpha,建议改用本地安装。切勿把 nsec、助记词或私钥粘贴到对话或工具调用中,并把 bunker 与 nostrconnect URI 当作临时密码。发票工具只创建待付款发票,不会付款或结算。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Nostr Signer,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.frontiercrown.signer%2Fnostr-signer/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "nostr-signer": {
      "type": "http",
      "url": "https://signer.frontiercrown.com/mcp"
    }
  }
}

README

Nostr Signer for ChatGPT and Codex

A local-first, open-source signer bridge that lets ChatGPT Work or Codex request Nostr signatures from Alby, nos2x, another NIP-07 browser extension, or an advanced NIP-46 remote signer. The signer keeps the private key. This project never needs, accepts, stores, logs, or transmits an nsec.

Use the local installation for the strongest security. It keeps the approval page and session coordinator on your computer. The hosted bridge is a convenience beta: event contents, public keys, signatures, ciphertext, and relay responses transit infrastructure operated by Frontier Crown on Railway. Hosted NIP-44 encryption and decryption are disabled because plaintext could otherwise transit that infrastructure.

Release status: v0.4.0 local public beta plus a live accountless hosted alpha. Live Chrome-family NIP-07 public-key access and signing succeeded on 2026-09-10. A user-approved announcement was accepted and independently read back with a valid signature from nos.lol, nostr.mom, and relay.primal.net. The hosted MCP endpoint at https://signer.frontiercrown.com/mcp completed external initialization and two-session pairing-page isolation tests. Its reduced hosted surface exposes 17 tools and omits NIP-44 encrypt/decrypt. It is active in the official MCP Registry but has not been approved by the OpenAI directory.

Will it work for everyone?

Not universally. The current release is for desktop users who can run Node.js 22+, connect a local stdio MCP server, and open the approval page in a Chrome- or Firefox-family profile with a compatible NIP-07 extension. It is not a mobile signer or unattended signing daemon. Prefer a signer that displays the complete event—including kind, content, tags, and timestamp—before every approval.

The free local plugin is the primary, recommended public release because each user keeps the key and runs the bridge. It needs no OAuth or separate account: the browser extension supplies the Nostr public key and approves each signature. The hosted prototype also has no OAuth or user accounts: it binds each AI MCP session to an extension-enabled browser with a short-lived, high-entropy capability URL. It still needs per-session isolation, abuse controls, privacy/retention operations, and an independent security review. See LAUNCH_READINESS.md, COMPATIBILITY.md, and HOSTED_SERVICE.md.

Install in Codex

Clone the public source, verify the release tag, build it locally, and register the bundled MCP server. Then start a new Codex task so its tools are loaded:

bash
git clone --branch v0.4.0 https://github.com/hudhaifahz/nostr-signer-chatgpt.gitcd nostr-signer-chatgptnpm cinpm run checkcodex mcp add nostr-signer -- node "$PWD/mcp/server.mjs"

The repository includes portable plugin manifests, but a one-command Grynvault marketplace wrapper is not published yet. Inspect the source and release tag before installing; the local signer bridge runs with the permissions of the desktop user who starts it.

Download the prebuilt local bundle

The release page includes a prebuilt archive and SHA-256 checksum. It contains the standalone MCP bundle, plugin manifests, signer skill, license notices, source, tests, and documentation. It does not contain a private key, signer session, or browser data.

Build hashes and the live deployment's claimed source revision are documented in PROVENANCE.md and published at https://signer.frontiercrown.com/provenance. Tagged archives receive GitHub build provenance attestations.

bash
curl -LO https://github.com/hudhaifahz/nostr-signer-chatgpt/releases/download/v0.4.0/nostr-signer-chatgpt-0.4.0.tgzcurl -LO https://github.com/hudhaifahz/nostr-signer-chatgpt/releases/download/v0.4.0/nostr-signer-chatgpt-0.4.0.tgz.sha256shasum -a 256 -c nostr-signer-chatgpt-0.4.0.tgz.sha256mkdir nostr-signer-chatgpttar -xzf nostr-signer-chatgpt-0.4.0.tgz -C nostr-signer-chatgpt --strip-components=1codex mcp add nostr-signer -- node "$PWD/nostr-signer-chatgpt/mcp/server.mjs"

Expected SHA-256 for the v0.4.0 bundle: 75d2c2cc7070ce0a15dbc122c479c312919279ff4160ed9e7e1993c335ce95a5.

The ordinary-user journey

  1. Install and start the plugin locally.
  2. Open the local setup page at http://127.0.0.1:34846/ in the Chrome or Firefox profile where Alby, nos2x, or another NIP-07 signer is installed.
  3. Click Connect browser extension once and approve public-key access in the extension. Keep this page open.
  4. Ask ChatGPT or Codex to prepare a Nostr note.
  5. Review the exact note. Tell ChatGPT or Codex to request the signature.
  6. The local page shows the exact pending operation. Click Continue in extension, then approve in the extension if it asks.
  7. Separately tell ChatGPT or Codex to publish. A post is reported live only when at least one relay acknowledges it.

To use the same signer inside a NIP-46-capable app such as Noornote or YakiHonne, connect the browser extension first, click Create app sign-in link, copy the private bunker:// link, and paste it into the app's Remote signer or Bunker login. Return to the local page to approve the exact client public key and every subsequent signing, encryption, or decryption request. The link expires, is valid for one approved client, and must be treated like a temporary password.

For Grynvault in the Codex in-app browser, open https://frontiercrown.com/portal, click Sign in with Codex signer, and ask Codex to approve the exact short code using this plugin. The portal tab keeps a separate high-entropy secret; the short code only locates the pending request. The signed authorization returns that public key's read-only account dashboard to the originating tab and does not publish an event, create an invoice, change settlement, or grant wallet custody.

Never paste an nsec, raw private key, seed phrase, or backup into ChatGPT, Codex, the setup page, or a tool call. If an nsec was exposed, rotate it in a trusted signer outside this project.

Architecture

mermaid
flowchart LR  U[User] --> C[ChatGPT Work or Codex]  U --> E[Alby, nos2x, or NIP-07 extension]  U --> S[Advanced NIP-46 signer]  U --> A[Noornote, YakiHonne,  or another NIP-46 app]  C -->|focused MCP tools| P[Local plugin process]  B[Local approval page\n127.0.0.1 only] <--> P  B -->|window.nostr request| E  E -->|signed or encrypted result| B  P -->|NIP-46 encrypted requests| R[(Configured Nostr relays)]  A -->|NIP-46 encrypted requests| R  R -->|approval-gated responses| P  R -->|NIP-46 events| S  S -->|approve or reject| R  P -->|verified signed event\nafter separate publish intent| R
  K[nsec] -. remains inside signer .-> E  K -. remains inside signer .-> S

The code separates the signer interface, session/intent state, relay gateway, MCP adapter, and local UI. A future MCP Apps component, WebMCP site tool, hardware signer, or different transport can reuse the service layer without changing event-validation policy.

What is implemented

  • Primary NIP-07 bridge for Alby, nos2x, and compatible extensions: one local connection, one queued approval at a time, random request IDs, stale-response rejection, and no private-key access.
  • Advanced bunker:// and client-generated nostrconnect:// flows using nostr-tools NIP-46 support.
  • Experimental remote-signer mode for third-party NIP-46 clients. It creates a one-client, short-lived bunker:// link, accepts both NIP-44 and legacy NIP-04 encrypted RPC transport, and requires local approval for connect, event signing, NIP-04, and NIP-44 operations.
  • get_public_key, exact generic-event and kind:1 preparation, bound sign_event, nip44_encrypt, nip44_decrypt, separately confirmed publish_event, and bounded relay reads for kinds 0 and 1.
  • Exact unsigned-event validation, signature/hash verification, signer-pubkey binding, one-use signing intents, timeouts, session expiry, and stale-pairing rejection.
  • Per-relay publication acknowledgements. No success claim when every relay rejects or times out.
  • In-memory-only signer sessions. Restarting or disconnecting forgets pairing material and prepared events.
  • A localhost-only setup page with a per-process anti-CSRF token, request size limit, no external scripts, and no persistence.
  • Redacted structured logs and hard rejection of nsec-like input.
  • Signed Grynvault account-dashboard access plus separately prepared/confirmed supporter and 2,000-sat [email protected] NIP-05 invoice requests. An invoice response is always reported as pending, never as payment or settlement.
  • Short-lived Grynvault in-app browser handoff approval bound to the exact HTTPS URL, challenge, code, and payload hash. Only the browser holding the separate secret can claim its read-only dashboard.
  • Portable Agent Plugins manifests plus the scaffolded Codex compatibility manifest.
  • A deterministic safe simulated signer/relay path for CI and onboarding.

Local setup

Requirements: Node.js 22 or later and npm. Use a test Nostr identity for the public beta.

bash
npm cicp .env.example .envnpm run buildnpm start

Set NOSTR_RELAYS to comma-separated wss:// relay URLs before live pairing or publication. The example file contains starting values, not an availability guarantee. ws:// is rejected except for localhost/loopback test relays.

The setup page binds to and accepts only 127.0.0.1. Open it in the browser profile containing your NIP-07 extension—not the Codex in-app browser unless that browser actually has such an extension. Connect once and keep the tab open while signing. The page queues the exact request and requires a browser-side click before calling window.nostr. That interaction gate is not proof of human presence when the host also has browser automation, so the extension's own approval policy remains the final protection.

The advanced section accepts a bunker: URI only in memory and never logs it. A generated nostrconnect: URI contains an ephemeral pairing secret; treat it as sensitive and do not post it publicly.

The experimental third-party-app section makes this plugin act as the remote signer. Its generated bunker:// link is shown only on the loopback page and is not exposed as an MCP tool. One client can be connected at a time. Stopping the bridge, restarting the process, or reaching the session expiry invalidates that app connection; reconnect the app with a new link.

Local demo

The safe onboarding demo exercises prepare → sign → verify → publish entirely in memory:

bash
npm run demo

The output includes a simulated public key, event ID, and relay acknowledgement. It does not prove compatibility with a live signer or public relay.

To inspect the real MCP tool surface locally:

bash
npm run buildnpx @modelcontextprotocol/inspector node mcp/server.mjs

To connect this checkout directly to a local Codex host without installing a marketplace package:

bash
codex mcp add nostr-signer -- node /absolute/path/to/nostr-signer-chatgpt/mcp/server.mjs

Then restart the ChatGPT desktop app/Codex host and use /mcp or MCP settings to verify the server. For a packaged install, use the included plugin.json, mcp.json, .codex-plugin/plugin.json, .mcp.json, skill, and committed mcp/server.mjs bundle in a local marketplace. The current OpenAI documentation distinguishes local Codex stdio support from ChatGPT web. The accountless hosted alpha is available at https://signer.frontiercrown.com/mcp; it uses short-lived capability sessions rather than OAuth.

OpenClaw currently documents support for Agent Plugin/Codex bundles. After downloading and unpacking the release, install the local directory (or the release archive, if your OpenClaw version accepts it), inspect the plugin, and restart OpenClaw:

bash
openclaw plugins install /absolute/path/to/nostr-signer-chatgptopenclaw plugins inspect nostr-signer-chatgpt

This package has the required bundle layout, but an OpenClaw installation was not available in this validation environment. Treat it as intended compatibility until the live install, tool discovery, and signer round-trip are captured in COMPATIBILITY.md.

Relevant OpenAI guidance: plugin packaging, connecting and testing, and Codex MCP configuration.

Example conversation

You: Connect my signer safely.

Assistant: Open the local setup URL in the browser profile where Alby or nos2x is installed, click Connect browser extension, and approve public-key access. I will wait for the signer status to become connected.

You: Prepare “Hello Nostr” as a note.

Assistant: Here is the exact kind:1 event preview. It is not signed or published. Should I request its signature?

You: Yes, request the signature.

Assistant: The exact request is waiting on the local page. Click Continue in extension, then approve in the extension. The verified event will remain signed but not published until you separately tell me to publish.

You: Publish it.

Assistant: Relay A accepted the event; Relay B timed out. The event is live on at least Relay A.

Tools and safety gates

ToolPurposeGate
get_setup_urlReturn the loopback extension/setup pageNone
get_signer_statusRead in-memory connection stateNone
begin_nostrconnect_pairingAdvanced: create an ephemeral pairing URIUser initiates pairing; signer approves
connect_bunkerAdvanced: connect an existing bunker URIPrefer localhost UI; signer approves
get_public_keyRead the signer-exposed public keyActive session
prepare_noteBind an exact kind:1 eventNo signing or network write
prepare_eventBind any exact valid event templateNo signing or network write; show every field
sign_eventSign exactly one prepared intentExplicit tool confirmation and signer approval
publish_eventPublish the verified stored eventSeparate explicit confirmation
nip44_encrypt / nip44_decryptLocal edition only: ask signer for NIP-44 operationDisabled on hosted service; local use requires explicit confirmation
query_eventsRead verified public kind 0/1 eventsBounded filters and result count
disconnect_signerForget session and intentsExplicit confirmation
get_grynvault_account_dashboardSign and retrieve the connected pubkey's read-only Grynvault dashboardExplicit signed-access confirmation; creates no invoice
approve_grynvault_browser_handoffApprove the exact short code shown by a Grynvault in-app browser tabExplicit confirmation; read-only dashboard only; no publication or invoice
prepare_grynvault_supporter_invoicePrepare an exact 21–1,000,000-sat donation or 2,100-sat/30-day requestNo signing or invoice creation
create_grynvault_supporter_invoiceSign and submit one prepared supporter requestSeparate explicit invoice-creation confirmation; returns pending only
prepare_grynvault_nip05_invoiceCheck and prepare a 2,000-sat [email protected] requestNo signing, reservation, or invoice creation
create_grynvault_nip05_invoiceSign and submit one prepared NIP-05 requestSeparate explicit invoice-creation confirmation; no activation claim

Grynvault integration

Grynvault authorization uses a fresh kind 27235 Nostr HTTP-auth event bound to the exact HTTPS URL, POST method, server challenge, and SHA-256 hash of the exact JSON body. The same NIP-07/NIP-46 signer and signature-verification pipeline is used; the resulting authorization is sent only to the fixed Grynvault production API origin.

Supporter membership and paid NIP-05 remain different products. A one-time supporter donation can be 21 through 1,000,000 sats, the optional 30-day plan is 2,100 sats, and a [email protected] invoice is 2,000 sats. Creating an invoice does not pay it. A checkout URL, browser redirect, or pending response does not activate a supporter entitlement or NIP-05 identifier; only separately verified BTCPay settlement can do that.

Production v117 is live at commit 7517fea8fe2a46ee96321e2ba694e91f781a4fc0. A live in-app browser handoff approved the exact signed request and returned the originating tab's dashboard for pubkey 0ab377…9b5bd; the portal then displayed account, Drive, Arkade, NIP-05, and settled-payment status. No invoice was created, no Nostr event was published, and no settlement changed during that test.

See GRYNVAULT_INTEGRATION.md for the exact MCP inputs, HTTP bodies, and signature tags.

Signer status

SignerIntended connectionAutomated evidenceLive evidence in this RC
Simulated signerIn-process test adapterPassingNot a live signer
AlbyNIP-07 browser bridgeBridge testsProvider/version not captured in live test
nos2xNIP-07 browser bridgeBridge testsProvider/version not captured in live test
Unidentified compatible extension in BraveNIP-07 browser bridgeSame bridge testsLive public-key connection and v117 Grynvault handoff passed
AmberNIP-46 / bunker-compatible targetProtocol path onlyNot tested
nsec.appNIP-46 / bunker-compatible targetProtocol path onlyNot tested
ClaveNIP-46 / bunker-compatible targetProtocol path onlyNot tested
Other bunker-compatible signersbunker: or nostrconnect:Protocol path onlyNot tested

“Intended” is not a compatibility claim. Record signer/version, pairing mode, relay set, requested method, approval UI, returned event verification, and publication acknowledgement before changing a signer to “tested.”

How the NIP-07 bridge works

NIP-07 defines window.nostr.getPublicKey(), window.nostr.signEvent(), and optional encryption methods for browser pages. The plugin does not inject or impersonate an extension. Its loopback page detects the API supplied by an installed signer, sends one reviewed request to it, and returns the result to the same verification pipeline used by NIP-46. The NIP-07 specification defines the standard interface.

The extension decides whether to prompt, approve, or reject. Use a signer that displays the complete event before every approval; do not approve from a generic “sign” prompt when the event cannot be inspected. Multiple installed signer extensions can contend for window.nostr; use a dedicated browser profile if selection is ambiguous.

Why there is no private-key fallback

GitHub and Cloudflare secret stores protect values at rest, but signing code must recover usable key material at runtime. That would turn this plugin into a remotely custodial hot signer and expand signing authority to deployment credentials, operators, and any compromised runtime. Local encrypted storage has the same runtime-unlock problem. This project therefore keeps the private key in the user's extension or remote signer.

Troubleshooting

  • No relays are configured: copy .env.example to .env, or provide relays to the pairing tool. The included start command loads .env when it exists.
  • No extension is detected: copy the setup URL into the Chrome or Firefox profile where Alby or nos2x is installed and unlocked, then reload the page. The Codex in-app browser normally does not share those extensions.
  • More than one extension is installed: disable the unwanted signer for this site or use a browser profile with only the intended extension.
  • A request is waiting: keep the setup page open, review the displayed operation, click Continue in extension, and complete any extension prompt. Do not silently retry after a timeout.
  • Pairing stays pending: verify the exact relay set is reachable by both client and signer, approve in the signer, and retry with a fresh URI after five minutes. Pairing URIs are one-session secrets.
  • Signer request times out: check signer connectivity and relay reachability. Prepare a new event; do not silently retry an ambiguous signing request.
  • All publish acknowledgements fail: the signed event is retained for an explicit retry during the same session. Check relay policy, authentication requirements, and network access.
  • Setup page will not start: another process may own port 34846. Set NOSTR_SETUP_PORT to a free local port.
  • ChatGPT web cannot reach the server: stdio is local-host only. Use a reviewed Secure MCP Tunnel for development or deploy an authenticated streamable-HTTP server before hosted use.

Developer commands

CommandResult
npm run formatFormat source, tests, and manifests
npm run format:checkCheck formatting without writing
npm run lintRun static lint rules
npm run typecheckStrict TypeScript check
npm testRun unit and mocked integration tests
npm run buildType-check and create the committed standalone mcp/server.mjs entrypoint
npm startStart the real MCP server and local setup page
npm run demoRun the fully simulated end-to-end demo
npm run smoke:bundleStart the distributable bundle and verify its MCP tools
npm run validate:releaseCheck portable manifests, version consistency, required release files, and secret-shaped content
npm run checkRun the complete release-candidate gate

See VALIDATION.md for the exact local evidence and its limits.

Limitations and roadmap

  • One live Brave NIP-07 flow and exact Grynvault handoff passed, but the extension name/version was not captured. Named Alby, nos2x, NIP-46 signer, and relay-specific compatibility is not yet proven.
  • Sessions are deliberately non-persistent; reconnect after every process restart or expiry.
  • The NIP-07 browser tab must remain open because browser extensions expose window.nostr only to browser pages.
  • An MCP Apps iframe is not used for signing because it does not automatically inherit the user's ordinary browser extensions or their permission model.
  • Signer auth_url challenges are not surfaced in v0.4.0; NIP-46 signers that rely on them may not complete pairing.
  • NIP-46 relay authentication, dynamic relay switching, offline queues, simultaneous third-party-client sessions, multi-account selection, and automatic event discovery are not included.
  • ChatGPT Work/web needs a deployed remote HTTPS MCP transport, privacy disclosures, and workspace/public review. The hosted beta intentionally uses accountless capability sessions instead of OAuth.
  • Noornote v1.5.3 and YakiHonne web both completed live remote-signer login in the Codex in-app browser. No post, follow, direct message, encryption request, or publication was attempted, so those operations remain unverified on the named clients.
  • The v117 Grynvault browser handoff is live and proven. Supporter/NIP-05 creation was not called during the handoff test, so no invoice or payment was created.
  • Future work: replace the mutable hosted approval webpage with an auditable browser extension or signed local companion so the operator cannot silently change approval-page code; add a real compatibility matrix, verified OpenClaw install, and optional hardware-backed local signer adapter that never exports a key.

License

Apache License 2.0. It is permissive for broad reuse while adding an explicit patent grant and preserving license/notice obligations—useful for a security-sensitive interoperability project that may attract multiple implementations.

Contributing and security

Read CONTRIBUTING.md, SECURITY.md, DECISIONS.md, COMPATIBILITY.md, LAUNCH_READINESS.md, MARKETPLACE_CHECKLIST.md, and THIRD_PARTY_NOTICES.md before changing protocol, trust-boundary, packaging, or dependency code. Public launch drafts are in LAUNCH_KIT.md; they have not been posted.

来源:README.md,提交 d6acf5b

工具

17

get_setup_url

Get signer setup URL

Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer.

无需输入参数。

get_signer_status

Get signer status

Check whether a user-controlled NIP-07 or NIP-46 signer is connected.

无需输入参数。

begin_nostrconnect_pairing

Begin signer pairing

Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec.

输入参数relays

connect_bunker

Connect bunker signer

Connect a bunker:// URI only when the user knowingly supplied it. Prefer the local setup page so connection secrets are not placed in chat. Never accepts an nsec.

输入参数connection_uri必填

get_public_key

Get public key

Return the public key exposed by the currently paired signer.

无需输入参数。

prepare_note

Prepare Nostr note

Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish.

输入参数content必填

prepare_event

Prepare exact Nostr event

Validate and bind an exact unsigned Nostr event for user review. This does not sign or publish. Show the user every field before requesting a signature.

输入参数event必填

sign_event

Request event signature

Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes.

输入参数intent_id必填confirm_signature必填

publish_event

Publish signed event

Publish a previously verified signed event to configured relays. Requires separate explicit user intent.

输入参数relaysintent_id必填confirm_publish必填

query_events

Read Nostr events

Read a bounded set of verified public profile or note events from selected relays.

输入参数kindslimitsincerelaysauthors

disconnect_signer

Disconnect signer

Forget the in-memory signer session and all prepared events.

输入参数confirm_disconnect必填

get_grynvault_account_dashboard

Get signed Grynvault account dashboard

Read the connected Nostr identity's Grynvault supporter, payment, and NIP-05 dashboard using a short-lived signed authorization. This does not create an invoice or change settlement.

输入参数confirm_account_access必填

approve_grynvault_browser_handoff

Approve Grynvault in-app browser sign-in

Sign a short-lived, read-only Grynvault account handoff code so the browser tab that created it can receive its own dashboard. This does not create an invoice, publish a Nostr event, change settlement, or grant wallet custody.

输入参数code必填confirm_browser_sign_in必填

prepare_grynvault_supporter_invoice

Prepare Grynvault supporter invoice

Prepare an exact, short-lived signed-authorization request for a one-time donation of 21 to 1,000,000 sats or the fixed 2,100-sat 30-day membership. Does not sign, create, pay, or settle an invoice.

输入参数plan必填donation_sats

create_grynvault_supporter_invoice

Create Grynvault supporter invoice

After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never treats a redirect as settlement.

输入参数operation_id必填confirm_invoice_creation必填

prepare_grynvault_nip05_invoice

Prepare Frontier Crown NIP-05 invoice

Check and normalize a [email protected] identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, or settle an invoice.

输入参数name必填

create_grynvault_nip05_invoice

Create Frontier Crown NIP-05 invoice

After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat [email protected] invoice. Does not pay, settle, activate, or prove identity.

输入参数operation_id必填confirm_invoice_creation必填

版本历史

1
  1. v0.4.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分