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": "..."
}
dis the bare ConnectionKey,SHA256("<platform>:<account id>")— never prefixed with the platform.epoints to the attestation (by event ID, with the IA's relay); it is never embedded. A user verified by several IAs lists oneetag per IA.contentis a display convenience copied from the attestation. It is user-controlled, so clients check it against the attestation and Zapf routes payments bydonly.
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.