On-chain reconciliation for prediction-market bots
Your bot's logs lie. FillProof doesn't.
FillProof reconciles what your bot claims against what the chain settled — fills, fees, resolutions, PnL. Every number is an on-chain fact or explicitly marked unknown. Nothing in between.
of traded volume paid in fees — invisible in every dashboard
$0.00
what the public API reported those fees as. 0 of 23 rows.
6,904 → 6
claimed signals vs fills that ever touched the chain
The fee you can't see
Polymarket's public trades API exposes no fee field — at all. Any tool built on it that shows a fee column is showing a fabricated zero. Your net PnL is overstated by every fee you've ever paid, and nothing on screen tells you.
What the API told us
$0.00
fees, across a wallet's complete trade history
What the chain recorded
$9.82
2.51% of $390.80 traded — enough to invert a strategy's profitability
Recovered three independent ways — and they must agree
✓The OrderFilled event's own fee field, on the wallet's row
✓The dedicated fee event, keyed to the fee-collector address
✓Settled pUSD transfer − price × size — the gap is the fee
FillProof computes all three on every fill. If they ever disagree, it flags the fill and keeps the fee unknown — a disagreement means the model of the contract is wrong, and you want to know, not average over it. On every fill audited so far: agreement to the micro-dollar.
The rule the whole product is built on
Absent means unknown. Never zero.
A missing measurement is never presented as a measured value. It's enforced in the schema, the engine, and every response: an unknown fee is null, an unmarked position is unknown, and net PnL stays unknown until every component is a fact. We'd rather show you a blank than a number we can't stand behind.
fill · what honest output looks like
price × size$5.180
settled on-chain$5.285148
fee (verified)$0.105150
fee (before verification)$0.00— unknown
Five ways your log lies. One report that catches all of them.
POST what your bot thinks it did. FillProof returns the diff against venue truth — and tells you how each match was made, because match confidence is disclosed, not implied.
okprice_slippartialunfilledphantom
Your claim
Venue record
Drift
buy 25 @ 0.47
BTC-up-1455
buy 25 @ 0.49
slipped 2¢ · cost $0.50
price slip
sell 40 @ 0.55
ETH-up-1500
sell 40 @ 0.55
exact
ok
buy 50 @ 0.31
SOL-up-1505
—
no venue record
unfilled
buy 100 @ 0.40
XRP-up-1510
buy 62 @ 0.40
38 shares short
partial
18 matched by order id (certain)5 matched heuristically (probable)method disclosed on every row
"If you've never reconciled against venue records, you don't know your PnL — you know your bot's opinion of it."
A profitable backtest, a profitable log, and a profitable bot are three different things. Only one of them pays.
Sixty seconds to find out if your bot has been lying to you.
Paste your wallet. Get a drift report on your last 50 fills — real fees, real drift, real net. Free, read-only, no email gate.
We report the gap. We never execute it. No signing keys — ever.
Design-partner beta · limited seats
$49/mo
Beta pricing — locked for early partners
✓ Continuous reconciliation on your wallets
✓ Drift API — POST claims, get the diff
✓ Fees verified on-chain, three ways, every fill
✓ Honest PnL: facts, settlements, and nulls — never blended
✓ Direct Telegram support
FillProof
Demo data shown. Your wallet's numbers appear here after the first backfill completes (~2 minutes).