Skip to main content
This is a reference for the verification API’s payload adapter. For apps you can use inside a Desk, see Desk apps.
venue: uniswap. Over HTTP, uni, uniswapx, uniswaptradingapi, uniswapapi, tradeapi and universalrouter also resolve to it.

What to send

All three shapes are detected without venue. All are in the swap family. The known contracts are Permit2 (0x000000000022D473030F116dDEE9F6B43aC78BA3), the Trading API swap proxy (0x0000000085E102724e78eCd2F45DC9cA239Affad and 0x02E5be68D46DAc0B524905bfF209cf47EE6dB2a9), and the Universal Router on Base (0x6fF5693b99212Da76ad316178A184AB56D299b43) and Ethereum (0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af). Calldata to them is not decoded; in an escrow wallet, the simulation shows what the swap moves. The summary shows amounts in human units for USDC and WETH on Ethereum and Base and for native ETH, and raw base units for other tokens. For a quote it shows the enforced minimum output (minimumAmount), which is the floor the transaction commits to, rather than the estimate.

Live re-quote

For quote requests and quotes, the adapter asks the Trading API for a fresh quote of the same trade (POST https://trade-api.gateway.uniswap.org/v1/quote) and adds the fresh input and output, enforced minimum, price impact and gas estimate. It needs a chain id in the payload, and it runs only when the Chance deployment has a Uniswap API key. Otherwise, or when the call fails or times out (7 seconds), a note says the payload’s amounts are unverified. Results are cached for 60 seconds.

Notes the classifier adds

  • slippageTolerance and quote.slippage are percents: 0.5 is 0.5%, not 50%. Above 1% is flagged, and above 5% is called extreme.
  • An output recipient different from the swapper sends the proceeds to another wallet.
  • Price impact above 1%, and a quote with no minimumAmount.
  • A routing other than CLASSIC, WRAP or UNWRAP executes as a signed UniswapX order, not a transaction.
  • permitData or a signature in the payload grants Permit2 spending authority along with the swap.

Example

From an MCP client

Instruct the agent to call verify_intent before executing any Uniswap trade, with your rules as intent, the exact quote or transaction as action and venue: "uniswap", and to act only on ALLOW.

Swapping from an escrow wallet

escrow_swap quotes, builds and proposes a Uniswap swap from an escrow wallet on supported EVM networks. See Wallet API. Its slippageBps is in basis points (default 50, maximum 1,000), unlike the Trading API’s percent, and it refuses UniswapX routings.