FAQs

Do You Have OAS Documentation?

Yes. OAS documentation is available here. We recommend using the the OpenAPI generator CLI to build a typed client.

How Does Authentication Work?

All endpoints require an API key to be accessed, which needs to be provided in the header of each request as illustrated in the example below:

curl --request GET \
     --header 'accept: application/json' \
     --header 'x-api-key: <YOUR_API_KEY>'

Which Chains and Tokens are Supported?

Supported Chains for Swapping

The following chains are supported for swapping. Note the router address which you may need to whitelist for your wallet(s)/application.

Chain IDChain NameUniversal Router 1.2 AddressUniversal Router 2.0 Address
1Mainnet (Ethereum)0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD0x66a9893cc07d91d95644aedd05d03f95e1dba8af
10OP Mainnet0xCb1355ff08Ab38bBCE60111F1bb2B784bE25D7e80x851116d9223fabed8e56c0e6b8ad0c31d98b3507
56BNB Smart Chain0x4Dae2f939ACf50408e13d58534Ff8c2776d452650x1906c1d672b88cd1b9ac7593301ca990f94eae07
130Unichain0x4D73A4411CA1c660035e4AECC8270E5DdDEC8C170xef740bf23acae26f6492b10de645d6b98dc8eaf3
137Polygon0xec7BE89e9d109e7e3Fec59c222CF297125FEFda20x1095692a6237d83c6a72f3f5efedb9a670c49223
324zkSync0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C060x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06
480World Chain0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743
1868Soneium0x0e2850543f69f678257266e0907ff9a58b3f13de0x0e2850543f69f678257266e0907ff9a58b3f13de
8453Base0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD0x6ff5693b99212da76ad316178a184ab56d299b43
42161Arbitrum0x5E325eDA8064b456f4781070C0738d849c8242580xa51afafe0263b40edaef0df8781ea9aa03e381a3
42220Celo0x643770e279d5d0733f21d6dc03a8efbabf3255b40x643770e279d5d0733f21d6dc03a8efbabf3255b4
43114Avalanche0x4Dae2f939ACf50408e13d58534Ff8c2776d452650x94b75331ae8d42c1b61065089b7d48fe14aa73b7
81457Blast0x643770E279d5D0733F21d6DC03A8efbABf3255B40xeabbcb3e8e415306207ef514f660a3f820025be3
7777777Zora0x2986d9721A49838ab4297b695858aF7F17f380140x3315ef7ca28db74abadc6c44570efdf06b04b020
Testnet Chain IDTestnet Chain Name
1301Unichain Sepolia (Testnet)0x8909Dc15e40173Ff4699343b6eB8132c65e18eC60xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d
10143Monad (Testnet)0x3ae6d8a282d67893e17aa70ebffb33ee5aa658930x3ae6d8a282d67893e17aa70ebffb33ee5aa65893
11155111Ethereum Sepolia (Testnet)0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD0x3a9d48ab9751398bbfa63ad67599bb04e4bdf98b

Supported Tokens for Swapping

Generally any two tokens on any supported chain can be swapped. A list of "verified" tokens (e.g. those offered for trading on major centralized exchanges) is available here: https://tokens.uniswap.org/. Quote responses will only be returned from UniswapX if the quote request contains tokens from this list. Any request for a quote where one or both tokens are not on the verified list will cause the quote to automatically route through Uniswap Protocol pools (unless no protocols are whitelisted in which case the request will fail).

Uniswap Labs maintains a list of "unsupported" tokens, for which we do not permit swapping due to legal or regulatory restrictions. Those tokens and their chains are available here: https://unsupportedtokens.uniswap.org/.

Note that all tokens do not necessarily have regular or sufficient liquidity to perform a swap between any two tokens at any volume. We always recommend submitting a quote request prior to performing a swap to confirm that there is both an available route or filler to complete the swap as well as available liquidity.

We recommend that end users always do their own due diligence before swapping any tokens.

Supported Tokens for Bridging

To get a list of tokens which can be bridged, and the chains between which they can be bridged, please make a request to the swappable_tokens endpoint.

How Do I Swap Native Tokens?

To swap native tokens, use the address 0x0000000000000000000000000000000000000000. Please note that token trading for native input is not currently available for Uniswap X.

What Parameter Determines If I Receive a Gasless Quote?

When the quote endpoint's routingPreference is set to BEST_PRICE, the endpoint will attempt to find a quote that nets users the best execution price for a trade. Assuming the protocols are not limited, the endpoint will attempt to get a gasless order and a Uniswap Protocol swap quote (e.g. from a V2, V3, or V4 pool), calculate which is currently providing the best price to the user including transaction costs, and return that quote.

Integrators of the API who only want only gasless quotes may limit the protocols considered to just gasless options (e.g. UniswapX - see Token Trading Workflow for more details).

There are some scenarios where the API will not be able to get a gasless quote, even if the integrator attempts to force it. The most common reason for this is that the gas price of the swap is too high relative to the value of the trade. In cases where gas cost is 20% or more of the total trade value, the API will always return Uniswap Protocol swap quotes (if permitted by protocols) or fail.

What Permit2 Address Do I Need to Whitelist for Approvals?

The Permit2 address for all chains we support EXCEPT zkSync is: 0x000000000022D473030F116dDEE9F6B43aC78BA3.

The zkSync's Permit2 address is: 0x0000000000225e31D15943971F47aD3022F714Fa.

What Are the API Rate Limits?

By default each API key is rate limited to 12 requests per second. If a higher rate is needed, please reach out to your Uniswap Labs contact.

Why Do UniswapX Quotes Have More Slippage Than the Tolerance I Set?

Quotes in UniswapX work differently than they do in the Uniswap AMMs. While AMM quotes return the market price with some buffer for slippage, UniswapX works to get users price improvement over the market price. The difference between the best and worst price in a UniswapX order is called its spread.

When you set a Slippage Tolerance in your quote request, you're only setting the amount below the market price you are willing to accept. UniswapX will still return a spread larger than your slippage tolerance when it's able to find a price above the market price.