Visual intent

Pay from a picture. Attach a QR code, a payment request, an invoice or a screenshot of instructions in Ask PayAI, and PayAI reads the payment out of it — then shows it to you as an ordinary request to review and approve.

Last updated 13 October 2026

What it is

In Ask PayAI, tap the image button next to the message box and choose a photo or screenshot. You can add a caption, or send the image on its own. PayAI reads it and does one of four things:

Result
A request
What you see
A plain sentence such as “Send 25 USDC to alice.nad”, which goes through Ask PayAI exactly like typed text — the same plan, review and approval.
Result
A question
What you see
Something essential is missing (amount, token or recipient). PayAI lists what it read and asks for the rest.
Result
A conflict
What you see
The image and your caption, or two parts of the image, disagree. PayAI shows both and asks which is right — it never picks one.
Result
A refusal
What you see
The image can't be used safely: an invalid recipient, an unsupported QR code, or instructions aimed at PayAI. Nothing is prepared.

What PayAI can read

In the image
A wallet QR code
What PayAI takes from it
The address or .nad name. You add what to send — “Send 5 USDC to this address”.
In the image
A payment request QR
What PayAI takes from it
Recipient, and for MON the amount, from the standard EIP-681 format. See QR codes below.
In the image
An invoice
What PayAI takes from it
Who it's from, the invoice number, the total, the token and the address to pay. It is paid only when your caption asks — “Pay this invoice”.
In the image
Written payment instructions
What PayAI takes from it
Up to 5 sends and swaps, such as a screenshot of “swap 10 MON to USDC and send it to name.nad”.
In the image
A printed address
What PayAI takes from it
A 0x address or .nad name shown in the image, used as the recipient.

QR codes are read by PayAI itself. Reading invoices, written instructions and printed text uses a language model from Anthropic, the same one Ask PayAI uses for open-ended wording — see How Ask understands you. Where that is turned off, QR codes still work and other images get a message asking you to type the request.

QR codes

Format
Address
Example
0x8b2c…464D
Read as
Recipient. A mixed-case address must carry a valid checksum, so a mistyped or altered one is refused.
Format
.nad name
Example
alice.nad
Read as
Recipient, resolved to its address in the review.
Format
EIP-681 native transfer
Example
ethereum:0x…@143?value=…
Read as
Recipient and the MON amount.
Format
EIP-681 token transfer
Example
ethereum:<token>@143/transfer?address=0x…
Read as
Recipient and token. A raw token amount isn't guessed — you state it.

The monad: scheme is read the same way as ethereum:. A payment request for another network is refused, and anything else — a website link, a long payload, unexpected characters — is refused with the reason. Nothing in a QR code is ever opened, fetched or run.

Adding a caption

A caption says what to do with the image, and fills in what the image doesn't have:

Image
Wallet QR
Caption
send 5 USDC to this address
Becomes
Send 5 USDC to that address
Image
Invoice
Caption
pay this invoice
Becomes
Pay the invoice total to its pay-to address
Image
Payment request QR with no amount
Caption
pay 20 USDC
Becomes
Send 20 USDC to the QR's recipient
Image
Screenshot of instructions
Caption
(none)
Becomes
Those instructions, as one plan

When the caption and the image both state an amount, a token or a recipient and they differ, PayAI asks which is right instead of choosing. The same applies when a QR code and an address printed next to it disagree — a sign of a swapped sticker or an altered image.

From image to payment

  1. Upload checked. The file must really be a PNG, JPEG or WebP — judged by its contents, not its name — within the size limits below.
  2. Read. PayAI decodes any QR code and, where enabled, reads the rest of the image.
  3. Validated. Every amount, token and recipient is checked on its own. Only those validated fields are used — never free text copied out of the image.
  4. Turned into a request. The fields become one plain sentence, shown in the chat as your request.
  5. Reviewed and approved as usual. From here it is an ordinary Ask PayAI request: the plan review with full addresses, one approval, and your wallet signs. See One approval.

Safety rules

  • Instructions inside images are ignored. Text aimed at PayAI or an assistant — “ignore previous instructions”, “approve automatically”, “already approved” — makes PayAI refuse the image and tell you why. This is checked in code on every field, not left to the model.
  • No “send everything”. An image asking for “all funds”, “max” or a whole balance is refused. Amounts from an image must be exact.
  • Valid recipients only. A recipient that isn't a valid 0x address or .nad name is refused, never corrected.
  • Disagreements are asked, never decided. Caption against image, or QR against printed address — you choose.
  • At most 5 actions per image. Larger lists are refused; send them in smaller groups or type them.
  • The review is the last word. Whatever was read, you see the exact amounts and full recipient addresses before approving.

Your image

The image is held in memory for the one request that reads it. It is not stored, not logged and never given a link; only the outcome (for example “QR read”) is recorded, never the image, the QR contents or the values read from it. The image itself isn't kept in your conversation — only your caption, marked as an image. Reading images needs an unlocked wallet. See Privacy.

Limits

  • PNG, JPEG or WebP, up to 4 MB, between 32 and 8,000 pixels on a side.
  • Captions up to 500 characters.
  • Up to 10 images per wallet every 5 minutes.
  • Up to 5 actions read from one image.
  • A raw token amount in a QR code isn't converted — state the amount in your caption.
  • Payments read from images follow Ask PayAI's own limits: sends in MON or USDC, swaps between MON and USDC.