NIP-19: Entidades Codificadas em Bech32
NIP-19 define formatos amigáveis para humanos para compartilhar identificadores Nostr. Essas strings codificadas em bech32 são usadas para exibição e compartilhamento, mas nunca são usadas no próprio protocolo (que usa hex).
Por que Bech32?
Chaves hex brutas são propensas a erros ao copiar e visualmente indistinguíveis. A codificação bech32 adiciona um prefixo legível por humanos e checksum, tornando imediatamente claro que tipo de dado você está olhando.
Formatos Básicos
Estes codificam valores brutos de 32 bytes:
- npub - Chave pública (sua identidade, seguro compartilhar)
- nsec - Chave privada (mantenha em segredo, usada para assinar)
- note - ID de evento (referencia um evento específico)
Exemplo: A pubkey hex 3bf0c63f... se torna npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6.
Identificadores Compartilháveis
Estes usam codificação TLV (Type-Length-Value) para incluir metadados:
- nprofile - Perfil com dicas de relay (ajuda clientes a encontrar o usuário)
- nevent - Evento com dicas de relay, pubkey do autor e kind
- naddr - Referência de evento endereçável (pubkey + kind + tag d + relays)
Estes resolvem o problema de descoberta: quando alguém compartilha um ID de nota, como os clientes sabem qual relay o tem? Ao incluir dicas de relay no identificador, links compartilhados se tornam mais confiáveis.
Notas de Implementação
- Use bech32 apenas para interfaces humanas: exibição, copiar/colar, QR codes, URLs
- Nunca use formatos bech32 em mensagens de protocolo, eventos ou respostas NIP-05
- Toda comunicação de protocolo deve usar codificação hex
- Ao gerar nevent/nprofile/naddr, inclua dicas de relay para melhor descoberta
Fontes primárias:
Mencionado em:
Veja também: