clone

every nostr nip as a chapter of an illustrated, early-2000s printed game manual

main
nip.guide / source-nips / 39.md
39.md 2.6K rendered
1NIP-392======34Linking Profiles to Other Platforms5-----------------------------------67`draft` `optional`89## Abstract1011Users can declare their control over one or more online identities such as usernames, profile pages, keypairs in kind `10011` using `i` tags.1213```yaml14{15 "kind": 10011,16 "tags": [17 ["i", "github:semisol", "9721ce4ee4fceb91c9711ca2a6c9a5ab"],18 ["i", "twitter:semisol_public", "1619358434134196225"],19 ["i", "mastodon:bitcoinhackers.org/@semisol", "109775066355589974"]20 ["i", "telegram:1087295469", "nostrdirectory/770"]21 ],22 // other fields...23}24```2526An `i` tag MUST have two parameters, which are defined as the following:271. `platform:identity`: This is the platform name (for example `github`) and the identity on that platform (for example `semisol`) joined together with `:`.282. `proof`: String or object that points to the proof of owning this identity.2930Clients SHOULD process any `i` tags with more than 2 values for future extensibility.31Identity provider names SHOULD only include `a-z`, `0-9` and the characters `._-/` and MUST NOT include `:`.32Identity names SHOULD be normalized if possible by replacing uppercase letters with lowercase letters, and if there are multiple aliases for an entity the primary one should be used.3334## Claim types3536### `github`3738Identity: A GitHub username.3940Proof: A GitHub Gist ID. This Gist should be created by `<identity>` with a single file that has the text `Verifying that I control the following Nostr public key: <npub encoded public key>`.41This can be located at `https://gist.github.com/<identity>/<proof>`.4243### `twitter`4445Identity: A Twitter username.4647Proof: A Tweet ID. The tweet should be posted by `<identity>` and have the text `Verifying my account on nostr My Public Key: "<npub encoded public key>"`.48This can be located at `https://twitter.com/<identity>/status/<proof>`.4950### `mastodon`5152Identity: A Mastodon instance and username in the format `<instance>/@<username>`.5354Proof: A Mastodon post ID. This post should be published by `<username>@<instance>` and have the text `Verifying that I control the following Nostr public key: "<npub encoded public key>"`.55This can be located at `https://<identity>/<proof>`.5657### `telegram`5859Identity: A Telegram user ID.6061Proof: A string in the format `<ref>/<id>` which points to a message published in the public channel or group with name `<ref>` and message ID `<id>`. This message should be sent by user ID `<identity>` and have the text `Verifying that I control the following Nostr public key: "<npub encoded public key>"`.62This can be located at `https://t.me/<proof>`.