Skip to content

Payout verification for USDC on Base

Every payout. Independently verified.

Upload what you meant to pay. PayoutGuard reads the blockchain and tells you, row by row, what actually arrived, what is missing, and what is not final yet, with the evidence to prove it.

  • Read-only: no keys, no signing
  • Verified only on finalized blocks
  • Evidence for every row
  • CSV and PDF reports with SHA-256

Batch

October contributor rewards

USDC on Base · 4 payouts · window 1–31 Oct

Example

You meant to pay

465.00

USDC

Found on-chain

430.00

USDC, every block finalized

  • OCT-001

    0x8f3a…21c4

    250.00

    found 250.00

    Verified
  • OCT-002

    0x1b9e…77d0

    100.00

    found —

    Missing
  • OCT-003

    0xc04d…9a12

    40.00

    found 30.00

    Underpaid
  • OCT-004

    0x5e7f…0b3e

    75.00

    found 150.00

    Overpaid
Evidence for every row: transaction hash, log index, block and finality. A row is Verified only once its block is finalized and the whole window was scanned.

Who it is for

For teams that pay many people in stablecoins and must be sure they did.

  • DAOs and protocols

    Contributor rewards, grants and incentive programmes paid from a treasury or Safe.

  • Web3 payroll and contractors

    Monthly USDC payroll where every person must receive exactly what was agreed.

  • Rewards and affiliate payouts

    Hundreds or thousands of small transfers where a few failures hide easily.

  • Finance and operations teams

    The people who must prove, after the fact, that the money moved as intended.

Not a wallet, a payment tool or accounting software. PayoutGuard checks payouts after they are sent; it never sends them.

The problem

The script said success. Did everyone get paid?

Sending a payout run is easy. Proving afterwards that each person received exactly what they were owed is not.

  1. Problem 01

    A successful transaction is not a correct payout.

    A script can finish without errors while one recipient got the wrong amount, or nothing at all.

  2. Problem 02

    Explorers show transfers, not intent.

    A block explorer tells you what moved. It does not know what you meant to pay, so it cannot tell you what is missing.

  3. Problem 03

    Batches hide partial failures.

    Multisig and MultiSend batches pay many people at once. One skipped row looks like success from the outside.

  4. Problem 04

    Duplicates and look-alike tokens slip through.

    Paying someone twice, or in bridged USDbC instead of native USDC, is easy to miss in a spreadsheet. PayoutGuard checks the exact token, so a payment in the wrong one never counts as paid.

  5. Problem 05

    Not every confirmed block is final.

    A transfer in a block that is not yet finalized can still be reorganised away. Settled means finalized.

How it works

Three steps from a payout file to a signed-off result.

  1. 01

    Upload what you meant to pay

    A CSV of payout IDs, recipients and amounts, or the same rows through the API. Add the paying wallet and the time window.

  2. 02

    PayoutGuard reads the chain

    Read-only queries over the window: every USDC transfer from your wallet, checked for complete coverage and finality.

  3. 03

    Get a verdict for every row

    Verified, missing, underpaid, overpaid, duplicate, wrong token and more, each with the transaction that proves it.

The outcome: a reproducible record of what was paid, signed off by your team.

Export as CSV or PDF.

What you get

Everything finance needs to trust a payout run.

Built around one rule: a payout is only called verified when the chain proves it, and every result can be explained from stored evidence.

Reproducible by design.

Every run records its inputs and outputs with hashes, and history is append-only. Run it again later and you can show exactly what was known when.

  • Row-by-row matching

    Each expected payout is matched to the transfer that paid it, by recipient and exact amount in base units.

  • Finality-aware results

    Provisional until the block is finalized and the whole window is scanned. Only then Verified.

  • Evidence drawer

    Transaction hash, log index, block, timestamp and explorer link for every match.

  • Exception workflow

    Record a disposition with a reason on each exception, then sign off the run.

  • Monitoring and alerts

    Scheduled re-checks of the batches you monitor, and an email when a re-check finds a result got worse.

  • Safe multisig inspection

    Decode a Safe transaction locally and prove its execution from the Safe's own on-chain event.

  • Reports you can hand over

    Results, exceptions, transfers and summary as CSV, or a PDF, each with a recorded SHA-256.

  • API and idempotency

    Scoped API keys, rate limits and Idempotency-Key, so an integration can retry safely.

  • Team roles and audit log

    Owners, admins and viewers. Every change is recorded with who made it.

Plain answers

Every row ends in a status a person can act on.

  • Verified

    Paid in full, in a finalized block, with the whole window scanned.

  • Provisional

    Paid, but the block is not finalized yet.

  • Missing

    No transfer to this recipient in the window.

  • Underpaid

    Paid less than expected.

  • Overpaid

    Paid more than expected.

  • Potential duplicate

    More than one transfer could pay this row.

  • Wrong token

    A linked Safe transaction paid this row in another token.

  • Ambiguous

    Several rows compete for one transfer; a person decides.

  • Scan incomplete

    Part of the window could not be read yet; nothing is guessed.

Read-only by design

We can see your payouts. We can never touch them.

  • Not a wallet

    No private keys, seed phrases or signatures, ever. You add a public address and nothing else.

  • Not a payment tool

    PayoutGuard only reads. The code that talks to the chain refuses any request that could send or sign.

  • Not a black box

    Each result links to the transaction that proves it, and each organisation's data is isolated from every other.

Compared

Built for checking payouts, not for browsing blocks.

PayoutGuard compared with checking by hand in a block explorer and with a spreadsheet and script
CapabilityPayoutGuardBlock explorer by handSpreadsheet and script
Compares against what you meant to payYes, row by rowNoBy hand
Waits for finality before saying paidYesShows confirmationsRarely
Finds missing and partial paymentsAutomaticallyOnly if you lookError-prone
Catches double paymentsYesNoSometimes
Evidence attached to each resultHash, block, log indexOne page per transactionCopied links
Audit trail and sign-offBuilt inNoVersion history

Pricing

Start free. Pay when payouts are routine.

Plans are priced on what you put in: batches, payouts and wallets. Re-checks, monitoring runs and retries never count.

Compare plans

Free

Try it on a real payout run.

$0forever

  • 3 batches a month
  • 100 payouts per batch
  • 1 watched wallet
  • 1 team member
  • Manual re-checks
  • No API access
Start free

Starter

For a team paying out every month.

$49a month

  • 20 batches a month
  • 1,000 payouts per batch
  • 3 watched wallets
  • 3 team members
  • Scheduled re-checks: daily, weekly
  • API access, 60 requests a minute per key
Start with Starter

Growth

Recommended

For regular payouts across several wallets.

$199a month

  • 100 batches a month
  • 5,000 payouts per batch
  • 10 watched wallets
  • 10 team members
  • Scheduled re-checks: hourly, daily, weekly
  • API access, 300 requests a minute per key
Start with Growth

Business

For high-volume programmes and finance teams.

$499a month

  • 500 batches a month
  • 10,000 payouts per batch
  • 50 watched wallets
  • 50 team members
  • Scheduled re-checks: hourly, daily, weekly
  • API access, 1,000 requests a minute per key
Start with Business

Questions

What finance and ops teams ask first.

More detail lives in the docs.

Does PayoutGuard need my private keys or wallet access?
No. PayoutGuard only reads public blockchain data. You add a wallet by its public address; we never ask for a private key, a seed phrase or a signature, and we cannot move funds.
Which tokens and networks are supported?
USDC on Base. The engine is not tied to one chain, but a network or token is offered only once it has been verified end to end.
What does Verified actually mean?
The expected amount reached the expected recipient in a block that is finalized, and the whole time window was scanned without gaps. Anything less is shown as Provisional or as an exception, never as Verified.
How do I get my expected payouts in?
Upload a CSV with a payout ID, recipient address and amount per row, or send the same rows through the API. PayoutGuard validates every row before anything is stored.
What happens when something is wrong?
The row becomes an exception, such as Missing or Underpaid, with the evidence that explains it. Your team records what was done about it, signs off the run, and exports a report.
Can I try it before paying?
Yes. The Free plan covers 3 batches a month of up to 100 payouts each, with no card required. Upgrade from the Billing page when you need more.

Know exactly what was paid.

Verify your next payout run free. No card, no keys, nothing to install.