Skip to content

Latest commit

 

History

History
74 lines (57 loc) · 2.5 KB

bip-0072.mediawiki

File metadata and controls

74 lines (57 loc) · 2.5 KB

  BIP: 72
  Layer: Applications
  Title: bitcoin: uri extensions for Payment Protocol
  Author: Gavin Andresen <gavinandresen@gmail.com>
  Comments-Summary: No comments yet.
  Status: Final
  Dash-Status: Modified Active
  Type: Standards Track
  Created: 2013-07-29

Table of Contents

Abstract

This BIP describes an extension to the URI scheme (BIP 0021) to support the payment protocol (BIP 0070).

Motivation

Allow users to click on a link in a web page or email to initiate the payment protocol, while being backwards-compatible with existing wallets.

Specification

The URI scheme is extended with an additional, optional "r" parameter, whose value is a URL from which a PaymentRequest message should be fetched (characters not allowed within the scope of a query parameter must be percent-encoded as described in RFC 3986 and bip-0021).

If the "r" parameter is provided and backwards compatibility is not required, then the address portion of the URI may be omitted (the URI will be of the form: dash:?r=... ).

When wallet software that supports this BIP receives a URI with a request parameter, it should ignore the address/amount/label/message in the URI and instead fetch a PaymentRequest message and then follow the payment protocol, as described in BIP 70.

Wallets must support fetching PaymentRequests via http and https protocols; they may support other protocols. Wallets must include an "Accept" HTTP header in HTTP(s) requests (as defined in RFC 2616):

Accept: application/dash-paymentrequest

If a PaymentRequest cannot be obtained (perhaps the server is unavailable), then the customer should be informed that the merchant's payment processing system is unavailable. In the case of an HTTP request, status codes which are neither success nor error (such as redirect) should be handled as outlined in RFC 2616.

Compatibility

Wallet software that does not support this BIP will simply ignore the "r" parameter and will initiate a payment to provided address.

Examples

A backwards-compatible request:

dash:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11&r=https://merchant.com/pay.php?h%3D2a8628fc2fbe
Non-backwards-compatible equivalent:
dash:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe

References

RFC 2616 : Hypertext Transfer Protocol -- HTTP/1.1

Dash Modifications

  • Remove coin specific references where possible
  • Change remaining "bitcoin" references to "dash"