← All NIPs

NIP-73

External Content IDs

DraftEvents

i and k tags point Nostr events at things outside Nostr (books, web pages, podcasts, places, blockchain transactions) so you can find every comment about them.

At a glance

Status
In use and still allowed to change.
Tags
  • i
  • k
Last changed
Jun 13, 2026

Try it

Edit the form or the JSON: both stay in sync, the badge says whether the result is valid, and tapping any field explains it.

Examples
Valid 1 note

Not signed yet · Demo keys only. These personas' secret keys are public on purpose.

Form
Jan 1, 2025, 12:00 AM UTC

Content

Whatever the event kind normally holds.

Tags

  1. I Optional

    Root external id, used by NIP-22 comments (upper case = the thing the thread is about).

  2. K Optional

    Root id type, paired with I.

  3. i Required

    External content id. Repeat for several.

  4. k Recommended

    Id type, paired with i.

Add tag

How this NIP works

Step 1 of 5

Name the thing

An i tag holds a global id with a prefix that says what it is: isbn:…, geo:…, podcast:guid:…, a plain URL, bitcoin:tx:…

In the course

No course chapter covers this NIP yet. The editor above is the quickest way in.

Used by

See also

Specification

Specification text is quoted in English from the nostr-protocol/nips repository. Our explanations and the interface are translated. Source on GitHub at commit 0046368

Read the spec520 words, quoted from the repository at commit 0046368.

There are certain established global content identifiers such as Book ISBNs, Podcast GUIDs, and Movie ISANs that are useful to reference in nostr events so that clients can query all the events associated with these ids.

i tags are used for referencing these external content ids, with k tags representing the external content id kind so that clients can query all the events for a specific kind.

Supported IDs

Type i tag k tag
URLs "<URL, normalized, no fragment>" "web"
Books "isbn:<id, without hyphens>" "isbn"
Geohashes "geo:<geohash, lowercase>" "geo"
Countries "iso3166:<code, uppercase>" "iso3166"
Movies "isan:<id, without version part>" "isan"
Papers "doi:<id, lowercase>" "doi"
Hashtags "#<topic, lowercase>" "#"
Podcast Feeds "podcast:guid:<guid>" "podcast:guid"
Podcast Episodes "podcast:item:guid:<guid>" "podcast:item:guid"
Podcast Publishers "podcast:publisher:guid:<guid>" "podcast:publisher:guid"
Blockchain Transaction "<blockchain>:[<chainId>:]tx:<txid, hex, lowercase>" "<blockchain>:tx"
Blockchain Address "<blockchain>:[<chainId>:]address:<address>" "<blockchain>:address"

Examples

Webpages

For the webpage "https://myblog.example.com/post/2012-03-27/hello-world" the "i" and "k" tags are:

[
  ["i", "https://myblog.example.com/post/2012-03-27/hello-world"],
  ["k", "web"]
]

Geohashes:

Geohashes are a geocoding system that encodes geographic locations into short strings of letters and digits. They MUST be lowercase.

Countries:

ISO 3166 codes can reference countries (ISO 3166-1 alpha-2) or subdivisions like states/provinces (ISO 3166-2).

  • Country (Venezuela): ["i", "iso3166:VE"]
  • Subdivision (California, USA): ["i", "iso3166:US-CA"]

ISO 3166 codes MUST be uppercase. More info: https://en.wikipedia.org/wiki/ISO_3166

Books:

Book ISBNs MUST be referenced without hyphens as many book search APIs return the ISBNs without hyphens. Removing hyphens from ISBNs is trivial, whereas adding the hyphens back in is non-trivial requiring a library.

Podcasts:

Movies:

Movie ISANs SHOULD be referenced without the version part as the versions / edits of movies are not relevant. More info on ISAN parts here - https://support.isan.org/hc/en-us/articles/360002783131-Records-relations-and-hierarchies-in-the-ISAN-Registry

Blockchain

<blockchain> can be any layer 1 chain (bitcoin, ethereum, solana, ...). If necessary (e.g. for ethereum), you can specify a <chainId>.

Bitcoin
bitcoin:address:<bech32, lowercase | base58, case sensitive>
bitcoin:tx:<txid, hex, lowercase>

E.g. https://blockstream.info/tx/a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d

[
  ["i", "bitcoin:tx:a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d"],
  ["k", "bitcoin:tx"]
]

E.g. https://blockstream.info/address/1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx

[
  ["i", "bitcoin:address:1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx"],
  ["k", "bitcoin:address"]
]
Ethereum (and other EVM chains)
ethereum:<chainId, integer>:tx:<txHash, hex, lowercase>
ethereum:<chainId, integer>:address:<hex, lowercase>

E.g. https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

[
  ["i", "ethereum:1:address:0xd8da6bf26964af9d7eed9e03e53415d37aa96045"],
  ["k", "ethereum:address"]
]

E.g. https://gnosisscan.io/tx/0x98f7812be496f97f80e2e98d66358d1fc733cf34176a8356d171ea7fbbe97ccd

[
  ["i", "ethereum:100:tx:0x98f7812be496f97f80e2e98d66358d1fc733cf34176a8356d171ea7fbbe97ccd"],
  ["k", "ethereum:tx"]
]

Optional URL Hints

Each i tag MAY have a url hint as the second argument to redirect people to a website if the client isn't opinionated about how to interpret the id:

["i", "podcast:item:guid:d98d189b-dc7b-45b1-8720-d4b98690f31f", https://fountain.fm/episode/z1y9TMQRuqXl2awyrQxg]

["i", "isan:0000-0000-401A-0000-7", https://www.imdb.com/title/tt0120737]