Nostr
Status: Optionele plugin (standaard uitgeschakeld).
Nostr is een gedecentraliseerd protocol voor sociale netwerken. Dit kanaal stelt OpenClaw in staat om versleutelde directe berichten (DM’s) via NIP-04 te ontvangen en te beantwoorden.
Installeren (op aanvraag)
Onboarding (aanbevolen)
- De onboarding-wizard (
openclaw onboard) enopenclaw channels addtonen optionele kanaalplugins. - Door Nostr te selecteren word je gevraagd de plugin op aanvraag te installeren.
Standaard installatie:
- Dev-kanaal + git checkout beschikbaar: gebruikt het lokale pluginpad.
- Stable/Beta: downloadt van npm.
Je kunt de keuze altijd overschrijven bij de prompt.
Handmatig installeren
openclaw plugins install @openclaw/nostr
Gebruik een lokale checkout (dev-workflows):
openclaw plugins install --link <path-to-openclaw>/extensions/nostr
Herstart de Gateway na het installeren of inschakelen van plugins.
Snelle start
- Genereer een Nostr-sleutelpaar (indien nodig):
# Using nak
nak key generate
- Voeg toe aan de configuratie:
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}"
}
}
}
- Exporteer de sleutel:
export NOSTR_PRIVATE_KEY="nsec1..."
- Herstart de Gateway.
Configuratiereferentie
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
privateKey | string | vereist | Privésleutel in nsec- of hexformaat |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | Relay-URL’s (WebSocket) |
dmPolicy | string | pairing | DM-toegangsbeleid |
allowFrom | string[] | [] | Toegestane afzender-pubkeys |
enabled | boolean | true | Kanaal in-/uitschakelen |
name | string | - | Weergavenaam |
profile | object | - | NIP-01 profielmetadata |
Profielmetadata
Profieldata wordt gepubliceerd als een NIP-01 kind:0-event. Je kunt het beheren vanuit de Control UI (Channels -> Nostr -> Profile) of direct instellen in de configuratie.
Voorbeeld:
{
"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": "[email protected]",
"lud16": "[email protected]"
}
}
}
}
Opmerkingen:
- Profiel-URL’s moeten
https://gebruiken. - Importeren van relays combineert velden en behoudt lokale overschrijvingen.
Toegangscontrole
DM-beleidsregels
- pairing (standaard): onbekende afzenders krijgen een koppelingscode.
- allowlist: alleen pubkeys in
allowFrommogen DM’en. - open: openbare inkomende DM’s (vereist
allowFrom: ["*"]). - disabled: negeer inkomende DM’s.
Allowlist-voorbeeld
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"dmPolicy": "allowlist",
"allowFrom": ["npub1abc...", "npub1xyz..."]
}
}
}
Sleutelformaten
Geaccepteerde formaten:
- Privésleutel:
nsec...of 64-teken hex - Pubkeys (
allowFrom):npub...of hex
Relays
Standaard: relay.damus.io en nos.lol.
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": ["wss://relay.damus.io", "wss://relay.primal.net", "wss://nostr.wine"]
}
}
}
Tips:
- Gebruik 2-3 relays voor redundantie.
- Vermijd te veel relays (latentie, duplicatie).
- Betaalde relays kunnen de betrouwbaarheid verbeteren.
- Lokale relays zijn prima voor testen (
ws://localhost:7777).
Protocolondersteuning
| NIP | Status | Beschrijving |
|---|---|---|
| NIP-01 | Ondersteund | Basis eventformaat + profielmetadata |
| NIP-04 | Ondersteund | Versleutelde DM’s (kind:4) |
| NIP-17 | Gepland | Gift-wrapped DM’s |
| NIP-44 | Gepland | Versioned versleuteling |
Testen
Lokale relay
# Start strfry
docker run -p 7777:7777 ghcr.io/hoytech/strfry
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": ["ws://localhost:7777"]
}
}
}
Handmatige test
- Noteer de bot-pubkey (npub) uit de logs.
- Open een Nostr-client (Damus, Amethyst, etc.).
- DM de bot-pubkey.
- Controleer het antwoord.
Probleemoplossing
Ontvangt geen berichten
- Controleer of de privésleutel geldig is.
- Zorg dat relay-URL’s bereikbaar zijn en
wss://gebruiken (ofws://voor lokaal). - Bevestig dat
enablednietfalseis. - Controleer Gateway-logs op relay-verbindingsfouten.
Stuurt geen antwoorden
- Controleer of de relay schrijfbewerkingen accepteert.
- Controleer uitgaande connectiviteit.
- Let op relay rate limits.
Dubbele antwoorden
- Verwacht bij gebruik van meerdere relays.
- Berichten worden ontdubbeld op basis van event-ID; alleen de eerste aflevering triggert een antwoord.
Beveiliging
- Commit nooit privésleutels.
- Gebruik omgevingsvariabelen voor sleutels.
- Overweeg
allowlistvoor productie-bots.
Beperkingen (MVP)
- Alleen directe berichten (geen groepschats).
- Geen mediabijlagen.
- Alleen NIP-04 (NIP-17 gift-wrap gepland).