Nostr Book of NIPs

NIP-A3

payto: Payment Targets

draft optional

This NIP standardizes how payment addresses are declared across any network or platform.

Tag Format

Payment targets are specified using payto tags with the following structure:

["payto", "<type>", "<address>"]

Where: - The first element is always the literal string "payto" - The second element is the payment type (e.g., "bitcoin", "lightning"), always lowercase. - The third element is the address (e.g., address, username)

Clients may perform additional network- or platform-specific validation for recognized types.

Example

{
  "pubkey": "afc93622eb4d79c0fb75e56e0c14553f7214b0a466abeba14cb38968c6755e6a",
  "kind": 10133,
  "content": "",
  "tags": [
    ["payto", "bitcoin", "bc1qxq66e0t8d7ugdecwnmv58e90tpry23nc84pg9k"],
    ["payto", "nano", "nano_1dctqbmqxfppo9pswbm6kg9d4s4mbraqn8i4m7ob9gnzz91aurmuho48jx3c"],
    ["payto", "unknowntype", "l7tbta5b9xze6ckkfc99uohzxd009b0r"]
  ],
  ...
}

For each payto tag in kind 10133 events, clients can render the payment address as a button or link. Clients may use a specific URI scheme when one is available, such as bitcoin:<address> or ethereum:<address>. Otherwise fall back to the payto URI scheme defined by RFC-8905: payto://<type>/<address>.

Possible rendered URIs: - bitcoin:bc1qxq66e0t8d7ugdecwnmv58e90tpry23nc84pg9k - payto://nano/nano_1dctqbmqxfppo9pswbm6kg9d4s4mbraqn8i4m7ob9gnzz91aurmuho48jx3c - payto://unknowntype/l7tbta5b9xze6ckkfc99uohzxd009b0r

Commonly Used Tags

New widely deployed formats can be added to this list later.

For an unknown payment type, in case of ambiguities, a specific address URI scheme may be used when one is available (such as bitcoincash from bitcoincash:<address>).