Skip to content

How to Pay with a Zcash Payment Link or QR Code (ZIP-321)

To pay with Zcash using a payment link or a QR code, open the link or scan the code with your Zcash wallet. The wallet reads the address, the amount and the memo from it and fills in the payment for you. You check the details, confirm, and the payment is sent. Behind the link is a standard called ZIP-321, which defines zcash: payment request URIs, and it is the most reliable way to pay a seller without typing mistakes.

This guide explains what is inside a Zcash payment link, how to use one on a phone or a computer, what to check before you confirm, and what to do when your wallet does not open it. For the full buying process, see how to buy and sell things with Zcash.

A Zcash payment link is a URI that starts with zcash: instead of https:. ZIP 321, the Zcash standard for payment requests, defines its format. A wallet that supports it knows how to turn the link into a ready-to-send payment.

A QR code on a checkout page usually contains exactly the same link. Scanning the code and clicking the link give the same result: one is for paying from a phone while looking at a screen, the other for paying from the device you are browsing on.

Here is the kind of link ZecMarket shows on an accepted order (the address is shortened):

zcash:u1qq…8xj?amount=0.25&memo=WkItazdRbTJ4&message=ZecMarket%20order%20k7Qm2x
Part Example Meaning
Scheme zcash: Tells your device to open a Zcash wallet
Address u1qq…8xj The seller's receiving address
amount 0.25 Amount in ZEC, with up to 8 decimals
memo WkItazdRbTJ4 The memo, encoded in base64url; here it decodes to ZB-k7Qm2x
message ZecMarket order k7Qm2x A note your wallet may show you; it is not sent on chain

The memo is the part people get wrong when they type a payment by hand. ZIP-321 encodes it in base64url so that any text, up to the 512-byte memo limit, survives being put in a URL. Your wallet decodes it and attaches it to the shielded payment, where only the receiver can read it.

ZIP-321 also allows a single link to request several payments at once, using numbered parameters such as address.1 and amount.1. Marketplaces rarely need that; a ZecMarket order is always one payment to one seller.

On your phone: scan the QR code

  1. Open your Zcash wallet and choose Send or Scan.
  2. Point the camera at the QR code on the order page.
  3. The wallet fills in the address, amount and memo. Check them (see below).
  4. Confirm the payment.

This is the most common setup: the order page open on a computer, and the wallet on your phone.

  1. Click the Open in wallet link on the order page.
  2. Your system asks which app should open zcash: links, or opens your wallet directly.
  3. Check the pre-filled payment and confirm.

If nothing happens when you click, your wallet has not registered itself for zcash: links on that device. Use the QR code or the manual method below.

Copy the three values shown on the order page into your wallet's send screen:

  • the address, by copy and paste, never by typing it,
  • the exact amount,
  • the memo, exactly as shown (on ZecMarket, ZB- followed by the order number).

Paste the memo as plain text, not the base64url form from the link. The order page shows the readable version for this reason.

What to check before you confirm

A payment link saves typing, but it does not replace your own check. Before you confirm, look at:

  • The address. Compare the first and last characters with the address on the order page. If you received a link in a message rather than from the order page, do not use it.
  • The amount. It should match the order exactly. On ZecMarket, prices set in dollars or euros are converted to ZEC when the seller accepts the order, and that ZEC amount then stays fixed.
  • The memo. It should be present. Without it, the seller may not be able to match your payment.
  • The pool. Your wallet may show whether it is sending a shielded payment. Paying from a shielded balance keeps your side of the payment private, as explained in shielded vs transparent Zcash addresses.

Once confirmed, a Zcash payment cannot be reversed. If something on the screen does not match, cancel and ask the seller through the site.

After you pay

Your wallet broadcasts the transaction, and it is usually mined within a couple of minutes (a new Zcash block comes about every 75 seconds). On ZecMarket:

  1. Click I have paid on the order page. It tells the seller to look; ZecMarket itself does not see payments.
  2. The seller finds your payment in their wallet by the amount and the memo.
  3. They deliver, and you can both leave a review.

If the seller does not confirm within a reasonable time, send them a message from the order. If it goes wrong, you can open a dispute; the FAQ explains what moderators can and cannot do.

Why ZecMarket shows a QR code generated on the server

The QR code on a ZecMarket order page is drawn by our server and sent as part of the page. That is deliberate: the site works without JavaScript and loads nothing from other sites, so no third-party QR service ever sees your order, and the code still appears with scripts turned off or over Tor.

Problem Likely cause What to do
Clicking the link does nothing No wallet registered for zcash: links Scan the QR code with your phone, or pay by hand
The wallet ignores the memo The wallet cannot send memos to that receiver, or the payment is transparent Use a shielded wallet that supports memos
The address is rejected Old wallet without unified address support Update the wallet, or use one that supports u1 addresses
Wrong amount shown The link came from somewhere other than the order page Only use the link on the order page
Exchange cannot pay the link Exchanges rarely support payment links or memos Withdraw to your own wallet first, then pay

Frequently asked questions

Is it safe to scan a Zcash QR code?

Scanning only fills in a payment; nothing is sent until you confirm. The risk is paying the wrong address, so only scan codes from the order page itself and check the address before confirming.

Usually not with the memo, and often not to a shielded address. Withdraw the ZEC to your own shielded wallet, then pay the link from there.

What is the difference between ZIP-321 and a plain address?

A plain address only says where to send. A ZIP-321 link also carries the amount and the memo, which is what a marketplace needs to match your payment to your order.

Ready to try it?

Find something you want, browse the listings, and place an order. When the seller accepts, the order page gives you the link and the QR code. To get there you need an account: sign up with a username and a password.