Skip to main content
Turn confirmed token logs into ledger rows for captures, refunds, and payouts. This guide owns the merchant report; Reconcile with memos explains the B20 memo mechanics from an issuer’s perspective.

Demo

The demo above is mock only. If you want to see onchain demos on Vibenet, head to Base chain demos.

Build a Settlement Report

TypeScript backend
A B20 Memo immediately follows its parent Transfer, so (transactionHash, logIndex - 1) joins the reference to the operation. Plain USDC has no memo event; join those transfers to your stored transaction hash, authorization nonce, or contract event.
Every returned row has a stable transaction/log identity, direction, counterparty, amount, and an order reference when the token emitted a memo.
Run reports only through a finalized block range for accounting. If you also display recent confirmations, label them provisional and replace them after a reorg.

Classify Outgoing Transfers

A raw Transfer from the merchant can be a refund, payout, treasury move, or split leg. Join it to your refund ledger or the PayoutSent(reference, ...) event rather than guessing from direction alone.

See Also

Reconcile with B20 Memos

Learn the token-level memo ordering guarantee.

Watch for Payments

Keep the underlying event index current.