Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Status: Optional bundled plugin (disabled by default until configured).
Nostr is a decentralized protocol for social networking. This channel enables OpenClaw to receive and respond to encrypted direct messages (DMs) via NIP-04.
Current OpenClaw releases ship Nostr as a bundled plugin, so normal packaged builds do not need a separate install.
openclaw onboardopenclaw channels addbashopenclaw plugins install @openclaw/nostr
If npm reports the OpenClaw-owned package as deprecated, use a current packaged OpenClaw build or a local checkout until a newer npm package is published.
Use a local checkout (dev workflows):
bashopenclaw plugins install --link <path-to-local-nostr-plugin>
Restart the Gateway after installing or enabling plugins.
bashopenclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY" openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY" --relay-urls "wss://relay.damus.io,wss://relay.primal.net"
Use
--use-envNOSTR_PRIVATE_KEYbash# Using nak nak key generate
json5{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", }, }, }
bashexport NOSTR_PRIVATE_KEY="nsec1..."
| Key | Type | Default | Description |
|---|---|---|---|
text privateKey | string | required | Private key in text nsec |
text relays | string[] | text ['wss://relay.damus.io', 'wss://nos.lol'] | Relay URLs (WebSocket) |
text dmPolicy | string | text pairing | DM access policy |
text allowFrom | string[] | text [] | Allowed sender pubkeys |
text enabled | boolean | text true | Enable/disable channel |
text name | string | - | Display name |
text profile | object | - | NIP-01 profile metadata |
Profile data is published as a NIP-01
kind:0Example:
json5{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", profile: { name: "openclaw", displayName: "OpenClaw", about: "Personal assistant DM bot", picture: "https://example.com/avatar.png", banner: "https://example.com/banner.png", website: "https://example.com", nip05: "openclaw@example.com", lud16: "openclaw@example.com", }, }, }, }
Notes:
https://allowFromallowFrom: ["*"]Enforcement notes:
json5{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", dmPolicy: "allowlist", allowFrom: ["npub1abc...", "npub1xyz..."], }, }, }
Accepted formats:
nsec...allowFromnpub...Defaults:
relay.damus.ionos.loljson5{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["wss://relay.damus.io", "wss://relay.primal.net", "wss://nostr.wine"], }, }, }
Tips:
ws://localhost:7777| NIP | Status | Description |
|---|---|---|
| NIP-01 | Supported | Basic event format + profile metadata |
| NIP-04 | Supported | Encrypted DMs ( text kind:4 |
| NIP-17 | Planned | Gift-wrapped DMs |
| NIP-44 | Planned | Versioned encryption |
bash# Start strfry docker run -p 7777:7777 ghcr.io/hoytech/strfry
json5{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["ws://localhost:7777"], }, }, }
wss://ws://enabledfalseallowlist© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine