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.