Nostr WoT

Enviar e ler mensagens privadas

Enviar e ler mensagens privadas

@nostr-wot/dm cria mensagens NIP-17 e verifica sua abertura. Ambos os participantes precisam de assinadores NIP-44. O exemplo prepara um envelope e lê seu conteúdo com o assinador do destinatário.

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

Exemplo

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 };
}

Notas de integração

Publique o tipo 1059 nos relays de entrada descobertos pelo tipo 10050. Crie outro envelope para o histórico do remetente. Nunca publique diretamente a mensagem interna ou o selo. A tag externa do destinatário continua visível. Use /cache e /react para histórico e telas; encerre assinaturas ao sair.

Referência e opções adicionais