NIP-01 définit un événement avec id, pubkey (clé x-only de 32 octets, en hexadécimal), created_at, kind, tags, content et sig (64 octets, en hexadécimal). L’id est le SHA-256 de la sérialisation compacte en JSON du tableau [0, pubkey, created_at, kind, tags, content], avec un échappement prescrit, et la signature porte sur cet id. Les relais stockent et retransmettent les événements ; les clients vérifient eux-mêmes chaque signature.
Les clés apparaissent sous la forme npub… et nsec… en bech32 (NIP-19) ; ne collez jamais une nsec dans un site web. Les signataires distants (NIP-46) et les extensions de navigateur (NIP-07) tiennent les clés à l’écart des applications. Le vérificateur d’événements Nostr recalcule les id et vérifie les signatures localement.