NIP-01: Protocolo Básico
NIP-01 define o protocolo fundamental para o Nostr, estabelecendo as estruturas de dados e padrões de comunicação sobre os quais todas as outras NIPs são construídas.
Eventos
Eventos são o único tipo de objeto no Nostr. Cada pedaço de dado, desde uma atualização de perfil até uma postagem de texto ou uma reação, é representado como um evento com esta estrutura:
- id: Hash SHA256 do evento serializado (identificador único)
- pubkey: Chave pública do criador (hex de 32 bytes, secp256k1)
- created_at: Timestamp Unix
- kind: Inteiro categorizando o tipo de evento
- tags: Array de arrays para metadados
- content: O conteúdo (interpretação depende do kind)
- sig: Assinatura Schnorr provando autenticidade
Kinds
Os kinds determinam como os relays armazenam e manipulam eventos:
- Eventos regulares (1, 2, 4-44, 1000-9999): Armazenados normalmente, todas as versões são mantidas
- Eventos substituíveis (0, 3, 10000-19999): Apenas o mais recente por pubkey é mantido
- Eventos efêmeros (20000-29999): Não armazenados, apenas encaminhados para assinantes
- Eventos endereçáveis (30000-39999): Mais recente por combinação de pubkey + kind + tag
d
Os kinds principais incluem: 0 (metadados do usuário), 1 (nota de texto), 3 (lista de seguidos).
Comunicação Cliente-Relay
Os clientes se comunicam com relays através de conexões WebSocket usando arrays JSON:
Cliente para relay:
["EVENT", <event>]- Publicar um evento["REQ", <sub-id>, <filter>, ...]- Assinar eventos["CLOSE", <sub-id>]- Encerrar uma assinatura
Relay para cliente:
["EVENT", <sub-id>, <event>]- Entregar evento correspondente["EOSE", <sub-id>]- Fim dos eventos armazenados (agora transmitindo ao vivo)["OK", <event-id>, <true|false>, <message>]- Confirmação de aceite/rejeição["NOTICE", <message>]- Mensagem legível por humanos
Filtros
Filtros especificam quais eventos recuperar, com campos incluindo: ids, authors, kinds, #e/#p/#t (valores de tags), since/until e limit. Condições dentro de um filtro usam lógica AND; múltiplos filtros em um REQ combinam com lógica OR.
Fontes primárias:
Mencionado em:
Veja também: