diff --git a/NIP-002.md b/NIP-002.md new file mode 100644 index 0000000..65c46ca --- /dev/null +++ b/NIP-002.md @@ -0,0 +1,113 @@ +``` + NIP: 2 + Layer: Applications + Title: Payment URI Scheme + Authors: codewordneptune + Status: Draft +``` + +# Motivation + +There is currently no documented standard for expressing "pay this address this amount" as a link or QR code. Every wallet and site that wants payments must invent its own format, and none of them would interoperate. This NIP (Neptune Improvement Proposal), Neptune Cash's equivalent of Bitcoin's [BIP 21](https://en.bitcoin.it/wiki/BIP_0021), unblocks several things at once: + +- QR-based receive/send flows in wallets +- Click-to-pay links on explorers, donation pages, and merchant sites +- Deep-linking (`neptunecash:` opens the wallet with a pre-filled send screen) + +# Existing practice + +The two existing wallets already use an undocumented `NPT:` prefix in QR codes, but only for bare addresses, with no additional metadata: + +- [neptune-wallet-app](https://github.com/Neptune-Crypto/neptune-wallet-app) generates receive QR payloads as `NPT:
` (uppercased). +- [npt-mobile-wallet](https://github.com/zeokin/npt-mobile-wallet) displays the same format on the receive screen, and its scanner strips a leading `npt:` case-insensitively and treats the remainder as the address. + +No amount, label, or other parameters exist today, and nothing registers an OS-level URI handler. This proposal documents that practice and defines its successor, without breaking anything already deployed: existing address-only `NPT:` payloads keep working in the wallets that already accept them, and the parameterized URIs this NIP introduces fail safe when scanned into a current wallet (the query string makes bech32m decoding fail, producing an invalid-address error rather than a payment with wrong details). + +# Specification + +``` +neptunecash:
[?amount=][&label=