requestHash binds to those exact bytes.
What gets recognized
For every payload, the classifier decodes amounts out of their raw base units, reads the slippage (a percent in this API —
0.5 means 0.5%), surfaces the onchain-enforced minimumAmount (the real floor, not the optimistic estimate), and checks whether the output recipient redirects proceeds away from the swapper. Quote payloads are re-quoted independently, so a stale or doctored quote never stands as its own evidence. The judge reasons over:
UNISWAP SWAP QUOTE: 1 USDC → 0.00055958 WETH (enforced minimum 0.0005568 WETH), on Base (chainId 8453), swapper 0x397E…dd83, routing CLASSIC, slippage 0.5%, est. gas $0.0021 — Independent re-quote (Uniswap Trading API, just now): 1 USDC → 0.00055912 WETH, enforced minimum 0.00055633 WETH, price impact 0.01%.
Swap from an escrow wallet in one call
Escrow wallets get a dedicatedescrow_swap MCP tool — describe the trade in plain terms and Chance does the rest:
Swap 1 USDC for WETH on base from my baseliquid wallet.Under the hood, Chance quotes the trade (
/quote), asks the API what approval is missing (/check_approval), and assembles the exact transaction batch — with a bounded approval for just this swap’s amount instead of the API’s default unlimited grant — then proposes the batch through the standard verification gate: simulated with state carry-over, judged against the wallet’s mandate, executed immediately on an autonomous wallet with an ALLOW and a clean simulation, or held behind a one-time approval link. UniswapX routings (signed orders rather than transactions) are refused rather than half-verified.
Use it from your bot
Wrap the quote you were already going to execute:venue is optional).
Use it from Claude or ChatGPT
Add the hosted connector (https://harness.chance.cc/api/mcp, see Connectors) and give your agent one standing instruction:
Before executing any Uniswap trade, callverify_intentwith my rules as the intent and the exact quote or transaction as the action. To trade from my escrow wallet, useescrow_swapand relay any approval link to me verbatim.
How the harness knows Uniswap
The venue ships a versioned knowledge snapshot of the Trading API — endpoints and shapes (/check_approval, /quote, /swap), the Permit2 and proxy-approval flows, routing types (CLASSIC vs UniswapX orders), supported chains, execution-contract addresses, and error semantics — every page content-hashed and cited in the verdict’s transcript. Slippage-unit confusion, unlimited-allowance defaults, redirected recipients, and permit-borne spend authority are called out explicitly in the judge’s brief.