Nostr NIPS 73

 

Page content

NIP-73

External Content IDs

draft optional

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 assosiated 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

Typei tagk tag
URLs<URL, normalized, no fragment>“web”
Books“isbn:<id, without hyphens>“isbn”
Geohashes“geo:<geohash, lowercase>“geo”
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"]
]

Books:

Book ISBNs MUST be referenced without hyphens as many book search APIs return the ISBNs without hyphens. Removing hypens 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]


Source: nostr-protocol/nips/73.md version: 8f676dc 2025-04-02T10:11:54-03:00