Gebundelde Plugin
Huidige OpenClaw-releases leveren Nostr als gebundelde Plugin, dus normale verpakte builds hebben geen aparte installatie nodig.Oudere/aangepaste installaties
- Onboarding (
openclaw onboard) enopenclaw channels addtonen Nostr nog steeds vanuit de gedeelde kanaalcatalogus. - Als je build gebundelde Nostr uitsluit, installeer dan het npm-pakket direct.
Niet-interactieve configuratie
--use-env om NOSTR_PRIVATE_KEY in de omgeving te houden in plaats van de sleutel in de config op te slaan.
Snelle configuratie
- Genereer een Nostr-sleutelpaar (indien nodig):
- Voeg toe aan config:
- Exporteer de sleutel:
- Herstart de Gateway.
Configuratiereferentie
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
privateKey | string | vereist | Privesleutel in nsec- of hex-indeling |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | Relay-URL’s (WebSocket) |
dmPolicy | string | pairing | Toegangsbeleid voor DM’s |
allowFrom | string[] | [] | Toegestane pubkeys van afzenders |
enabled | boolean | true | Kanaal inschakelen/uitschakelen |
name | string | - | Weergavenaam |
profile | object | - | NIP-01-profielmetadata |
Profielmetadata
Profielgegevens worden gepubliceerd als een NIP-01kind:0-event. Je kunt dit beheren vanuit de Control UI (Channels -> Nostr -> Profile) of direct instellen in config.
Voorbeeld:
- Profiel-URL’s moeten
https://gebruiken. - Importeren vanuit relays voegt velden samen en behoudt lokale overschrijvingen.
Toegangsbeheer
DM-beleid
- pairing (standaard): onbekende afzenders krijgen een koppelingscode.
- allowlist: alleen pubkeys in
allowFromkunnen DM’en. - open: openbare inkomende DM’s (vereist
allowFrom: ["*"]). - disabled: negeer inkomende DM’s.
- Handtekeningen van inkomende events worden geverifieerd voor afzenderbeleid en NIP-04-ontsleuteling, zodat vervalste events vroeg worden geweigerd.
- Koppelingsantwoorden worden verzonden zonder de oorspronkelijke DM-body te verwerken.
- Inkomende DM’s worden rate-limited en te grote payloads worden voor ontsleuteling gedropt.
Voorbeeld van allowlist
Sleutelindelingen
Geaccepteerde indelingen:- Privesleutel:
nsec...of 64-tekens hex - Pubkeys (
allowFrom):npub...of hex
Relays
Standaarden:relay.damus.io en nos.lol.
- 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-eventindeling + profielmetadata |
| NIP-04 | Ondersteund | Versleutelde DM’s (kind:4) |
| NIP-17 | Gepland | Gift-wrapped DM’s |
| NIP-44 | Gepland | Versleuteling met versies |
Testen
Lokale relay
Handmatige test
- Noteer de bot-pubkey (npub) uit de logs.
- Open een Nostr-client (Damus, Amethyst, enz.).
- Stuur een DM naar de bot-pubkey.
- Controleer het antwoord.
Problemen oplossen
Ontvangt geen berichten
- Controleer of de privesleutel geldig is.
- Zorg dat relay-URL’s bereikbaar zijn en
wss://gebruiken (ofws://voor lokaal). - Bevestig dat
enablednietfalseis. - Controleer Gateway-logs op relay-verbindingsfouten.
Verstuurt geen antwoorden
- Controleer of de relay schrijfbewerkingen accepteert.
- Controleer uitgaande connectiviteit.
- Let op rate limits van relays.
Dubbele antwoorden
- Verwacht bij gebruik van meerdere relays.
- Berichten worden ontdubbeld op event-ID; alleen de eerste levering triggert een antwoord.
Beveiliging
- Commit nooit privesleutels.
- Gebruik omgevingsvariabelen voor sleutels.
- Overweeg
allowlistvoor productiebots. - Handtekeningen worden geverifieerd voor afzenderbeleid, en afzenderbeleid wordt afgedwongen voor ontsleuteling, zodat vervalste events vroeg worden geweigerd en onbekende afzenders geen volledig cryptografisch werk kunnen afdwingen.
Beperkingen (MVP)
- Alleen directe berichten (geen groepschats).
- Geen mediabijlagen.
- Alleen NIP-04 (NIP-17 gift-wrap gepland).
Gerelateerd
- Kanalenoverzicht — alle ondersteunde kanalen
- Koppeling — DM-authenticatie en koppelingsflow
- Groepen — gedrag van groepschats en mention-gating
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en hardening