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.
Demo
Complete Launch a B20 token first. These samples target
base-std@v1.0.0, viem@2.55.11, and Base Foundry v1.1.1.Attach and read an invoice memo
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 for the app-side flow
- Query B20 events with the CDP SQL API to reconcile at scale