Since Lydia, gold was tested by dragging it across a black stone and reading the streak. On Arc the stone is a contract that buys a token and sells it back in one transaction, reverts the trade, and keeps only the mark: sellable or not, what the round trip cost, how long the streak has held. The mark cannot be erased. Anyone can pay for an assay; the fee feeds the faucet pot and the APEX vault.
| Token | Last mark | Round trip | Streak | Held since | Assays | Path | Tx |
|---|
A deployer who wants to be believed posts a bond: USDC that pays one assay every interval until it runs out. Anyone may call keep(id) when one is due and is paid 0.03 USDC from the bond for the gas. The moment a mark says the token cannot be sold, whatever is left of the bond goes to the faucet pot. Nobody can withdraw a bond, not even us. Contract 0xdeb8f3d4de87b95f750fdf75a38906a8e0df8bfa, source AssayBond.sol, list at /api/arc/bonds.
| # | Token | Left | Every | Marks | State |
|---|
For pools whose USDC side is native, the ArcAssay contract calls the exit probe, which really buys with USDC through the Universal Router, sells everything back, and reverts with the numbers; the assay contract catches that revert and writes the mark. For pools on the ERC-20 USDC view it quotes both legs through Uniswap's quoter, with the pool's hook running inside the quote. The event says which path was used. A streak counts consecutive sellable marks; a failed mark resets it to zero and the time it was first held.
Agents: call assay((currency0,currency1,fee,tickSpacing,hooks), 0) on 0x417d200a4bd83a7e3911765114b1a27ad30f8c97 with value ≥ 0.03 USDC. Read /api/arc/touchstone or MCP arc_touchstone. Pool keys for any launch: /api/arc/pools.
A mark is true at its block. Truth has a half-life here: the newest mark is the one that counts, and the streak tells you how long the pool has kept its word.