Developer and self-hosted
Nostr
Nostr, OpenClaw'un Nostr aktarıcıları üzerinden NIP-04 ile şifrelenmiş doğrudan mesajları alıp yanıtlamasını sağlayan, indirilebilir bir kanal Plugin'idir (@openclaw/nostr). Her Gateway için bir hesap; yalnızca doğrudan mesajlar.
Kurulum
openclaw plugins install @openclaw/nostrGüncel resmî sürüm etiketini takip etmek için yalnızca paket belirtimini kullanın. Tam sürümü yalnızca yeniden üretilebilir bir kurulum gerektiğinde sabitleyin.
Yerel bir çalışma kopyasından (geliştirme iş akışları):
openclaw plugins install --link <path-to-local-nostr-plugin>Plugin'leri kurduktan veya etkinleştirdikten sonra Gateway'i yeniden başlatın. Plugin kurulduktan sonra ilk kurulum (openclaw onboard) ve openclaw channels add, paylaşılan kanal kataloğundaki Nostr'u gösterir.
Etkileşimsiz kurulum
openclaw 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"Anahtarı yapılandırmada saklamak yerine NOSTR_PRIVATE_KEY ortam değişkeninde tutmak için --use-env kullanın (yalnızca varsayılan hesap).
Hızlı kurulum
- Bir Nostr anahtar çifti oluşturun (gerekiyorsa):
# nak kullanaraknak key generate- Yapılandırmaya ekleyin:
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", }, },}- Anahtarı dışa aktarın:
export NOSTR_PRIVATE_KEY="nsec1..."- Gateway'i yeniden başlatın.
Yapılandırma başvurusu
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
privateKey |
string | gerekli | nsec veya onaltılık biçimde özel anahtar; gizli başvurularına izin verilir |
relays |
string[] | ['wss://relay.damus.io', 'wss://nos.lol'] |
Aktarıcı URL'leri (WebSocket) |
dmPolicy |
string | pairing |
Doğrudan mesaj erişim politikası |
allowFrom |
string[] | [] |
İzin verilen gönderen açık anahtarları |
enabled |
boolean | true |
Kanalı etkinleştirir/devre dışı bırakır |
name |
string | - | Görünen ad |
profile |
object | - | NIP-01 profil meta verileri |
Profil meta verileri
Profil verileri, NIP-01 kind:0 olayı olarak yayımlanır. Bunları Denetim Arayüzünden (Channels -> Nostr -> Profile) yönetebilir veya doğrudan yapılandırmada ayarlayabilirsiniz.
Örnek:
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", profile: { name: "openclaw", displayName: "OpenClaw", about: "Kişisel asistan doğrudan mesaj botu", picture: "https://example.com/avatar.png", banner: "https://example.com/banner.png", website: "https://example.com", nip05: "openclaw@example.com", lud16: "openclaw@example.com", }, }, },}Notlar:
- Profil URL'leri
https://kullanmalıdır. - Aktarıcılardan içe aktarma, alanları birleştirir ve yerel geçersiz kılmaları korur.
Erişim denetimi
Doğrudan mesaj politikaları
- pairing (varsayılan): bilinmeyen gönderenlere bir eşleştirme kodu verilir.
- allowlist: yalnızca
allowFromiçindeki açık anahtarlar doğrudan mesaj gönderebilir. - open: herkese açık gelen doğrudan mesajlar (
allowFrom: ["*"]gerektirir). - disabled: gelen doğrudan mesajları yok sayar.
Uygulama notları:
- Gelen olay imzaları, gönderen politikası uygulanmadan ve NIP-04 şifre çözme işleminden önce doğrulanır; böylece sahte olaylar erkenden reddedilir.
- Eşleştirme yanıtları, özgün doğrudan mesaj gövdesinin şifresi çözülmeden veya gövde işlenmeden gönderilir.
- Gelen doğrudan mesajlar için hız sınırı uygulanır (genel olarak ve gönderen başına) ve aşırı büyük yükler şifreleri çözülmeden önce bırakılır.
İzin verilenler listesi örneği
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", dmPolicy: "allowlist", allowFrom: ["npub1abc...", "npub1xyz..."], }, },}Anahtar biçimleri
Kabul edilen biçimler:
- Özel anahtar:
nsec...veya 64 karakterlik onaltılık değer - Açık anahtarlar (
allowFrom):npub...veya onaltılık değer
Aktarıcılar
Varsayılanlar: relay.damus.io ve nos.lol.
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["wss://relay.damus.io", "wss://relay.primal.net", "wss://nostr.wine"], }, },}İpuçları:
- Yedeklilik için 2-3 aktarıcı kullanın.
- Çok fazla aktarıcı kullanmaktan kaçının (gecikme, çoğaltma).
- Ücretli aktarıcılar güvenilirliği artırabilir.
- Yerel aktarıcılar test için uygundur (
ws://localhost:7777).
Protokol desteği
| NIP | Durum | Açıklama |
|---|---|---|
| NIP-01 | Destekleniyor | Temel olay biçimi + profil meta verileri |
| NIP-04 | Destekleniyor | Şifrelenmiş doğrudan mesajlar (kind:4) |
| NIP-17 | Planlanıyor | Hediye paketli doğrudan mesajlar |
| NIP-44 | Planlanıyor | Sürümlendirilmiş şifreleme |
Test
Yerel aktarıcı
# strfry'yi başlatındocker run -p 7777:7777 ghcr.io/hoytech/strfry{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["ws://localhost:7777"], }, },}Elle test
- Gateway günlüklerinden veya
openclaw channels statusçıktısından botun açık anahtarını not edin (onaltılık; gerekirse istemcinizde npub biçimine dönüştürün). - Bir Nostr istemcisi açın (Amethyst, Damus vb.).
- Botun açık anahtarına doğrudan mesaj gönderin.
- Yanıtı doğrulayın.
Sorun giderme
Mesajlar alınmıyor
- Özel anahtarın geçerli olduğunu doğrulayın.
- Aktarıcı URL'lerinin erişilebilir olduğundan ve
wss://(yerel içinws://) kullandığından emin olun. enableddeğerininfalseolmadığını doğrulayın.- Aktarıcı bağlantı hataları için Gateway günlüklerini kontrol edin.
Yanıtlar gönderilmiyor
- Aktarıcının yazma işlemlerini kabul edip etmediğini kontrol edin.
- Giden bağlantıyı doğrulayın.
- Aktarıcı hız sınırlarını izleyin.
Yinelenen yanıtlar
- Birden fazla aktarıcı kullanıldığında beklenen bir durumdur.
- Mesajların yinelenmesi olay kimliğine göre engellenir; yalnızca ilk teslimat bir yanıtı tetikler.
Güvenlik
- Özel anahtarları hiçbir zaman işlemeyin.
- Anahtarlar için ortam değişkenlerini kullanın.
- Üretim botları için
allowlistkullanmayı değerlendirin. - İmzalar gönderen politikasından önce doğrulanır ve gönderen politikası şifre çözme işleminden önce uygulanır; böylece sahte olaylar erkenden reddedilir ve bilinmeyen gönderenler tüm kriptografik işlemleri zorla çalıştıramaz.
Sınırlamalar (MVP)
- Yalnızca doğrudan mesajlar (grup sohbetleri yoktur).
- Medya ekleri yoktur.
- Yalnızca NIP-04 (NIP-17 hediye paketleme desteği planlanmaktadır).
İlgili
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Eşleştirme — doğrudan mesaj kimlik doğrulaması ve eşleştirme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme geçidi
- Kanal Yönlendirme — mesajlar için oturum yönlendirmesi
- Güvenlik — erişim modeli ve sağlamlaştırma