Skip to main content

Identity Connection (Kind 35521)

A kind 35521 Identity Connection is what a user publishes to say "my Nostr key owns this Discord (or X, email, …) account". On its own it proves nothing: it points to an IA Attestation (kind 35522), signed by an Identity Authority that checked the claim.

The full definition — tags, the nconnection encoding, and how clients verify a connection — is in NIP-IC.

Example​

{
"kind": 35521,
"pubkey": "<user_pubkey>",
"created_at": 1709424000,
"tags": [
["d", "<ConnectionKey>"],
["e", "<attestation_event_id>", "<ia_relay_url>"],
["platform", "discord"]
],
"content": "{\"display_name\":\"loki_nakamo\",\"picture\":\"https://cdn.discord.com/...\",\"user_id\":\"123456789\",\"username\":\"loki_nakamo\"}",
"id": "...",
"sig": "..."
}
  • d is the bare ConnectionKey, SHA256("<platform>:<account id>") — never prefixed with the platform.
  • e points to the attestation (by event ID, with the IA's relay); it is never embedded. A user verified by several IAs lists one e tag per IA.
  • content is a display convenience copied from the attestation. It is user-controlled, so clients check it against the attestation and Zapf routes payments by d only.

How clients verify it​

A connection counts only if an attestation it points to is a trusted IA's current attestation for that ConnectionKey, with the same d, platform and p (the user's pubkey), unexpired and not deleted. See Verification Model.

Share a connection with an nconnection1… string, which bundles the ConnectionKey with the relays where its 35521 is published.