Receive and send

Your tag is how people pay you inside zk.money. You can also open a payment request, so someone pays you a set amount. To send funds, you pay another tag directly, or you send a payment link to someone who has no zk.money wallet.

How to receive funds

There are three ways to be paid inside of zk.money: hand out your tag, request payment from a contact, or share a generic request link. Someone outside of zk.money can pay you by depositing tokens into a fresh deposit address for you — see Deposit.

If the name resolver stops. The resolver turns yourtag.zk.money into a deposit address for someone paying you from an outside Ethereum wallet. While it is down they cannot look up your tag, so give them the deposit address from your Receive screen instead. Payments inside zk.money are unaffected. The resolver can never return a wrong address: Ethereum verifies the proof behind every resolution.

Give someone your tag

Anyone with a zk.money account can pay you using your tag. You never have to share a hexadecimal 0x address, just your tag.

Ask a contact for a payment

Asking a contact for an amount sends the request to their tag over XMTP, the messaging network zk.money uses for requests. They answer it with a normal payment, or they decline. Nothing moves until they pay.

Share a request link

A request link asks for an amount. You share it anywhere, and whoever opens it can pay, with or without a zk.money account. It carries no funds; it only asks.

How to send funds

To a zk.money tag

  1. Enter the tag and the amount. You can add a short note.
  2. Confirm with your passkey. Your device makes the proof, which takes about a minute.
  3. zk.money submits the payment. Your tag and your note go with it, so the other person can see who paid and what for.

The funds are theirs as soon as the transaction lands.

Two things to watch for:

  • Payments are final. Check the recipient zk.money shows you before you confirm, because nothing can reverse a payment once it lands. To pay someone you do not fully trust, send a payment link instead: if they never claim it, you get the funds back.
  • Each payment must stay below $2,500. Read Limits for more details.

To someone who does not have a zk.money wallet

Send a payment link. An open link pays whoever opens it; an email link pays only the person who signs in to Google or Apple with the address you enter.

  1. Choose the amount and a claim window of 1, 7 or 30 days, 30 by default. For an email link, enter the address too.
  2. Confirm with your passkey. The funds move into an escrow on Aztec, and zk.money shows you the link once the transaction lands.
  3. Send the link. The other person opens it and claims. They do not need a zk.money account: they can claim into a zk.money balance, or straight out to an Ethereum address. An email link also asks them to sign in with Google or Apple.

Creating a link and claiming one each need a proof of about one minute. An email claim also downloads a large proving file the first time, so a slow connection makes it slower.

One thing to watch for:

  • Whoever holds an open link holds the funds. Treat an open link like cash, and send it over a channel you trust.

Refunding a payment link

Until somebody claims a link you can take the funds back, and both kinds of link work the same way. A link is never both claimed and refunded: the first of the two to land is the only one that counts.

Before the expiry, cancel the link from your activity list and the funds return to you. The holder can still claim during that time, and the first transaction to land wins, so zk.money stops offering the cancel about half a minute before the expiry, to leave your refund time to land.

After the expiry, reclaim the link from your activity list. Nobody can claim it any more, so there is nothing to race and no deadline.

The expiry is the claim window you chose, which opens about two minutes after you create the link. Your refund window opens the moment you create the link and closes at that same expiry; you cannot set it separately. You can refund from any browser you sign in to: zk.money finds your links again from the network.

Troubleshooting failed payments

If a payment or a claim does not go through, one of these is usually the cause:

  • The tag does not resolve. Check the spelling.
  • The enclave or the proof fails. zk.money shows an error you can report. Try again.
  • Sponsored fees are unavailable. zk.money pays the network fee on your payments. They stop while the contract that funds it is empty, and while the Aztec Network's fee is higher than that contract will pay. Try again later.
  • A claimer signs in with a different address than the one you entered on an email link. zk.money refuses the claim.
  • The proving file does not load on an email claim. The claim cannot finish. Try again on a better connection.

If none of these is it, Settings in the web wallet has Report a bug, and a place to send feedback.