Nostr WoT

Envoyer et lire des messages privés

Envoyer et lire des messages privés

@nostr-wot/dm construit les messages NIP-17 et vérifie leur ouverture. Les deux participants doivent disposer de signataires NIP-44. L’exemple prépare une enveloppe et lit son contenu avec le signataire du destinataire.

terminal
$npm install @nostr-wot/dm@2.0.0 nostr-wot-sdk@3.0.0 nostr-tools

Exemple

typescript
import { buildChatMessage, sealAndGiftWrap, unwrapGiftWrap } from "@nostr-wot/dm";
import type { NostrSigner } from "nostr-wot-sdk/signers";

export async function prepareMessage(signer: NostrSigner, recipient: string, text: string) {
  const me = await signer.getPublicKey();
  const message = buildChatMessage(me, recipient, text);
  return sealAndGiftWrap(signer, recipient, message);
}

// Run with the recipient's signer after receiving a kind-1059 event.
export async function readMessage(signer: NostrSigner, wrap: Parameters<typeof unwrapGiftWrap>[1]) {
  const { message, senderPubkey } = await unwrapGiftWrap(signer, wrap);
  return { from: senderPubkey, text: message.content };
}

Notes d’intégration

Publiez le type 1059 sur les relais de réception découverts via le type 10050. Créez une enveloppe distincte pour l’historique de l’expéditeur. Ne publiez jamais directement le message intérieur ou le sceau. Le tag extérieur du destinataire reste visible. /cache et /react fournissent historique et vues ; fermez les abonnements à la déconnexion.

Référence et options supplémentaires