Skip to main content
Tie onchain activity back to your books. A memo attaches a bytes32 reference to an operation and emits a Memo event alongside it, so reconciliation is a log query instead of a deposit address per customer. Every core call has a memo variant: mintWithMemo, burnWithMemo, transferWithMemo, and transferFromWithMemo. If you operate the merchant side and need a settlement report across captures, refunds, and payouts, see Reconcile payments.

Demo

The demo above is mock only. If you want to see onchain demos on Vibenet, head to Base chain demos.
New to B20? See the B20 Token Standard for the concepts and a full launch walkthrough. These samples target base-std@v1.0.0, viem@2.55.11, and Base Foundry v1.1.1.

Attach and Read an Invoice Memo

See the B20 token standard for the complete interface, roles, and policies.
The receipt contains Transfer followed immediately by Memo, with invoice-8842 encoded as bytes32.
Join a memo to the preceding operation with (transactionHash, logIndex - 1). Keep the offchain invoice ID unique.

See Also

Accept a B20 Payment

The app-side B20 memo payment flow.

Query B20 Events (CDP SQL API)

Reconcile at scale with the CDP SQL API.