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
You meant to pay
465.00
USDC
Found on-chain
430.00
USDC, every block finalized
OCT-001
0x8f3a…21c4
Verified250.00
found 250.00
OCT-002
0x1b9e…77d0
Missing100.00
found —
OCT-003
0xc04d…9a12
Underpaid40.00
found 30.00
OCT-004
0x5e7f…0b3e
Overpaid75.00
found 150.00
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.
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.
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.
Problem 03
Batches hide partial failures.
Multisig and MultiSend batches pay many people at once. One skipped row looks like success from the outside.
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.
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.
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.
02
PayoutGuard reads the chain
Read-only queries over the window: every USDC transfer from your wallet, checked for complete coverage and finality.
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.
| Capability | PayoutGuard | Block explorer by hand | Spreadsheet and script |
|---|---|---|---|
| Compares against what you meant to pay | Yes, row by row | No | By hand |
| Waits for finality before saying paid | Yes | Shows confirmations | Rarely |
| Finds missing and partial payments | Automatically | Only if you look | Error-prone |
| Catches double payments | Yes | No | Sometimes |
| Evidence attached to each result | Hash, block, log index | One page per transaction | Copied links |
| Audit trail and sign-off | Built in | No | Version 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.
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
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
Growth
RecommendedFor 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
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
Does PayoutGuard need my private keys or wallet access?
Which tokens and networks are supported?
What does Verified actually mean?
How do I get my expected payouts in?
What happens when something is wrong?
Can I try it before paying?
Know exactly what was paid.
Verify your next payout run free. No card, no keys, nothing to install.



