What the bench is striking, right now.
Every line is one assay somebody just ran: their Telegram name, the ticker, what actually arrived against what the interface promised, and the grade that came out. Nothing else — no wallet address, no transaction hash, no note. Anyone can leave the feed from their own dashboard, and leaving takes their past entries with them.
What this actually does.
You swap a token. The interface tells you what you got. Assay does not take its word for it — it rebuilds the number from the chain and tells you how much of the promise really landed.
The screen is a claim
The number you are shown is written by the same system that executed your trade. It is a report, not a receipt.
The chain is the record
Assay reads the transfers the token contracts themselves emitted and nets them against your wallet. No interface sits in between.
The answer is a grade
Assayers have graded metal in parts per thousand since 1300. Nine hundred and seventy-eight of your promised thousand arrived: Sterling.
And it comes to you
Register a wallet and every settled transaction gets assayed and explained on Telegram — each notice carrying a link that re-runs the whole thing in front of you.
One hash in. A number nobody can edit out.
Paste a settled transaction. Assay reads the ERC-20 transfers the token contracts themselves emitted, nets them against your wallet, and — if you say what you were promised — strikes the fineness: parts per thousand that actually arrived.
chain arbitrum · 42161 block 496,204,454 status settled router 0x68b3…fc45 exactInputSingle Rebuilt from the token contracts ARB +96.412031 0x7c1f… USDC −10,000.00 0x2a90… gas paid 0.0000031 ETH (network, not the venue) promised 98.5 ARB arrived 96.412031 ARB fineness 978 / 1000 (Sterling, rounded down) ────────────────────────────────── Deterministic. Re-run it and check.
A specimen of the bench output. Struck assays also produce a hallmark — assayer, fineness, office, block — and a permalink that re-runs the whole thing from the chain in front of whoever you send it to.
Four steps. No interpretation.
Anyone re-running them against the same transaction lands on the same number — which is what makes it checkable rather than trusted.
Confirm settlement. Fetch the transaction and its receipt. An unconfirmed transaction is a rumour, not a fill.
Read the transfers. Every ERC-20 transfer the token contracts emitted — ignoring whatever the venue said about its own work.
Net against the wallet. Incoming minus outgoing, per token. That sum is what moved, and no interface gets a vote in it.
Strike the fineness. Divide what arrived by what was promised, in parts per thousand. Assay offices round down, so Assay does too.
The scale is the real one. Sterling silver is 925 fine — 925 parts silver per thousand. Below 750, an assay office breaks the piece rather than mark it, and Assay refuses the stamp.
What it verifies, and what it doesn't.
Every tool like this has a boundary. Stating ours is part of the method, not a disclaimer bolted on afterwards.
What it catches
A venue claiming one output while the token moved another. The venue contract and the token contract are different contracts, so the venue cannot forge the token's own transfer record.
This is the common and important case, and it is the one Assay was built for.
What it does not catch
Step ii trusts each token contract to report its own transfers — weaker than diffing raw balances at block N−1 and N. A malicious token would defeat it.
True balance-diffing needs an archive node, which the public RPC does not serve. It is on the roadmap, not in the build.
Assay also reads the floor you signed from recognised routers — a real, cryptographically committed promise, but weaker than the quote the interface displayed. The two are never confused, and the floor never feeds fineness.
An agent that keeps assaying after you close the tab.
An assay office does not test one coin and call the mint honest — it tests on a cadence, and has done since 1282. The Assay Agent is that idea pointed at fills: name a wallet once, and every settled transaction that moves a token gets assayed and explained in plain English on Telegram.
This one costs you privacy, and you should know before you use it. The bench runs entirely in your browser and Assay sees nothing. A watcher cannot: a server has to hold the link between your Telegram account and the addresses you asked it to watch. That is a real trade, stated plainly, and it is why the watcher is a separate opt-in rather than part of the bench.