Skip to main content
Chance understands the Uniswap Trading API natively. Submit the exact quote request, quote response, or swap transaction your agent is about to execute and the harness will classify it deterministically, re-quote the trade against the Trading API itself (fresh output, enforced minimum, price impact), and judge it against your mandate with Uniswap’s own documentation in the loop — returning a signed verdict whose 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 dedicated escrow_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:
You can also pass the full quote object the API returned, or the final swap transaction itself — all three shapes are auto-detected (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, call verify_intent with my rules as the intent and the exact quote or transaction as the action. To trade from my escrow wallet, use escrow_swap and 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.