@luxexchange/api 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +56 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/use-token-list.d.ts +22 -0
- package/dist/hooks/use-token-list.d.ts.map +1 -0
- package/dist/hooks/use-token-list.js +27 -0
- package/dist/hooks/use-token-price.d.ts +15 -0
- package/dist/hooks/use-token-price.d.ts.map +1 -0
- package/dist/hooks/use-token-price.js +63 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/package.json +10 -11
- package/project.json +2 -8
- package/src/clients/base/SharedQueryClient.ts +2 -2
- package/src/clients/base/errors.test.ts +39 -0
- package/src/clients/base/errors.ts +9 -1
- package/src/clients/base/urls.test.ts +7 -7
- package/src/clients/base/urls.ts +5 -5
- package/src/clients/base/utils.test.ts +2 -2
- package/src/clients/blockaid/createBlockaidApiClient.ts +1 -1
- package/src/clients/compliance/createComplianceApiClient.ts +40 -0
- package/src/clients/compliance/types.ts +15 -0
- package/src/clients/data/createDataServiceApiClient.ts +1 -1
- package/src/clients/dataApi/createDataApiServiceClient.ts +4 -4
- package/src/clients/dataApi/getGetPortfolioQueryOptions.test.ts +4 -4
- package/src/clients/dataApi/getGetPortfolioQueryOptions.ts +10 -6
- package/src/clients/embeddedWallet/createEmbeddedWalletApiClient.ts +254 -82
- package/src/clients/for/createForApiClient.ts +4 -4
- package/src/clients/for/utils.ts +1 -1
- package/src/clients/gasService/createGasServiceClient.ts +21 -0
- package/src/clients/graphql/queries.graphql +0 -183
- package/src/clients/graphql/queries.ts +0 -2
- package/src/clients/graphql/schema.graphql +603 -594
- package/src/clients/graphql/web/activity.graphql +0 -6
- package/src/clients/graphql/web/landing.graphql +0 -20
- package/src/clients/graphql/web/token.graphql +21 -3
- package/src/clients/lux/createLuxApiClient.ts +4 -21
- package/src/clients/trading/api.json +1 -1
- package/src/clients/trading/createTradingApiClient.ts +8 -8
- package/src/clients/trading/types.ts +1 -1
- package/src/clients/unitags/createUnitagsApiClient.test.ts +1 -1
- package/src/clients/unitags/createUnitagsApiClient.ts +5 -5
- package/src/clients/x/createXVerificationServiceClient.ts +26 -0
- package/src/components/ApiInit.test.tsx +2 -2
- package/src/components/ApiInit.tsx +5 -5
- package/src/connectRpc/utils.ts +1 -1
- package/src/getEntryGatewayUrl.ts +1 -1
- package/src/getWebSocketUrl.ts +10 -7
- package/src/hooks/shared/useQueryWithImmediateGarbageCollection.ts +1 -1
- package/src/hooks/useIsSessionInitialized.ts +1 -1
- package/src/index.ts +86 -59
- package/src/provideSessionService.native.ts +2 -2
- package/src/provideSessionService.ts +3 -3
- package/src/provideSessionService.web.ts +8 -8
- package/src/session/createSessionTransport.test.ts +1 -1
- package/src/session/createWithSessionRetry.ts +1 -1
- package/src/session/index.ts +1 -1
- package/src/storage/createExtensionStorageDriver.ts +1 -1
- package/src/storage/getStorageDriver.ts +1 -1
- package/src/storage/getStorageDriver.web.ts +1 -1
- package/src/transport.ts +1 -1
- package/stubs/privy-service-pb.d.ts +150 -3
- package/.depcheckrc +0 -17
- package/.eslintrc.js +0 -30
- package/src/clients/graphql/web/nft/CollectionSearch.graphql +0 -34
- package/src/clients/graphql/web/portfolios.graphql +0 -68
|
@@ -1 +1 @@
|
|
|
1
|
-
{"openapi":"3.0.0","servers":[{"description":"Lux trading APIs","url":"https://trade-api.gateway.lux.exchange/v1"},{"description":"Lux trading APIs Beta","url":"https://beta.trade-api.gateway.lux.exchange/v1"}],"info":{"version":"1.0.0","title":"Token Trading","description":"Lux Industries trading APIs."},"paths":{"/check_approval":{"post":{"tags":["Approval"],"summary":"Check if token approval is required","description":"Allows the requestor to check if the `walletAddress` has the required approval to transact the `token` up to the `amount` specified. If the `walletAddress` does not have the required approval, the response will include a transaction to approve the token spend. If the `walletAddress` has the required approval, the response will return the approval with a `null` value. If the parameter `includeGasInfo` is set to `true` and an approval is needed, then the response will include both the transaction and the gas fee for the approval transaction.\n\nCertain tokens may require that approval be reset before approving a new spend amount. If this condition is detected for the `walletAddress` and `token`, the response will include the necessary approval cancellation in the `cancel` paragraph. When `cancel` is not applicable, the paragraph will have a `null` value.","operationId":"check_approval","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ApprovalSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/ApprovalNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/quote":{"post":{"tags":["Quote"],"summary":"Get a quote","description":"Requests a quote according to the specified swap parameters. This endpoint may be used to get a quote for a swap, a bridge, or a wrap/unwrap. The resulting response includes a quote for the swap and the proposed route by which the quote was achieved. The response will also include estimated gas fees for the proposed quote route. If the proposed route is via a Lux Protocol pool, the response may include a permit2 message for the swapper to sign prior to making a /swap request. The proposed route will also be simulated. If the simulation fails, the response will include an error message or `txFailureReason`.\n\nCertain routing options may be whitelisted by the requestor through the use of the `protocols` field. Further, the requestor may ask for the best price route or for the fastest price route through the 'routingPreference' field. Note that the fastest price route refers to the speed with which a quote is returned, not the number of transactions that may be required to get from the input token and chain to the output token and chain. Further note that all `routingPreference` values except for `FASTEST` and `BEST_PRICE` are deprecated. For more information on the `protocols` and `routingPreference` fields, see the [Token Trading Workflow](https://lux-docs.readme.io/reference/trading-flow#swap-routing) explanation of Swap Routing.\n\nAPI integrators using this API for the benefit of customer end users may request a service fee be taken from the output token and deposited to a fee collection address. To request this, please reach out to your Lux Industries contact. This optional fee is associated to the API key and is always taken from the output token. Note if there is a fee and the `type` is `EXACT_INPUT`, the output amount quoted will **not** include the fee subtraction. If there is a fee and the `type` is `EXACT_OUTPUT`, the input amount quoted will **not** include the fee addition. Instead, in both cases, the fee will be recorded in the `portionBips` and `portionAmount` fields.\n\nNative ETH on DEX: DEX routes (e.g. `DUTCH_V2`, `DUTCH_V3`, `PRIORITY`) can use native ETH as the input token by setting `tokenIn` to the native currency address (e.g. `0x0000000000000000000000000000000000000000`) and passing `x-erc20eth-enabled: true`. Native ETH input on DEX requires wallet support for EIP-7914, a smart wallet activated on your desired network, and a sufficient native allowance (set via /swap_7702 if x-erc20eth-enabled header is set to `true`). If these requirements are not met, DEX quotes for native input may be omitted and the response may fall back to `CLASSIC` routing instead.","operationId":"aggregator_quote","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"},{"$ref":"#/components/parameters/erc20EthEnabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/QuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/order":{"post":{"tags":["Order"],"summary":"Create a gasless order","description":"The order endpoint is used to submit a DEX intent. If the `routing` field in the response to a quote is any of `DUTCH_V2`, `DUTCH_V3`, `LIMIT_ORDER`, or `PRIORITY` this endpoint is used to submit your order to the DEX protocol to be filled by the filler network. These orders are gasless because the filler will pay the gas to complete the transaction.\n\nThe order will be validated and, if valid, will be submitted to the filler network. The network will try to fill the order at the quoted `startAmount`. If the order is not filled at the `startAmount` by the `deadline`, the amount will start decaying until the `endAmount` is reached. The order will remain `open` until it is either filled, canceled, or has expired by remaining unfilled beyond the `decayEndTime`.\n\nFor simplicity, the order request is identical to the quote response except for the addition of the signed permit.\n\nNative ETH on DEX: If the quote you are submitting uses native ETH as the input token (e.g. `tokenIn` is `0x0000000000000000000000000000000000000000`), include `x-erc20eth-enabled: true`. Native ETH input on DEX requires wallet support for EIP-7914 and sufficient native allowance. For 7702-delegated smart contract wallets, you can generate the required approval call(s) via `/swap_7702` when needed.","operationId":"post_order","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/erc20EthEnabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRequest"}}}},"responses":{"201":{"$ref":"#/components/responses/OrderSuccess201"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/orders":{"get":{"tags":["Order"],"summary":"Get gasless orders","description":"Retrieve one or more gasless orders filtered, optionally filered by query param(s). The request must at minimum include one of the following parameters: `orderId`, `orderIds`, `orderStatus`, `swapper`, or `filler`.","operationId":"get_order","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/orderTypeParam"},{"$ref":"#/components/parameters/orderIdParam"},{"$ref":"#/components/parameters/orderIdsParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/orderStatusParam"},{"$ref":"#/components/parameters/swapperParam"},{"$ref":"#/components/parameters/sortKeyParam"},{"$ref":"#/components/parameters/sortParam"},{"$ref":"#/components/parameters/fillerParam"},{"$ref":"#/components/parameters/cursorParam"}],"responses":{"200":{"$ref":"#/components/responses/OrdersSuccess200"},"400":{"$ref":"#/components/responses/OrdersBadRequest400"},"404":{"$ref":"#/components/responses/OrdersNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap":{"post":{"tags":["Swap"],"summary":"Create swap calldata","description":"Create the calldata for a swap transaction (including wrap/unwrap) against the Lux Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the the response calldata would be valid if submitted on-chain.","operationId":"create_swap_transaction","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwapRequest"}}}},"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"}],"responses":{"200":{"$ref":"#/components/responses/CreateSwapSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swaps":{"get":{"tags":["Swap"],"summary":"Get swaps status","description":"Get the status of a swap or bridge transactions.","operationId":"get_swaps","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/transactionHashesParam"},{"$ref":"#/components/parameters/chainIdParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSwapsSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/indicative_quote":{"post":{"deprecated":true,"tags":["IndicativeQuote"],"summary":"Get an indicative quote","description":"Deprecated. Instead, use the /quote endpoint and specify the `routingPreference` parameter. with value of `FASTEST`. See the Token Trading Workflow page for more details.\n\nThis endpoint receives a fast indicative quote according to the provided details. The quote will not include any gas or fee information.","operationId":"indicative_quote","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicativeQuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/IndicativeQuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/send":{"post":{"tags":["Send"],"summary":"Create send calldata","description":"This endpoint will generate a calldata for a send transaction based on the inputs. The calldata may be signed by the `sender` to cause the specified `amount` of the `token` to be transfered from the `sender` to the `recipient`. The successful response always includes estimated gas for the transaction.","operationId":"create_send","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSendRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreateSendSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/SendNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swappable_tokens":{"get":{"tags":["SwappableTokens"],"summary":"Get bridgable tokens","description":"Returns the list of destination bridge chains for a given token on a given chain.","operationId":"get_swappable_tokens","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/tokenInParam"},{"$ref":"#/components/parameters/bridgeTokenInChainIdParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSwappableTokensSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/limit_order_quote":{"post":{"tags":["LimitOrderQuote"],"summary":"Get a limit order quote","description":"Get a quote for a limit order according to the provided configuration.","operationId":"get_limit_order_quote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitOrderQuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/LimitOrderQuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/approve":{"post":{"tags":["Liquidity"],"summary":"Check if tokens and permits need to be approved to add liquidity","description":"Checks if the wallet address has the required approvals. If the wallet address does not have the required approval, then the response will include the transactions to approve the tokens. If the wallet address has the required approval, then the response will be empty for the corresponding tokens. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the approval transactions.\n\nNote that approval is required for both creating and removing positions in V2 pools. Approval is only required for creating positions in V3 and V4 pools.","operationId":"check_approval_lp","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckApprovalLPRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CheckApprovalLPSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/ApprovalNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/create":{"post":{"tags":["Liquidity"],"summary":"Create pool and position calldata","description":"This request allows the caller to create a position in a pool or, if the pool does not yet exist, to create a new pool. If a new pool must be created, a transaction is returned for the pool creation. In either case, a transaction is returned to create the new position in the pool. If the parameter `simulateTransaction` is set to true, then the response will include the gas fee for the creation transaction(s).\n\nDifferent fields are required depending on the pool version (V2, V3, or V4) into which a new position will be created, in addition to the fields which are always required. When creating a position in a V2 pool, the `position` object must contain token0 and token1 addresses. When creating a position in a V3 pool, the `position` object must contain all fields except for `hooks` which are not supported in V3 pools. When creating a position in a V4 pool, all fields within the `position` object are required except for `hooks` which is optional. Note that both V3 and V4 pools require the population of `tickLower` and `tickUpper` fields. Furthermore, `poolLiquidity`, `currentTick`, and `sqrtRatioX96` are always required when creating a position in a V3 or V4 pool. All pool versions require the population of `amount0` and `amount1`, which specify the quantity of tokens being entered into the pool.\n\nWhen creating a pool, additional fields are required depending on the pool version being created, in addition to the fields which are always required. When creating a V3 or V4 pool, either `initialPrice` or `poolLiquidity`, `currentTick`, and `sqrtRatioX96` are required. When creating a V2 pool, only `initialPrice` is required. V3 and V4 pools require `amount0` and `amount1` fields to be populated, as the creation of the pool must include seeding of liquidity. V2 pools may optionally have `amount0` and `amount1` populated; V2 pools do not require liquidity to be seeded when creating the pool.","operationId":"create_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreateLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/increase":{"post":{"tags":["Liquidity"],"summary":"Increase LP position calldata","description":"The response will also have the transaction to increase the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the increase transaction.","operationId":"increase_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncreaseLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/IncreaseLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/decrease":{"post":{"tags":["Liquidity"],"summary":"Decrease LP position calldata","description":"The response will also have the transaction to decrease the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the decrease transaction.","operationId":"decrease_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecreaseLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/DecreaseLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/claim":{"post":{"tags":["Liquidity"],"summary":"Claim LP fees calldata","description":"The response will also have the transaction to claim the fees for an LP position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the claim transaction.","operationId":"claim_lp_fees","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPFeesRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ClaimLPFeesSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/migrate":{"post":{"tags":["Liquidity"],"summary":"Migrate LP position calldata","description":"The response will also have the transaction to migrate the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the migrate transaction.","operationId":"migrate_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrateLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/MigrateLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/claim_rewards":{"post":{"tags":["Liquidity"],"summary":"Claim LP rewards calldata","description":"The response will have the transaction to claim the rewards. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the claim transaction.","operationId":"claim_lp_rewards","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPRewardsRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ClaimLPRewardsSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/RewardsNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/pool_info":{"post":{"tags":["Liquidity"],"summary":"Fetch Pool Information","description":"Given either a pair address/pool address/pool Id return all the details pertaining to the pool.","operationId":"pool_info","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoolInfoRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/PoolInfoResponse200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/PoolInfoNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/wallet/encode_7702":{"post":{"tags":["WalletEncode7702"],"summary":"Encode wallet transactions","description":"Encodes a list of transactions into a single transaction for smart contract wallet execution. All transactions must have the same chainId.","operationId":"wallet_encode_7702","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletEncode7702RequestBody"}}}},"responses":{"200":{"$ref":"#/components/responses/WalletEncode7702Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/wallet/check_delegation":{"post":{"tags":["WalletCheckDelegation"],"summary":"Get wallet delegation info","description":"Gets the current delegation status and message for a smart contract wallet across different chains. Returns delegation information for each chain ID in the request.","operationId":"wallet_check_delegation","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCheckDelegationRequestBody"}}}},"responses":{"200":{"$ref":"#/components/responses/WalletCheckDelegationSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap_5792":{"post":{"tags":["Swap"],"summary":"Create swap EIP 5792 calldata","description":"Create the EIP 5792 calldata for a swap transaction (including wrap/unwrap and bridging) against the Lux Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the response calldata would be valid if submitted on-chain.","operationId":"create_swap_5792_transaction","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap5792Request"}}}},"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"}],"responses":{"200":{"$ref":"#/components/responses/CreateSwap5792Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap_7702":{"post":{"tags":["Swap"],"summary":"Create swap EIP 7702 calldata","description":"Create the EIP 7702 calldata for a swap transaction (including wrap/unwrap and bridging) against the Lux Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the the response calldata would be valid if submitted on-chain.\n\nNative ETH / DEX setup: When `x-erc20eth-enabled` is `true` and the input token is native ETH, the response may include an additional native approval call (e.g. an `approveNative` step) to enable ERC20-ETH (EIP-7914) spending for the wallet. This native allowance is a prerequisite for native ETH input on DEX (`/quote` → `/order`) for supported wallets.","operationId":"create_swap_7702_transaction","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap7702Request"}}}},"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"},{"$ref":"#/components/parameters/erc20EthEnabledHeader"}],"responses":{"200":{"$ref":"#/components/responses/CreateSwap7702Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/plan":{"post":{"tags":["Plan"],"summary":"Create an execution plan","description":"Creates a multi-step execution plan for chained transactions. The plan breaks down complex multi-chain or multi-transaction flows into sequential steps that can be executed by the client. Each step includes the method (transaction, message signature, or batch calls), payload, and current status. The response includes the current step index to track progress through the plan.","operationId":"create_plan","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlanRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreatePlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/plan/{planId}":{"get":{"tags":["Plan"],"summary":"Get an execution plan","description":"Retrieves an existing execution plan by its ID. Returns the full plan with current status and all steps. If forceRefresh is set to true, the plan will be refreshed to check for any updates to step statuses. Note: Completed plans cannot be refreshed.","operationId":"get_plan","security":[{"apiKey":[]}],"parameters":[{"name":"planId","in":"path","required":true,"description":"The unique identifier of the plan to retrieve.","schema":{"type":"string","format":"uuid"}},{"name":"forceRefresh","in":"query","required":false,"description":"Whether to force refresh the plan status. Defaults to false. Completed plans cannot be refreshed.","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/GetPlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"422":{"$ref":"#/components/responses/UnprocessableEntity422"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}},"patch":{"summary":"Update an existing plan with step proofs","description":"Updates an existing execution plan by submitting proof of completed plan steps (transaction hashes or signatures). The endpoint retrieves the existing plan, attaches proofs to specified steps, verifies the proofs, and potentially regenerates remaining steps if needed. Returns the full updated plan with current status. Note: Order IDs are not accepted in requests; they are system-generated after receiving a signature.","operationId":"update_plan","security":[{"apiKey":[]}],"parameters":[{"name":"planId","in":"path","required":true,"description":"The unique identifier of the plan to update.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlanRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/UpdatePlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"422":{"$ref":"#/components/responses/UnprocessableEntity422"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}}},"components":{"responses":{"OrdersSuccess200":{"description":"The request orders matching the query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOrdersResponse"}}}},"OrderSuccess201":{"description":"Encoded order submitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}},"QuoteSuccess200":{"description":"Quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponse"}}}},"LimitOrderQuoteSuccess200":{"description":"Limit Order Quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitOrderQuoteResponse"}}}},"CheckApprovalLPSuccess200":{"description":"Approve LP successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckApprovalLPResponse"}}}},"ApprovalSuccess200":{"description":"Check approval successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"CreateSendSuccess200":{"description":"Create send successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSendResponse"}}}},"CreateSwapSuccess200":{"description":"Create swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwapResponse"}}}},"GetSwapsSuccess200":{"description":"Get swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSwapsResponse"}}}},"GetSwappableTokensSuccess200":{"description":"Get swappable tokens successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSwappableTokensResponse"}}}},"CreateLPPositionSuccess200":{"description":"Create LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLPPositionResponse"}}}},"IncreaseLPPositionSuccess200":{"description":"Create LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncreaseLPPositionResponse"}}}},"DecreaseLPPositionSuccess200":{"description":"Decrease LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecreaseLPPositionResponse"}}}},"ClaimLPFeesSuccess200":{"description":"Claim LP Fees successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPFeesResponse"}}}},"MigrateLPPositionSuccess200":{"description":"Migrate LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrateLPPositionResponse"}}}},"CreateSwap5792Success200":{"description":"Create 5792 swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap5792Response"}}}},"CreateSwap7702Success200":{"description":"Create 7702 swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap7702Response"}}}},"ClaimLPRewardsSuccess200":{"description":"Claim LP Rewards successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPRewardsResponse"}}}},"PoolInfoResponse200":{"description":"Pool information response successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoolInfoResponse"}}}},"BadRequest400":{"description":"RequestValidationError, Bad Input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"ApprovalUnauthorized401":{"description":"UnauthorizedError eg. Account is blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"ApprovalNotFound404":{"description":"ResourceNotFound eg. Token allowance not found or Gas info not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"Unauthorized401":{"description":"UnauthorizedError eg. Account is blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"QuoteNotFound404":{"description":"ResourceNotFound eg. No quotes available or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"SendNotFound404":{"description":"ResourceNotFound eg. Gas fee not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"RewardsNotFound404":{"description":"ResourceNotFound eg. No rewards found for wallet on given chain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"PoolInfoNotFound404":{"description":"ResourceNotFound eg. No pool information on given chain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"SwapBadRequest400":{"description":"RequestValidationError, Bad Input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"SwapUnauthorized401":{"description":"UnauthorizedError eg. Account is blocked or Fee is not enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"SwapNotFound404":{"description":"ResourceNotFound eg. No quotes available or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"OrdersNotFound404":{"description":"Orders not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"LPNotFound404":{"description":"ResourceNotFound eg. Cant Find LP Position.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"LPRewardsNotFound404":{"description":"ResourceNotFound eg. No rewards available for wallet or on given chai or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"OrdersBadRequest400":{"description":"RequestValidationError eg. Token allowance not valid or Insufficient Funds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"RateLimitedErr429":{"description":"Ratelimited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err429"}}}},"InternalErr500":{"description":"Unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err500"}}}},"Timeout504":{"description":"Request duration limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err504"}}}},"IndicativeQuoteSuccess200":{"description":"Indicative quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicativeQuoteResponse"}}}},"WalletEncode7702Success200":{"description":"Encode 7702 wallet transactions successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Encode7702ResponseBody"}}}},"WalletCheckDelegationSuccess200":{"description":"Wallet delegation info request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCheckDelegationResponseBody"}}}},"CreatePlanSuccess200":{"description":"Create plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"GetPlanSuccess200":{"description":"Get plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"UpdatePlanSuccess200":{"description":"Update plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"UnprocessableEntity422":{"description":"UnprocessableEntity eg. Plan is already completed and cannot be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err422"}}}}},"schemas":{"senderWalletAddress":{"type":"string","description":"The wallet address which will be used to send the token.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"receiverWalletAddress":{"type":"string","description":"The wallet address which will receive the token.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"claimerWalletAddress":{"type":"string","description":"The wallet address which will be used to claim.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"contractAddress":{"type":"string","description":"The address of a contract which will be used to facilitate the swap.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"cosignerAddress":{"type":"string","description":"The address of a cosigner who will run the auction and ensure the best executable price within the given parameters. Currently the cosigner is always Lux Industries.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"inputToken":{"type":"string","description":"The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://api-docs.lux.exchange/guides/faqs).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"outputToken":{"type":"string","description":"The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://api-docs.lux.exchange/guides/faqs).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tokenAmount":{"type":"string","description":"The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.","pattern":"^[0-9]+$"},"tokenSymbol":{"type":"string","example":"ETH","description":"The symbol of the token."},"generatePermitAsTransaction":{"type":"boolean","default":false,"description":"Indicates whether you want to receive a permit2 transaction to sign and submit onchain, or a permit message to sign. When set to `true`, the quote response returns the Permit2 as a calldata which the user signs and broadcasts. When set to `false` (the default), the quote response returns the Permit2 as a message which the user signs but does not need to broadcast. When using a 7702-delegated wallet, set this field to `true`. Except for this scenario, it is recommended that this field is set to false. Note that a Permit2 calldata (e.g. `true`), will provide indefinite permission for Permit2 to spend a token, in contrast to a Permit2 message (e.g. `false`) which is only valid for 30 days. Further, a Permit2 calldata (e.g. `true`) requires the user to pay gas to submit the transaction, whereas the Permit2 message (e.g. `false` ) does not require the user to submit a transaction and requires no gas."},"slippageTolerance":{"description":"The slippage tolerance as a percentage up to a maximum of two decimal places. For Lux Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap.\n\nWhen submitting a quote, note that slippage tolerance works differently in DEX swaps where it does not set a limit on the Spread in an order. See [here](https://api-docs.lux.exchange/guides/faqs#why-do-luxx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information.\n\nNote that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token.\n\nWhen submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.","type":"number","pattern":"^[0-9]{0,3}\\.?[0-9]{0,2}$"},"SwapStatus":{"type":"string","enum":["PENDING","SUCCESS","NOT_FOUND","FAILED","EXPIRED"]},"GetSwapsResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swaps":{"type":"array","items":{"type":"object","properties":{"swapType":{"$ref":"#/components/schemas/Routing"},"status":{"$ref":"#/components/schemas/SwapStatus"},"txHash":{"$ref":"#/components/schemas/TransactionHash"},"swapId":{"type":"string"}}}}},"required":["requestId","status"]},"GetSwappableTokensResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"tokens":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"name":{"type":"string","description":"The name of the token."},"symbol":{"$ref":"#/components/schemas/tokenSymbol"},"project":{"$ref":"#/components/schemas/TokenProject"},"isSpam":{"$ref":"#/components/schemas/isSpam"},"decimals":{"type":"number","description":"The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation."}},"required":["address","chainId","name","symbol","project","decimals"]}}},"required":["requestId","tokens"]},"CreateSwapRequest":{"type":"object","description":"The parameters **signature** and **permitData** should only be included if *permitData* was returned from **/quote**.","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"signature":{"type":"string","description":"The signed permit."},"includeGasInfo":{"type":"boolean","default":false,"deprecated":true,"description":"Use `refreshGasPrice` instead."},"refreshGasPrice":{"type":"boolean","default":false,"description":"If true, the gas price will be re-fetched from the network."},"simulateTransaction":{"type":"boolean","default":false,"description":"If true, the transaction will be simulated. If the simulation results on an onchain error, endpoint will return an error."},"permitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"safetyMode":{"$ref":"#/components/schemas/SwapSafetyMode"},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["quote"]},"CreateSendRequest":{"type":"object","properties":{"sender":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["sender","recipient","token","amount","chainId"]},"CreateSwap5792Request":{"type":"object","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["quote"]},"CreateSwap7702Request":{"type":"object","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"smartContractDelegationAddress":{"$ref":"#/components/schemas/Address"},"includeGasInfo":{"type":"boolean","default":false},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"},"simulateTransaction":{"type":"boolean"}},"required":["quote"]},"UniversalRouterVersion":{"type":"string","enum":["1.2","2.0"],"default":"2.0"},"Address":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"Position":{"type":"object","properties":{"pool":{"$ref":"#/components/schemas/Pool"},"tickLower":{"type":"number"},"tickUpper":{"type":"number"}},"required":["pool"]},"Pool":{"type":"object","properties":{"token0":{"$ref":"#/components/schemas/Address"},"token1":{"$ref":"#/components/schemas/Address"},"fee":{"$ref":"#/components/schemas/lpPoolFee"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hooks":{"$ref":"#/components/schemas/Address"}},"required":["token0","token1"]},"ClassicGasUseEstimateUSD":{"description":"The gas fee you would pay if you opted for a CLASSIC swap over a Lux X order in terms of USD.","type":"string"},"CreateSwapResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swap":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","swap"]},"CreateSwap5792Response":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"from":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"calls":{"type":"array","items":{"$ref":"#/components/schemas/TransactionRequest5792"}},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","from","chainId","calls"]},"CreateSwap7702Response":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swap":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","swap"]},"CreateSendResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"send":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"}},"required":["requestId","send"]},"QuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"quote":{"$ref":"#/components/schemas/Quote"},"routing":{"$ref":"#/components/schemas/Routing"},"permitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"permitGasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["routing","quote","permitData","requestId"]},"LimitOrderQuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"quote":{"$ref":"#/components/schemas/DutchQuote"},"routing":{"type":"string","enum":["LIMIT_ORDER"]},"permitData":{"$ref":"#/components/schemas/NullablePermit"}},"required":["routing","quote","permitData","requestId"]},"QuoteRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TradeType"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"generatePermitAsTransaction":{"$ref":"#/components/schemas/generatePermitAsTransaction"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"},"routingPreference":{"$ref":"#/components/schemas/RoutingPreference"},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"spreadOptimization":{"$ref":"#/components/schemas/SpreadOptimization"},"urgency":{"$ref":"#/components/schemas/Urgency"},"permitAmount":{"$ref":"#/components/schemas/PermitAmount"}},"required":["type","amount","tokenInChainId","tokenOutChainId","tokenIn","tokenOut","swapper"]},"LimitOrderQuoteRequest":{"type":"object","properties":{"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"limitPrice":{"type":"string"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"orderDeadline":{"type":"number"},"type":{"$ref":"#/components/schemas/TradeType"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"}},"required":["swapper","type","amount","tokenIn","tokenOut","tokenInChainId","tokenOutChainId"]},"GetOrdersResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"orders":{"type":"array","items":{"$ref":"#/components/schemas/DEXOrder"}},"cursor":{"type":"string"}},"required":["orders","requestId"]},"OrderResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"}},"required":["requestId","orderId","orderStatus"]},"OrderRequest":{"type":"object","properties":{"signature":{"type":"string","description":"The signed permit."},"quote":{"oneOf":[{"$ref":"#/components/schemas/DutchQuoteV2"},{"$ref":"#/components/schemas/DutchQuoteV3"},{"$ref":"#/components/schemas/PriorityQuote"}]},"routing":{"$ref":"#/components/schemas/Routing"}},"required":["signature","quote"]},"Urgency":{"type":"string","enum":["normal","fast","urgent"],"description":"The urgency impacts the estimated gas price of the transaction. The higher the urgency, the higher the gas price, and the faster the transaction is likely to be selected from the mempool. The default value is `urgent`.","default":"urgent"},"Protocols":{"type":"array","items":{"$ref":"#/components/schemas/ProtocolItems"},"description":"The protocols to use for the swap/order. If the `protocols` field is defined, then you can only set the `routingPreference` to `BEST_PRICE`. Note that the value `LUXX` is deprecated and will be removed in a future release."},"HooksOptions":{"type":"string","enum":["V4_HOOKS_INCLUSIVE","V4_HOOKS_ONLY","V4_NO_HOOKS"],"description":"The hook options to use for V4 pool quotes. `V4_HOOKS_INCLUSIVE` will get quotes for V4 pools with or without hooks. `V4_HOOKS_ONLY` will only get quotes for V4 pools with hooks. `V4_NO_HOOKS` will only get quotes for V4 pools without hooks. Defaults to `V4_HOOKS_INCLUSIVE` if `V4` is included in `protocols` and `hookOptions` is not set. This field is ignored if `V4` is not passed in `protocols`."},"Err400":{"type":"object","properties":{"errorCode":{"default":"RequestValidationError","type":"string"},"detail":{"type":"string"}}},"Err401":{"type":"object","properties":{"errorCode":{"default":"UnauthorizedError","type":"string"},"detail":{"type":"string"}}},"Err404":{"type":"object","properties":{"errorCode":{"enum":["ResourceNotFound","QuoteAmountTooLowError","TokenBalanceNotAvailable","InsufficientBalance"],"type":"string"},"detail":{"type":"string"}}},"Err422":{"type":"object","properties":{"errorCode":{"default":"UnprocessableEntity","type":"string"},"detail":{"type":"string"}}},"Err429":{"type":"object","properties":{"errorCode":{"default":"Ratelimited","type":"string"},"detail":{"type":"string"}}},"Err500":{"type":"object","properties":{"errorCode":{"default":"InternalServerError","type":"string"},"detail":{"type":"string"}}},"Err504":{"type":"object","properties":{"errorCode":{"default":"Timeout","type":"string"},"detail":{"type":"string"}}},"ChainId":{"description":"The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://api-docs.lux.exchange/guides/faqs).","type":"number","enum":[1,10,56,130,137,196,324,480,1868,8453,10143,42161,42220,43114,81457,7777777,1301,84532,11155111,143],"default":1},"Distributor":{"description":"The distributor of the rewards.","type":"string","enum":["MERKL"]},"includeGasInfo":{"type":"boolean","description":"If set to `true`, the response will include the estimated gas fee for the proposed transaction.","default":false},"gasLimit":{"type":"string","description":"The maximum units of gas that will be consumed by this transaction."},"maxFeePerGas":{"type":"string","description":"The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction."},"maxPriorityFeePerGas":{"type":"string","description":"The maximum tip to the block builder. Adjusted based upon the urgency specified in the request."},"gasPrice":{"type":"string","description":"The cost per unit of gas."},"gasFee":{"type":"string","description":"The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain."},"gasFeeUSD":{"type":"string","description":"The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) denominated in USDC."},"gasFeeInCurrency":{"type":"string","description":"The total estimated gas cost of this transaction (eg. gasLimit multiplied by maxFeePerGas) in the quoted currency (e.g. output token) in the base units of the quoted currency."},"OrderInput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/inputToken"},"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"}},"required":["token"]},"OrderOutput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"isFeeOutput":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}},"required":["token"]},"CosignerData":{"type":"object","properties":{"decayStartTime":{"type":"number","description":"The unix timestamp at which the order will be eligible to be filled by alternate fillers at a lower price. Noted that the fill amount will not be lower than the output `endAmount`."},"decayEndTime":{"type":"number","description":"The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers."},"exclusiveFiller":{"type":"string","description":"The address of the filler who has priority to fill the order by the `decayStartTime`."},"inputOverride":{"type":"string"},"outputOverrides":{"type":"array","items":{"type":"string"}}}},"SettledAmount":{"type":"object","properties":{"tokenOut":{"$ref":"#/components/schemas/outputToken"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"}}},"OrderType":{"type":"string","enum":["DutchLimit","Dutch","Dutch_V2","Dutch_V3","Priority"]},"OrderTypeQuery":{"type":"string","enum":["Dutch","Dutch_V2","Dutch_V1_V2","Dutch_V3","Limit","Priority"]},"DEXOrder":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OrderType"},"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"signature":{"type":"string"},"nonce":{"$ref":"#/components/schemas/nonce"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"},"orderId":{"$ref":"#/components/schemas/orderId"},"chainId":{"$ref":"#/components/schemas/ChainId"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"txHash":{"$ref":"#/components/schemas/TransactionHash"},"input":{"$ref":"#/components/schemas/OrderInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/OrderOutput"}},"settledAmounts":{"type":"array","items":{"$ref":"#/components/schemas/SettledAmount"}},"cosignature":{"type":"string"},"cosignerData":{"$ref":"#/components/schemas/CosignerData"}},"required":["encodedOrder","signature","nonce","orderId","orderStatus","chainId","type"]},"SortKey":{"type":"string","enum":["createdAt"]},"OrderIds":{"type":"string"},"OrderStatus":{"description":"The status of the order. Note that all of these are final states with the exception of Open, meaning that no further state changes will occur. \n Open - order is not yet filled by a filler.\n Expired - order has expired without being filled and is no longer fillable.\n Error - a catchall for other final states which are not otherwise specified, where the order will not be filled.\n Cancelled - order is cancelled. Note that to cancel an order, a new order must be placed with the same nonce as the prior open order and it must be placed within the same block as the original order.\n Filled - order is filled.\n Insufficient-funds - the swapper (you) do not have enough funds for the order to be completed and the order is cancelled and will not be filled.\n Unverified - order has not been verified yet.","type":"string","enum":["open","expired","error","cancelled","filled","unverified","insufficient-funds"]},"Permit":{"description":"the permit2 message object for the customer to sign to permit spending by the permit2 contract.","type":"object","properties":{"domain":{"type":"object"},"values":{"type":"object"},"types":{"type":"object"}}},"NullablePermit":{"description":"the permit2 message object for the customer to sign to permit spending by the permit2 contract.","type":"object","nullable":true,"properties":{"domain":{"type":"object"},"values":{"type":"object"},"types":{"type":"object"}}},"TokenProject":{"type":"object","properties":{"logo":{"$ref":"#/components/schemas/TokenProjectLogo","nullable":true},"safetyLevel":{"$ref":"#/components/schemas/SafetyLevel"},"isSpam":{"$ref":"#/components/schemas/isSpam"}},"required":["logo","safetyLevel","isSpam"]},"TokenProjectLogo":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"DutchInput":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"token":{"$ref":"#/components/schemas/inputToken"}},"required":["startAmount","endAmount","type"]},"DutchOutput":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"token":{"$ref":"#/components/schemas/outputToken"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}},"required":["startAmount","endAmount","token","recipient"]},"Curve":{"type":"object","properties":{"relativeBlocks":{"type":"array","items":{"type":"number"}},"relativeAmounts":{"type":"array","items":{"type":"string"}}},"required":["type"]},"DutchInputV3":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"maxAmount":{"type":"string"},"adjustmentPerGweiBaseFee":{"type":"string"},"curve":{"$ref":"#/components/schemas/Curve"},"token":{"$ref":"#/components/schemas/inputToken"}},"required":["startAmount","maxAmount","adjustmentPerGweiBaseFee","curve","token"]},"DutchOutputV3":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"minAmount":{"$ref":"#/components/schemas/minAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"adjustmentPerGweiBaseFee":{"type":"string"},"curve":{"$ref":"#/components/schemas/Curve"},"token":{"$ref":"#/components/schemas/outputToken"}},"required":["startAmount","maxAmount","adjustmentPerGweiBaseFee","curve","token","recipient"]},"DutchOrderInfo":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"decayStartTime":{"type":"number","description":"The unix timestamp at which the order will be eligible to be filled by alternate fillers at a lower price. Noted that the fill amount will not be lower than the output `endAmount`."},"decayEndTime":{"type":"number","description":"The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers."},"exclusiveFiller":{"type":"string","description":"The address of the filler who has priority to fill the order by the `decayStartTime`."},"exclusivityOverrideBps":{"type":"string","description":"The portion of the order which is eligible to be filled by the `exclusiveFiller`, specified in basis points."},"input":{"$ref":"#/components/schemas/DutchInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutput"}}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchOrderInfoV2":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"input":{"$ref":"#/components/schemas/DutchInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutput"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchOrderInfoV3":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"input":{"$ref":"#/components/schemas/DutchInputV3"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutputV3"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"},"startingBaseFee":{"type":"string"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchQuote":{"type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfo"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"DutchQuoteV2":{"title":"DEX V2 Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfoV2"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"DutchQuoteV3":{"title":"DEX V3 Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfoV3"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"expectedAmountIn":{"type":"string"},"expectedAmountOut":{"type":"string"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"PriorityInput":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"token":{"$ref":"#/components/schemas/inputToken"},"mpsPerPriorityFeeWei":{"type":"string"}},"required":["amount","token","mpsPerPriorityFeeWei"]},"PriorityOutput":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"token":{"$ref":"#/components/schemas/outputToken"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"mpsPerPriorityFeeWei":{"type":"string","description":"The scaling factor of the priority fee based on the output token amount."}},"required":["amount","token","recipient","mpsPerPriorityFeeWei"]},"PriorityOrderInfo":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"auctionStartBlock":{"type":"string"},"baselinePriorityFeeWei":{"type":"string"},"input":{"$ref":"#/components/schemas/PriorityInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/PriorityOutput"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","auctionStartBlock","baselinePriorityFeeWei","input","outputs","cosigner"]},"PriorityQuote":{"title":"DEX Priority Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/PriorityOrderInfo"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"expectedAmountIn":{"$ref":"#/components/schemas/tokenAmount"},"expectedAmountOut":{"$ref":"#/components/schemas/tokenAmount"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"BridgeQuote":{"title":"Bridge Quote","type":"object","properties":{"quoteId":{"$ref":"#/components/schemas/quoteId"},"chainId":{"$ref":"#/components/schemas/ChainId"},"destinationChainId":{"$ref":"#/components/schemas/ChainId"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"quoteTimestamp":{"type":"number"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"estimatedFillTimeMs":{"type":"number","description":"The estimated time it will take to fill the order in milliseconds."},"exclusiveRelayer":{"type":"string","description":"The address of the exclusive filler (the relayer).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"exclusivityDeadline":{"type":"number","description":"The deadline (unix timestamp) by which the exclusive relayer must fill the order before other relayers can fill it."},"fillDeadline":{"type":"number","description":"The deadline by which, if the order is not filled, the order will be reverted."}}},"SafetyLevel":{"type":"string","enum":["BLOCKED","MEDIUM_WARNING","STRONG_WARNING","VERIFIED"]},"TradeType":{"type":"string","enum":["EXACT_INPUT","EXACT_OUTPUT"],"description":"The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.","default":"EXACT_INPUT"},"IndependentToken":{"type":"string","enum":["TOKEN_0","TOKEN_1"]},"Routing":{"type":"string","enum":["DUTCH_LIMIT","CLASSIC","DUTCH_V2","DUTCH_V3","BRIDGE","LIMIT_ORDER","PRIORITY","WRAP","UNWRAP","CHAINED"],"description":"The routing for the proposed transaction."},"PlanStepType":{"type":"string","enum":["CLASSIC","DUTCH_LIMIT","DUTCH_V2","LIMIT_ORDER","WRAP","UNWRAP","BRIDGE","PRIORITY","DUTCH_V3","QUICKROUTE","CHAINED","APPROVAL_TXN","APPROVAL_PERMIT","RESET_APPROVAL_TXN"],"description":"The type of step in a plan, including swap types and approval types."},"AggregatedOutput":{"description":"An array of all outputs of the proposed transaction. This includes the swap as well as any fees collected by the API integrator. This does not include pool fees when routing is through a Lux Protocol pool.","type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"bps":{"$ref":"#/components/schemas/bps"},"minAmount":{"$ref":"#/components/schemas/minAmount"}}},"Quote":{"oneOf":[{"$ref":"#/components/schemas/DutchQuote"},{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/DutchQuoteV2"},{"$ref":"#/components/schemas/DutchQuoteV3"},{"$ref":"#/components/schemas/BridgeQuote"},{"$ref":"#/components/schemas/PriorityQuote"},{"$ref":"#/components/schemas/ChainedQuote"}]},"CheckApprovalLPRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"token0":{"$ref":"#/components/schemas/inputToken"},"token1":{"$ref":"#/components/schemas/inputToken"},"positionToken":{"description":"The address of the NFT representing the position. Required when requesting approval for removing liquidity from a V2 position (provide address of V2 NFT). Required when requesting approval for migrating a V3 position to a V4 position (provide address of V3 NFT).","type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"chainId":{"$ref":"#/components/schemas/ChainId"},"walletAddress":{"$ref":"#/components/schemas/Address"},"amount0":{"description":"The amount of token0 to be added or removed from the position. To estimate the amount of token0 needed when adding a new position, use the /lp/create endpoint to simulate the position creation.","type":"string","pattern":"^[0-9]+$"},"amount1":{"description":"The amount of token1 to be added or removed from the position. To estimate the amount of token1 needed when adding a new position, use the /lp/create endpoint to simulate the position creation.","type":"string","pattern":"^[0-9]+$"},"generatePermitAsTransaction":{"$ref":"#/components/schemas/generatePermitAsTransaction"},"positionAmount":{"description":"Only required when getting approval for removing a V2 position. Populated with the amount of the V2 position to be removed (eg. amount0*amount1).","type":"string","pattern":"^[0-9]+$"},"simulateTransaction":{"type":"boolean"}}},"CheckApprovalLPResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"token0Approval":{"$ref":"#/components/schemas/TransactionRequest"},"token1Approval":{"$ref":"#/components/schemas/TransactionRequest"},"token0Cancel":{"$ref":"#/components/schemas/TransactionRequest"},"token1Cancel":{"$ref":"#/components/schemas/TransactionRequest"},"positionTokenApproval":{"$ref":"#/components/schemas/TransactionRequest"},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"token0PermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"token1PermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"positionTokenPermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"gasFeeToken0Approval":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Approval":{"$ref":"#/components/schemas/gasFee"},"gasFeePositionTokenApproval":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken0Cancel":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Cancel":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken0Permit":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Permit":{"$ref":"#/components/schemas/gasFee"},"gasFeePositionTokenPermit":{"$ref":"#/components/schemas/gasFee"}}},"ApprovalRequest":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/senderWalletAddress"},"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"urgency":{"$ref":"#/components/schemas/Urgency"},"includeGasInfo":{"$ref":"#/components/schemas/includeGasInfo"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"}},"required":["walletAddress","token","amount","chainId"]},"ApprovalResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"approval":{"$ref":"#/components/schemas/TransactionRequest"},"cancel":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"cancelGasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","approval","cancel"]},"ClassicQuote":{"title":"Classic Quote","type":"object","properties":{"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"chainId":{"$ref":"#/components/schemas/ChainId"},"slippage":{"$ref":"#/components/schemas/slippageTolerance"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"route":{"type":"array","items":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/V2PoolInRoute"},{"$ref":"#/components/schemas/V3PoolInRoute"},{"$ref":"#/components/schemas/V4PoolInRoute"}]}}},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"routeString":{"type":"string","description":"The route in string format."},"quoteId":{"$ref":"#/components/schemas/quoteId"},"gasUseEstimate":{"type":"string","description":"The estimated gas use. It does NOT include the additional gas for token approvals."},"blockNumber":{"type":"string","description":"The current block number."},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"txFailureReasons":{"description":"The reason(s) why the transaction failed during simulation.","type":"array","items":{"$ref":"#/components/schemas/TransactionFailureReason"}},"priceImpact":{"type":"number","description":"The impact the trade has on the market price of the pool, between 0-100 percent"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}}},"WrapUnwrapQuote":{"title":"Wrap/Unwrap Quote","type":"object","properties":{"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"chainId":{"$ref":"#/components/schemas/ChainId"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"}}},"TokenInRoute":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/inputToken"},"chainId":{"$ref":"#/components/schemas/ChainId"},"symbol":{"$ref":"#/components/schemas/tokenSymbol"},"decimals":{"type":"string","description":"The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation."},"buyFeeBps":{"$ref":"#/components/schemas/bpsFee"},"sellFeeBps":{"$ref":"#/components/schemas/bpsFee"}}},"V2Reserve":{"description":"The remaining reserve of this token in the pool.","type":"object","properties":{"token":{"$ref":"#/components/schemas/TokenInRoute"},"quotient":{"description":"The quantity of this token remaining in the pool, specified in the base units of the token.","type":"string"}}},"V2PoolInRoute":{"title":"V2 Route","type":"object","properties":{"type":{"type":"string","default":"v2-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"reserve0":{"$ref":"#/components/schemas/V2Reserve"},"reserve1":{"$ref":"#/components/schemas/V2Reserve"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}}},"V3PoolInRoute":{"title":"V3 Route","type":"object","properties":{"type":{"type":"string","default":"v3-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"liquidity":{"$ref":"#/components/schemas/liquidity"},"tickCurrent":{"$ref":"#/components/schemas/tickCurrent"},"fee":{"$ref":"#/components/schemas/poolFee"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}}},"V4PoolInRoute":{"title":"V4 Route","type":"object","properties":{"type":{"type":"string","default":"v4-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"liquidity":{"$ref":"#/components/schemas/liquidity"},"tickCurrent":{"$ref":"#/components/schemas/tickCurrent"},"fee":{"$ref":"#/components/schemas/poolFee"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hooks":{"type":"string","description":"The address of the hook for the pool, if any. If the pool has no hook, this field will be the null address (e.g. 0x0000000000000000000000000000000000000000)."},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}},"required":["type","address","tokenIn","tokenOut","sqrtRatioX96","liquidity","tickCurrent","fee","tickSpacing","hooks"]},"TransactionHash":{"type":"string","description":"The unique hash of the transaction.","pattern":"^(0x)?[0-9a-fA-F]{64}$"},"ClassicInput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"}}},"ClassicOutput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}}},"RequestId":{"type":"string","description":"A unique ID for the request."},"PermitAmount":{"type":"string","enum":["FULL","EXACT"],"description":"For Lux Protocols (v2, v3, v4) swaps, specify the input token spend allowance (e.g. quantity) to be set in the permit. `FULL` can be used to specify an unlimited token quantity, and may prevent the wallet from needing to sign another permit for the same token in the future. `EXACT` can be used to specify the exact input token quantity for this request. Defaults to `FULL`.","default":"FULL"},"SpreadOptimization":{"type":"string","enum":["EXECUTION","PRICE"],"description":"For DEX swaps, when set to `EXECUTION`, quotes optimize for looser spreads at higher fill rates. When set to `PRICE`, quotes optimize for tighter spreads at lower fill rates. This field is not applicable to Lux Protocols (v2, v3, v4), bridging, or wrapping/unwrapping and will be ignored if set.","default":"EXECUTION"},"AutoSlippage":{"type":"string","enum":["DEFAULT"],"description":"The auto slippage strategy to employ. For Lux Protocols (v2, v3, v4) the auto slippage will be automatically calculated when this field is set to `DEFAULT`. Auto slippage cannot be calculated for DEX swaps.\n\nNote that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token.\n\nWhen submitting a request, `autoSlippage` may not be set when `slippageTolerance` is defined. One of `slippageTolerance` or `autoSlippage` must be defined."},"RoutingPreference":{"type":"string","description":"The `routingPreference` specifies the preferred strategy to determine the quote. If the `routingPreference` is `BEST_PRICE`, then the quote will propose a route through the specified whitelisted protocols (or all, if none are specified) that provides the best price. When the `routingPreference` is `FASTEST`, the quote will propose the first route which is found to complete the swap.","enum":["BEST_PRICE","FASTEST","ROUTING_CLASSIC","ROUTING_LUXX_V2","V3_ONLY","V2_ONLY","BEST_PRICE_V2"],"default":"BEST_PRICE"},"ProtocolItems":{"type":"string","enum":["V2","V3","V4","LUXX","LUXX_V2","LUXX_V3"],"description":"The protocol to use for the swap/order."},"encodedOrder":{"type":"string","description":"An encoded copy of the order details which will be submitted to the filler network along with the signed permit."},"orderId":{"type":"string","description":"A unique ID for the order. Used to track the order's status."},"quoteId":{"type":"string","description":"A unique ID for the quote."},"portionBips":{"type":"number","description":"The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token."},"portionAmount":{"type":"string","description":"The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token."},"portionAmountReceiverAddress":{"type":"string","description":"The wallet address which will receive the fee."},"poolFee":{"type":"string","description":"The fee of the pool in basis points."},"lpPoolFee":{"type":"number","description":"The fee of the pool in basis points."},"additionalValidationContract":{"type":"string","default":"0x0000000000000000000000000000000000000000","description":"Unused and deprecated.","deprecated":true},"additionalValidationData":{"type":"string","default":"0x","description":"Unused and deprecated.","deprecated":true},"deadline":{"type":"number","description":"The unix timestamp at which the order will be reverted if not filled."},"nonce":{"type":"string","description":"A unique nonce for this order."},"sqrtRatioX96":{"type":"string","description":"The square root of the ratio of the token0 and token1 in the pool, as a Q64.64 number. For more information see the [Lux V3 Whitepaper](https://app.lux.exchange/whitepaper-v3.pdf)."},"liquidity":{"type":"string","description":"The amount of liquidity in the pool at a given tick. For more information see the [Lux V3 Whitepaper](https://app.lux.exchange/whitepaper-v3.pdf)."},"tickCurrent":{"type":"string","description":"The current tick of the pool. For more information see the [Lux V3 Whitepaper](https://app.lux.exchange/whitepaper-v3.pdf)."},"lpTickCurrent":{"type":"number","description":"The current tick of the pool. For more information see the [Lux V3 Whitepaper](https://app.lux.exchange/whitepaper-v3.pdf)."},"tickSpacing":{"type":"number","description":"The width of ticks in this pool (e.g. the price range between two ticks) specified in basis points. For more information see the [Lux V3 Whitepaper](https://app.lux.exchange/whitepaper-v3.pdf)."},"isSpam":{"type":"boolean","description":"Whether the token is considered a spam token."},"startAmount":{"type":"string","description":"The intended execution quantity of tokens resulting from this swap."},"endAmount":{"type":"string","description":"The worst case quantity of tokens resulting from this swap."},"minAmount":{"type":"string","description":"The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient."},"bps":{"type":"number","description":"The portion of the swap stated in basis points."},"bpsFee":{"type":"string","description":"A fee charged by the token specified in basis points. Field is not present if the token does not charge a fee."},"TransactionRequest":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/receiverWalletAddress"},"from":{"$ref":"#/components/schemas/senderWalletAddress"},"data":{"type":"string","description":"The calldata for the transaction."},"value":{"type":"string","description":"The quantity of ETH tokens approved for spending by the transaction, denominated in wei. Note that by default Lux Industries sets this to the maximum approvable spend."},"gasLimit":{"$ref":"#/components/schemas/gasLimit"},"chainId":{"$ref":"#/components/schemas/ChainId"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"}},"required":["to","from","data","value","chainId"]},"TransactionRequest5792":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/receiverWalletAddress"},"data":{"type":"string","description":"The calldata for the transaction."},"value":{"type":"string","description":"The quantity of ETH tokens approved for spending by the transaction, denominated in wei. Note that by default Lux Industries sets this to the maximum approvable spend."},"gasLimit":{"$ref":"#/components/schemas/gasLimit"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"}},"required":["to","data","value","chainId"]},"TransactionFailureReason":{"type":"string","enum":["SIMULATION_ERROR","UNSUPPORTED_SIMULATION","SIMULATION_UNAVAILABLE","SLIPPAGE_TOO_LOW","TRANSFER_FROM_FAILED"]},"SwapSafetyMode":{"type":"string","enum":["SAFE"],"description":"Swap safety mode will automatically sweep the transaction for the native token and return it to the sender wallet address. This is to prevent accidental loss of funds in the event that the token amount is set in the transaction value instead of as part of the calldata."},"IndicativeQuoteRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TradeType"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"}},"required":["type","amount","tokenInChainId","tokenOutChainId","tokenIn","tokenOut"]},"IndicativeQuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"input":{"$ref":"#/components/schemas/IndicativeQuoteToken"},"output":{"$ref":"#/components/schemas/IndicativeQuoteToken"},"type":{"$ref":"#/components/schemas/TradeType"}},"required":["requestId","input","output","type"]},"CreateLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"initialPrice":{"type":"string"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"independentAmount":{"$ref":"#/components/schemas/tokenAmount"},"independentToken":{"$ref":"#/components/schemas/IndependentToken"},"initialDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"defaultDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"slippageTolerance":{"type":"number"},"deadline":{"$ref":"#/components/schemas/deadline"},"signature":{"type":"string","description":"The signed permit."},"batchPermitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"simulateTransaction":{"type":"boolean"}}},"CreateLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"create":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"dependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"IncreaseLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"independentAmount":{"$ref":"#/components/schemas/tokenAmount"},"independentToken":{"$ref":"#/components/schemas/IndependentToken"},"defaultDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"slippageTolerance":{"type":"number"},"deadline":{"$ref":"#/components/schemas/deadline"},"signature":{"type":"string","description":"The signed permit."},"batchPermitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"simulateTransaction":{"type":"boolean"}}},"IncreaseLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"increase":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"dependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"DecreaseLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"liquidityPercentageToDecrease":{"type":"number"},"liquidity0":{"type":"string"},"liquidity1":{"type":"string"},"slippageTolerance":{"type":"number"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"positionLiquidity":{"type":"string"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"collectAsWETH":{"type":"boolean"},"deadline":{"$ref":"#/components/schemas/deadline"},"simulateTransaction":{"type":"boolean"}}},"DecreaseLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"decrease":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"ClaimLPFeesRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"collectAsWETH":{"type":"boolean"},"simulateTransaction":{"type":"boolean"}}},"ClaimLPFeesResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"claim":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"ClaimLPRewardsRequest":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/claimerWalletAddress"},"chainId":{"$ref":"#/components/schemas/ChainId"},"tokens":{"type":"array","description":"The token addresses to claim rewards for.","items":{"$ref":"#/components/schemas/Address"}},"distributor":{"$ref":"#/components/schemas/Distributor"},"simulateTransaction":{"type":"boolean"}}},"ClaimLPRewardsResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"claim":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"MigrateLPPositionRequest":{"type":"object","properties":{"tokenId":{"type":"number"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"inputProtocol":{"$ref":"#/components/schemas/ProtocolItems"},"inputPosition":{"$ref":"#/components/schemas/Position"},"inputPoolLiquidity":{"$ref":"#/components/schemas/liquidity"},"inputCurrentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"inputSqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"inputPositionLiquidity":{"$ref":"#/components/schemas/liquidity"},"signature":{"type":"string"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"outputProtocol":{"$ref":"#/components/schemas/ProtocolItems"},"outputPosition":{"$ref":"#/components/schemas/Position"},"initialPrice":{"type":"string"},"outputPoolLiquidity":{"$ref":"#/components/schemas/liquidity"},"outputCurrentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"outputSqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadline":{"$ref":"#/components/schemas/deadline"},"signatureDeadline":{"type":"number"},"simulateTransaction":{"type":"boolean","default":false}},"required":["tokenId","chainId","walletAddress","inputProtocol","inputPosition","inputPoolLiquidity","inputCurrentTick","inputSqrtRatioX96","inputPositionLiquidity","amount0","amount1","outputProtocol","outputPosition","expectedTokenOwed0RawAmount","expectedTokenOwed1RawAmount"]},"MigrateLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"migrate":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"PoolInfoRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/Protocols"},"poolParams":{"$ref":"#/components/schemas/PoolParameters"},"poolReferences":{"type":"array","description":"Array of pool reference identifiers to query. Each reference should include the protocol, chainId, and either the pool address (V3), pool id (V4), or pair address (V2).","items":{"$ref":"#/components/schemas/PoolReferenceByProtocol"}},"chainId":{"$ref":"#/components/schemas/ChainId"},"pageSize":{"type":"number"},"currentPage":{"type":"number"}},"required":["protocol"]},"PoolInfoResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"pools":{"type":"array","description":"Array of pool information objects.","items":{"$ref":"#/components/schemas/PoolInformation"}},"pageSize":{"type":"number"},"currentPage":{"type":"number"}}},"PoolInformation":{"type":"object","properties":{"poolReferenceIdentifier":{"type":"string","description":"The unique identifier for the pool reference, which can be a pool address, pool id, or pair address depending on the protocol."},"poolProtocol":{"$ref":"#/components/schemas/Protocols"},"tokenAddressA":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tokenAddressB":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"fee":{"$ref":"#/components/schemas/poolFee"},"hookAddress":{"type":"string","description":"The address of the hook for the pool, if any."},"chainId":{"$ref":"#/components/schemas/ChainId"},"tokenAmountA":{"$ref":"#/components/schemas/tokenAmount"},"tokenAmountB":{"$ref":"#/components/schemas/tokenAmount"},"tokenDecimalsA":{"type":"number","description":"The number of decimals for token A."},"tokenDecimalsB":{"type":"number","description":"The number of decimals for token B."},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"tokenAReserves":{"$ref":"#/components/schemas/tokenAmount"},"tokenBReserves":{"$ref":"#/components/schemas/tokenAmount"}}},"PoolParameters":{"type":"object","properties":{"token0":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"token1":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"fee":{"type":"number","description":"The fee of the pool, if the pool has a fee value."},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hookAddress":{"type":"string","description":"The address of the hook for the pool, if any."}}},"PoolReferenceByProtocol":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/Protocols"},"chainId":{"$ref":"#/components/schemas/ChainId"},"referenceIdentifier":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]"}},"required":["protocol","poolAddress","chainId"]},"IndicativeQuoteToken":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"token":{"$ref":"#/components/schemas/Address"}}},"WalletEncode7702RequestBody":{"type":"object","properties":{"calls":{"type":"array","description":"Array of transaction requests to be encoded. All transactions must have the same chainId.","items":{"$ref":"#/components/schemas/TransactionRequest"}},"smartContractDelegationAddress":{"$ref":"#/components/schemas/Address","description":"The address of the smart contract delegation implementation to use."},"walletAddress":{"$ref":"#/components/schemas/Address","description":"The address of the wallet for which the transactions will be encoded."}},"required":["calls","smartContractDelegationAddress","walletAddress"]},"Encode7702ResponseBody":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"encoded":{"$ref":"#/components/schemas/TransactionRequest"}},"required":["requestId","encoded"]},"WalletCheckDelegationRequestBody":{"type":"object","properties":{"walletAddresses":{"type":"array","description":"Array of wallet addresses to check delegation status for.","items":{"$ref":"#/components/schemas/Address"}},"chainIds":{"type":"array","description":"Array of chain IDs to check delegation status for.","items":{"$ref":"#/components/schemas/ChainId"}}},"required":["walletAddress","chainIds"]},"DelegationDetails":{"type":"object","properties":{"isWalletDelegatedToLux":{"type":"boolean","description":"Whether the current delegation address is a Lux delegation address."},"currentDelegationAddress":{"type":"string","nullable":true,"description":"The current delegation address of the wallet. May be null if the wallet does not currently delegate to any address."},"latestDelegationAddress":{"type":"string","description":"The latest delegation address that the wallet could upgrade to."}},"required":["isWalletDelegatedToLux","currentDelegationAddress","latestDelegationAddress"]},"ChainDelegationMap":{"type":"object","description":"Map of chain IDs to delegation details for a specific wallet.","additionalProperties":{"$ref":"#/components/schemas/DelegationDetails"}},"WalletCheckDelegationResponseBody":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"delegationDetails":{"type":"object","description":"Map of wallet addresses to chain IDs to delegation details.","additionalProperties":{"$ref":"#/components/schemas/ChainDelegationMap"}}},"required":["requestId","delegationDetails"]},"CreatePlanRequest":{"type":"object","properties":{"routing":{"type":"string","enum":["CHAINED"],"description":"The routing type for the plan. Currently only CHAINED is supported for multi-step execution plans."},"quote":{"$ref":"#/components/schemas/ChainedQuote"},"walletExecutionContext":{"$ref":"#/components/schemas/WalletExecutionContext"}},"required":["routing","quote"]},"UpdatePlanRequest":{"type":"object","properties":{"steps":{"type":"array","description":"Array of steps with proofs to attach. Only steps being updated need to be included.","minItems":1,"items":{"$ref":"#/components/schemas/StepUpdate"}}},"required":["steps"]},"StepUpdate":{"type":"object","description":"Represents a single step update with proof. Note: orderId is not accepted in update requests; it is system-generated after receiving a signature.","properties":{"stepIndex":{"type":"number","description":"The index of the step being updated (0-based)."},"proof":{"type":"object","description":"Proof of step completion. Must provide either txHash or signature.","properties":{"txHash":{"$ref":"#/components/schemas/TransactionHash"},"signature":{"type":"string","description":"The signature for a message signing step.","pattern":"^0x[a-fA-F0-9]{130}$"}}}},"required":["stepIndex","proof"]},"PlanResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"planId":{"type":"string","description":"A unique identifier for this execution plan."},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"status":{"$ref":"#/components/schemas/PlanStatus"},"steps":{"type":"array","description":"The sequential steps that need to be executed to complete the plan.","items":{"$ref":"#/components/schemas/PlanStep"}},"currentStepIndex":{"type":"number","description":"The index of the current step that needs to be executed (0-based)."},"expectedOutput":{"$ref":"#/components/schemas/tokenAmount"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"timeEstimateMs":{"type":"number","description":"Estimated time in milliseconds to complete the entire plan."},"gasStrategies":{"type":"array","description":"Gas strategies used for the plan.","items":{"$ref":"#/components/schemas/GasStrategy"}},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the plan was created."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the plan was last updated."},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the plan completed."},"lastUserActionAt":{"type":"string","format":"date-time","description":"Timestamp of the last user action on this plan."},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"},"walletExecutionContext":{"$ref":"#/components/schemas/WalletExecutionContext"}},"required":["requestId","planId","swapper","recipient","quoteId","status","steps","currentStepIndex","expectedOutput"]},"PlanStep":{"type":"object","properties":{"stepIndex":{"type":"number","description":"The index of this step in the plan (0-based)."},"method":{"$ref":"#/components/schemas/PlanStepMethod"},"payloadType":{"$ref":"#/components/schemas/PlanStepPayloadType"},"payload":{"type":"object","description":"The payload data for this step. The structure depends on the payloadType."},"status":{"$ref":"#/components/schemas/PlanStepStatus"},"proof":{"$ref":"#/components/schemas/PlanStepProof"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenInAmount":{"$ref":"#/components/schemas/tokenAmount"},"tokenOutAmount":{"$ref":"#/components/schemas/tokenAmount"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"stepType":{"$ref":"#/components/schemas/PlanStepType"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"routingStepKey":{"type":"string","description":"An optional key identifying the routing strategy used for this step."},"slippage":{"$ref":"#/components/schemas/slippageTolerance"}},"required":["stepIndex","method","payloadType","payload","status"]},"PlanStepProof":{"type":"object","description":"Proof of execution for a plan step, provided after the step is completed.","properties":{"txHash":{"$ref":"#/components/schemas/TransactionHash"},"signature":{"type":"string","description":"The signature for a message signing step."},"orderId":{"type":"string","description":"The order ID for a gasless order step."}}},"PlanStatus":{"type":"string","enum":["ACTIVE","AWAITING_ACTION","IN_PROGRESS","COMPLETED","FAILED"],"description":"The overall status of the plan execution. ACTIVE means the plan is ready to begin (all steps NOT_READY). AWAITING_ACTION means at least one step requires user action. IN_PROGRESS means at least one step is executing. COMPLETED means all steps have been successfully executed. FAILED means the plan cannot be completed."},"PlanStepStatus":{"type":"string","enum":["NOT_READY","AWAITING_ACTION","IN_PROGRESS","COMPLETE","STEP_ERROR"],"description":"The status of an individual step. NOT_READY means prerequisites are not met. AWAITING_ACTION means the step is ready for user action. IN_PROGRESS means the step is being executed. COMPLETE means the step finished successfully. STEP_ERROR means the step failed."},"PlanStepMethod":{"type":"string","enum":["SEND_TX","SIGN_MSG","SEND_CALLS"],"description":"The execution method for the step. SEND_TX is a standard transaction. SIGN_MSG is for signing a message (e.g., permit). SEND_CALLS is for batch transaction execution (EIP-5792)."},"PlanStepPayloadType":{"type":"string","enum":["TX","EIP_712","EIP_5792"],"description":"The type of payload data. TX is a standard transaction object. EIP_712 is a typed structured data for signing. EIP_5792 is a batch of transaction calls."},"TruncatedPlanStep":{"type":"object","description":"A truncated representation of a plan step containing only routing information.","properties":{"stepType":{"$ref":"#/components/schemas/PlanStepType"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"slippage":{"$ref":"#/components/schemas/slippageTolerance"}},"required":["stepType"]},"ChainedQuote":{"title":"Chained Quote","type":"object","description":"A quote for a chained transaction flow that spans multiple steps, potentially across multiple chains.","properties":{"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"gasEstimates":{"type":"array","description":"Gas estimates for each step in the chained flow.","items":{"type":"object","description":"Gas estimation details for a specific step."}},"timeEstimateMs":{"type":"number","description":"Estimated time in milliseconds to complete the entire chained flow."},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"gasStrategies":{"type":"array","description":"Gas strategies for the chained flow.","items":{"$ref":"#/components/schemas/GasStrategy"}},"steps":{"type":"array","description":"Truncated plan steps for the chained transaction flow.","items":{"$ref":"#/components/schemas/TruncatedPlanStep"}},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"}},"required":["swapper","input","output","tokenInChainId","tokenOutChainId","tradeType","quoteId","gasStrategies"]},"WalletExecutionContext":{"type":"object","description":"Wallet execution context based on CAIP-25 Standard. Provides information about wallet capabilities and scopes.","properties":{"scopes":{"type":"object","description":"Map of scope identifiers to their scope data.","additionalProperties":{"$ref":"#/components/schemas/ScopeData"}},"properties":{"$ref":"#/components/schemas/WalletProperties"}},"required":["scopes"]},"ScopeData":{"type":"object","description":"Data defining a wallet scope including accounts, methods, capabilities, chains, and client context.","properties":{"accounts":{"type":"array","description":"Array of account addresses associated with this scope.","items":{"type":"string"}},"methods":{"type":"array","description":"Array of methods allowed in this scope.","items":{"type":"string"}},"capabilities":{"type":"object","description":"Additional capabilities for this scope.","additionalProperties":true},"chains":{"type":"array","description":"Array of chain identifiers allowed in this scope.","items":{"type":"string"}},"clientContext":{"$ref":"#/components/schemas/ClientContext"}},"required":["accounts","methods"]},"ClientContext":{"type":"object","description":"Uni client-specific context describing how this wallet integrates with the application.","properties":{"directPrivateKeyAccess":{"type":"boolean","description":"Whether the wallet has direct private key access."},"nextEvmUpgradeAddress":{"type":"string","description":"Address for the next EVM upgrade."}}},"WalletProperties":{"type":"object","description":"Properties describing the wallet.","properties":{"walletInfo":{"$ref":"#/components/schemas/WalletInfo"}}},"WalletInfo":{"type":"object","description":"Information about the wallet.","properties":{"uuid":{"type":"string","description":"Unique identifier for the wallet."},"name":{"type":"string","description":"Name of the wallet."},"rdns":{"type":"string","description":"Reverse domain name identifier for the wallet."}}},"GasStrategy":{"type":"object","description":"Gas strategy configuration for transaction fee estimation.","properties":{"limitInflationFactor":{"type":"number","description":"Factor to inflate the gas limit estimate."},"priceInflationFactor":{"type":"number","description":"Factor to inflate the gas price estimate."},"percentileThresholdFor1559Fee":{"type":"number","description":"Percentile threshold for EIP-1559 fee calculation."},"thresholdToInflateLastBlockBaseFee":{"type":"number","description":"Threshold to inflate the last block base fee."},"baseFeeMultiplier":{"type":"number","description":"Multiplier for the base fee."},"baseFeeHistoryWindow":{"type":"number","description":"Number of blocks to consider for base fee history."},"minPriorityFeeRatioOfBaseFee":{"type":"number","description":"Minimum priority fee as a ratio of base fee."},"minPriorityFeeGwei":{"type":"number","description":"Minimum priority fee in Gwei."},"maxPriorityFeeGwei":{"type":"number","description":"Maximum priority fee in Gwei."}},"required":["limitInflationFactor","priceInflationFactor","percentileThresholdFor1559Fee"]}},"parameters":{"universalRouterVersionHeader":{"name":"x-universal-router-version","in":"header","description":"The version of the Universal Router to use for the swap journey. *MUST* be consistent throughout the API calls.","required":false,"schema":{"$ref":"#/components/schemas/UniversalRouterVersion"}},"erc20EthEnabledHeader":{"name":"x-erc20eth-enabled","in":"header","description":"Enable native ETH input support for DEX via ERC20-ETH (EIP-7914). When set to true and `tokenIn` is the native currency address (e.g. `0x0000000000000000000000000000000000000000`), the API may return DEX routes that spend native ETH for supported wallets.","required":false,"schema":{"type":"boolean","default":false}},"cursorParam":{"name":"cursor","in":"query","schema":{"type":"string"},"required":false},"limitParam":{"name":"limit","in":"query","schema":{"type":"number"},"required":false},"chainIdParam":{"name":"chainId","in":"query","schema":{"$ref":"#/components/schemas/ChainId"},"required":false},"bridgeTokenInChainIdParam":{"name":"tokenInChainId","in":"query","schema":{"$ref":"#/components/schemas/ChainId"},"required":false},"tokenInParam":{"name":"tokenIn","in":"query","schema":{"$ref":"#/components/schemas/Address"},"required":false},"orderStatusParam":{"name":"orderStatus","in":"query","description":"Filter by order status.","required":false,"schema":{"$ref":"#/components/schemas/OrderStatus"}},"orderTypeParam":{"name":"orderType","in":"query","description":"The default orderType is Dutch_V1_V2 and will grab both Dutch and Dutch_V2 orders.","required":false,"schema":{"$ref":"#/components/schemas/OrderTypeQuery"}},"orderIdParam":{"name":"orderId","in":"query","required":false,"schema":{"$ref":"#/components/schemas/orderId"}},"orderIdsParam":{"name":"orderIds","in":"query","required":false,"description":"A list of comma separated orderIds.","schema":{"$ref":"#/components/schemas/OrderIds"}},"swapperParam":{"name":"swapper","in":"query","description":"Filter by swapper address.","required":false,"schema":{"$ref":"#/components/schemas/Address"}},"fillerParam":{"name":"filler","in":"query","description":"Filter by filler address.","required":false,"schema":{"$ref":"#/components/schemas/Address"}},"sortKeyParam":{"name":"sortKey","in":"query","description":"Order the query results by the sort key.","required":false,"schema":{"$ref":"#/components/schemas/SortKey"}},"sortParam":{"name":"sort","in":"query","description":"Sort query. For example: `sort=gt(UNIX_TIMESTAMP)`, `sort=between(1675872827, 1675872930)`, or `lt(1675872930)`.","required":false,"schema":{"type":"string"}},"transactionHashesParam":{"description":"The transaction hashes.","name":"txHashes","in":"query","required":true,"style":"form","explode":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransactionHash"}}}},"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}}},"security":[{"apiKey":[]}]}
|
|
1
|
+
{"openapi":"3.0.0","servers":[{"description":"Uniswap trading APIs","url":"https://trade-api.gateway.uniswap.org/v1"}],"info":{"version":"1.0.0","title":"Token Trading","description":"Uniswap Labs trading APIs."},"paths":{"/check_approval":{"post":{"tags":["Approval"],"summary":"Check if token approval is required","description":"Allows the requestor to check if the `walletAddress` has the required approval to transact the `token` up to the `amount` specified. If the `walletAddress` does not have the required approval, the response will include a transaction to approve the token spend. If the `walletAddress` has the required approval, the response will return the approval with a `null` value. If the parameter `includeGasInfo` is set to `true` and an approval is needed, then the response will include both the transaction and the gas fee for the approval transaction.\n\nCertain tokens may require that approval be reset before approving a new spend amount. If this condition is detected for the `walletAddress` and `token`, the response will include the necessary approval cancellation in the `cancel` paragraph. When `cancel` is not applicable, the paragraph will have a `null` value.","operationId":"check_approval","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/permit2DisabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ApprovalSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/ApprovalNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/quote":{"post":{"tags":["Quote"],"summary":"Get a quote","description":"Requests a quote according to the specified swap parameters. This endpoint may be used to get a quote for a swap, a bridge, or a wrap/unwrap. The resulting response includes a quote for the swap and the proposed route by which the quote was achieved. The response will also include estimated gas fees for the proposed quote route. If the proposed route is via a Uniswap Protocol pool, the response may include a permit2 message for the swapper to sign prior to making a /swap request. The proposed route will also be simulated. If the simulation fails, the response will include an error message or `txFailureReason`.\n\nCertain routing options may be whitelisted by the requestor through the use of the `protocols` field. Further, the requestor may ask for the best price route or for the fastest price route through the 'routingPreference' field. Note that the fastest price route refers to the speed with which a quote is returned, not the number of transactions that may be required to get from the input token and chain to the output token and chain. Further note that all `routingPreference` values except for `FASTEST` and `BEST_PRICE` are deprecated. For more information on the `protocols` and `routingPreference` fields, see the [Token Trading Workflow](https://uniswap-docs.readme.io/reference/trading-flow#swap-routing) explanation of Swap Routing.\n\nAPI integrators using this API for the benefit of customer end users may request a service fee be taken from the output token and deposited to a fee collection address. To request this, please reach out to your Uniswap Labs contact. This optional fee is associated to the API key and is always taken from the output token. Note if there is a fee and the `type` is `EXACT_INPUT`, the output amount quoted will **not** include the fee subtraction. If there is a fee and the `type` is `EXACT_OUTPUT`, the input amount quoted will **not** include the fee addition. Instead, in both cases, the fee will be recorded in the `portionBips` and `portionAmount` fields.\n\nNative ETH on UniswapX: UniswapX routes (e.g. `DUTCH_V2`, `DUTCH_V3`, `PRIORITY`) can use native ETH as the input token by setting `tokenIn` to the native currency address (e.g. `0x0000000000000000000000000000000000000000`) and passing `x-erc20eth-enabled: true`. Native ETH input on UniswapX requires wallet support for EIP-7914, a smart wallet activated on your desired network, and a sufficient native allowance (set via /swap_7702 if x-erc20eth-enabled header is set to `true`). If these requirements are not met, UniswapX quotes for native input may be omitted and the response may fall back to `CLASSIC` routing instead.","operationId":"aggregator_quote","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"},{"$ref":"#/components/parameters/erc20EthEnabledHeader"},{"$ref":"#/components/parameters/permit2DisabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/QuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/order":{"post":{"tags":["Order"],"summary":"Create a gasless order","description":"The order endpoint is used to submit a UniswapX intent. If the `routing` field in the response to a quote is any of `DUTCH_V2`, `DUTCH_V3`, `LIMIT_ORDER`, or `PRIORITY` this endpoint is used to submit your order to the UniswapX protocol to be filled by the filler network. These orders are gasless because the filler will pay the gas to complete the transaction.\n\nThe order will be validated and, if valid, will be submitted to the filler network. The network will try to fill the order at the quoted `startAmount`. If the order is not filled at the `startAmount` by the `deadline`, the amount will start decaying until the `endAmount` is reached. The order will remain `open` until it is either filled, canceled, or has expired by remaining unfilled beyond the `decayEndTime`.\n\nFor simplicity, the order request is identical to the quote response except for the addition of the signed permit.\n\nNative ETH on UniswapX: If the quote you are submitting uses native ETH as the input token (e.g. `tokenIn` is `0x0000000000000000000000000000000000000000`), include `x-erc20eth-enabled: true`. Native ETH input on UniswapX requires wallet support for EIP-7914 and sufficient native allowance. For 7702-delegated smart contract wallets, you can generate the required approval call(s) via `/swap_7702` when needed.","operationId":"post_order","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/erc20EthEnabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRequest"}}}},"responses":{"201":{"$ref":"#/components/responses/OrderSuccess201"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/orders":{"get":{"tags":["Order"],"summary":"Get gasless orders","description":"Retrieve one or more gasless orders filtered, optionally filered by query param(s). The request must at minimum include one of the following parameters: `orderId`, `orderIds`, `orderStatus`, `swapper`, or `filler`.","operationId":"get_order","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/orderTypeParam"},{"$ref":"#/components/parameters/orderIdParam"},{"$ref":"#/components/parameters/orderIdsParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/orderStatusParam"},{"$ref":"#/components/parameters/swapperParam"},{"$ref":"#/components/parameters/sortKeyParam"},{"$ref":"#/components/parameters/sortParam"},{"$ref":"#/components/parameters/fillerParam"},{"$ref":"#/components/parameters/cursorParam"}],"responses":{"200":{"$ref":"#/components/responses/OrdersSuccess200"},"400":{"$ref":"#/components/responses/OrdersBadRequest400"},"404":{"$ref":"#/components/responses/OrdersNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap":{"post":{"tags":["Swap"],"summary":"Create swap calldata","description":"Create the calldata for a swap transaction (including wrap/unwrap) against the Uniswap Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the the response calldata would be valid if submitted on-chain.","operationId":"create_swap_transaction","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"},{"$ref":"#/components/parameters/permit2DisabledHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwapRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreateSwapSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swaps":{"get":{"tags":["Swap"],"summary":"Get swaps status","description":"Get the status of a swap or bridge transactions.","operationId":"get_swaps","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/transactionHashesParam"},{"$ref":"#/components/parameters/chainIdParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSwapsSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/indicative_quote":{"post":{"deprecated":true,"tags":["IndicativeQuote"],"summary":"Get an indicative quote","description":"Deprecated. Instead, use the /quote endpoint and specify the `routingPreference` parameter. with value of `FASTEST`. See the Token Trading Workflow page for more details.\n\nThis endpoint receives a fast indicative quote according to the provided details. The quote will not include any gas or fee information.","operationId":"indicative_quote","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicativeQuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/IndicativeQuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/send":{"post":{"tags":["Send"],"summary":"Create send calldata","description":"This endpoint will generate a calldata for a send transaction based on the inputs. The calldata may be signed by the `sender` to cause the specified `amount` of the `token` to be transfered from the `sender` to the `recipient`. The successful response always includes estimated gas for the transaction.","operationId":"create_send","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSendRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreateSendSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/SendNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swappable_tokens":{"get":{"tags":["SwappableTokens"],"summary":"Get bridgable tokens","description":"Returns the list of destination bridge chains for a given token on a given chain.","operationId":"get_swappable_tokens","security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/tokenInParam"},{"$ref":"#/components/parameters/bridgeTokenInChainIdParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSwappableTokensSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/limit_order_quote":{"post":{"tags":["LimitOrderQuote"],"summary":"Get a limit order quote","description":"Get a quote for a limit order according to the provided configuration.","operationId":"get_limit_order_quote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitOrderQuoteRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/LimitOrderQuoteSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/approve":{"post":{"tags":["Liquidity"],"summary":"Check if tokens and permits need to be approved to add liquidity","description":"Checks if the wallet address has the required approvals. If the wallet address does not have the required approval, then the response will include the transactions to approve the tokens. If the wallet address has the required approval, then the response will be empty for the corresponding tokens. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the approval transactions.\n\nNote that approval is required for both creating and removing positions in V2 pools. Approval is only required for creating positions in V3 and V4 pools.","operationId":"check_approval_lp","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckApprovalLPRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CheckApprovalLPSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/ApprovalNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/create":{"post":{"tags":["Liquidity"],"summary":"Create pool and position calldata","description":"This request allows the caller to create a position in a pool or, if the pool does not yet exist, to create a new pool. If a new pool must be created, a transaction is returned for the pool creation. In either case, a transaction is returned to create the new position in the pool. If the parameter `simulateTransaction` is set to true, then the response will include the gas fee for the creation transaction(s).\n\nDifferent fields are required depending on the pool version (V2, V3, or V4) into which a new position will be created, in addition to the fields which are always required. When creating a position in a V2 pool, the `position` object must contain token0 and token1 addresses. When creating a position in a V3 pool, the `position` object must contain all fields except for `hooks` which are not supported in V3 pools. When creating a position in a V4 pool, all fields within the `position` object are required except for `hooks` which is optional. Note that both V3 and V4 pools require the population of `tickLower` and `tickUpper` fields. Furthermore, `poolLiquidity`, `currentTick`, and `sqrtRatioX96` are always required when creating a position in a V3 or V4 pool. All pool versions require the population of `amount0` and `amount1`, which specify the quantity of tokens being entered into the pool.\n\nWhen creating a pool, additional fields are required depending on the pool version being created, in addition to the fields which are always required. When creating a V3 or V4 pool, either `initialPrice` or `poolLiquidity`, `currentTick`, and `sqrtRatioX96` are required. When creating a V2 pool, only `initialPrice` is required. V3 and V4 pools require `amount0` and `amount1` fields to be populated, as the creation of the pool must include seeding of liquidity. V2 pools may optionally have `amount0` and `amount1` populated; V2 pools do not require liquidity to be seeded when creating the pool.","operationId":"create_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreateLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/increase":{"post":{"tags":["Liquidity"],"summary":"Increase LP position calldata","description":"The response will also have the transaction to increase the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the increase transaction.","operationId":"increase_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncreaseLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/IncreaseLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/decrease":{"post":{"tags":["Liquidity"],"summary":"Decrease LP position calldata","description":"The response will also have the transaction to decrease the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the decrease transaction.","operationId":"decrease_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecreaseLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/DecreaseLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/claim":{"post":{"tags":["Liquidity"],"summary":"Claim LP fees calldata","description":"The response will also have the transaction to claim the fees for an LP position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the claim transaction.","operationId":"claim_lp_fees","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPFeesRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ClaimLPFeesSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/migrate":{"post":{"tags":["Liquidity"],"summary":"Migrate LP position calldata","description":"The response will also have the transaction to migrate the position for the corresponding pool. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the migrate transaction.","operationId":"migrate_lp_position","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrateLPPositionRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/MigrateLPPositionSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/LPNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/claim_rewards":{"post":{"tags":["Liquidity"],"summary":"Claim LP rewards calldata","description":"The response will have the transaction to claim the rewards. If the parameter `simulateTransaction` is set to `true`, then the response will include the gas fees for the claim transaction.","operationId":"claim_lp_rewards","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPRewardsRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/ClaimLPRewardsSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/RewardsNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/lp/pool_info":{"post":{"tags":["Liquidity"],"summary":"Fetch Pool Information","description":"Given either a pair address/pool address/pool Id return all the details pertaining to the pool.","operationId":"pool_info","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoolInfoRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/PoolInfoResponse200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/ApprovalUnauthorized401"},"404":{"$ref":"#/components/responses/PoolInfoNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/wallet/encode_7702":{"post":{"tags":["WalletEncode7702"],"summary":"Encode wallet transactions","description":"Encodes a list of transactions into a single transaction for smart contract wallet execution. All transactions must have the same chainId.","operationId":"wallet_encode_7702","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletEncode7702RequestBody"}}}},"responses":{"200":{"$ref":"#/components/responses/WalletEncode7702Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/wallet/check_delegation":{"post":{"tags":["WalletCheckDelegation"],"summary":"Get wallet delegation info","description":"Gets the current delegation status and message for a smart contract wallet across different chains. Returns delegation information for each chain ID in the request.","operationId":"wallet_check_delegation","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCheckDelegationRequestBody"}}}},"responses":{"200":{"$ref":"#/components/responses/WalletCheckDelegationSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap_5792":{"post":{"tags":["Swap"],"summary":"Create swap EIP 5792 calldata","description":"Create the EIP 5792 calldata for a swap transaction (including wrap/unwrap and bridging) against the Uniswap Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the response calldata would be valid if submitted on-chain.","operationId":"create_swap_5792_transaction","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap5792Request"}}}},"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"}],"responses":{"200":{"$ref":"#/components/responses/CreateSwap5792Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/swap_7702":{"post":{"tags":["Swap"],"summary":"Create swap EIP 7702 calldata","description":"Create the EIP 7702 calldata for a swap transaction (including wrap/unwrap and bridging) against the Uniswap Protocols. If the `quote` parameter includes the fee parameters, then the calldata will include the fee disbursement. The gas estimates will be **more precise** when the the response calldata would be valid if submitted on-chain.\n\nNative ETH / UniswapX setup: When `x-erc20eth-enabled` is `true` and the input token is native ETH, the response may include an additional native approval call (e.g. an `approveNative` step) to enable ERC20-ETH (EIP-7914) spending for the wallet. This native allowance is a prerequisite for native ETH input on UniswapX (`/quote` → `/order`) for supported wallets.","operationId":"create_swap_7702_transaction","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap7702Request"}}}},"parameters":[{"$ref":"#/components/parameters/universalRouterVersionHeader"},{"$ref":"#/components/parameters/erc20EthEnabledHeader"}],"responses":{"200":{"$ref":"#/components/responses/CreateSwap7702Success200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/SwapUnauthorized401"},"404":{"$ref":"#/components/responses/SwapNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/plan":{"post":{"tags":["Plan"],"summary":"Create an execution plan","description":"Creates a multi-step execution plan for chained transactions. The plan breaks down complex multi-chain or multi-transaction flows into sequential steps that can be executed by the client. Each step includes the method (transaction, message signature, or batch calls), payload, and current status. The response includes the current step index to track progress through the plan.","operationId":"create_plan","security":[{"apiKey":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlanRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreatePlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}},"/plan/{planId}":{"get":{"tags":["Plan"],"summary":"Get an execution plan","description":"Retrieves an existing execution plan by its ID. Returns the full plan with current status and all steps. If forceRefresh is set to true, the plan will be refreshed to check for any updates to step statuses. Note: Completed plans cannot be refreshed.","operationId":"get_plan","security":[{"apiKey":[]}],"parameters":[{"name":"planId","in":"path","required":true,"description":"The unique identifier of the plan to retrieve.","schema":{"type":"string","format":"uuid"}},{"name":"forceRefresh","in":"query","required":false,"description":"Whether to force refresh the plan status. Defaults to false. Completed plans cannot be refreshed.","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/GetPlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"422":{"$ref":"#/components/responses/UnprocessableEntity422"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}},"patch":{"summary":"Update an existing plan with step proofs","description":"Updates an existing execution plan by submitting proof of completed plan steps (transaction hashes or signatures). The endpoint retrieves the existing plan, attaches proofs to specified steps, verifies the proofs, and potentially regenerates remaining steps if needed. Returns the full updated plan with current status. Note: Order IDs are not accepted in requests; they are system-generated after receiving a signature.","operationId":"update_plan","security":[{"apiKey":[]}],"parameters":[{"name":"planId","in":"path","required":true,"description":"The unique identifier of the plan to update.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlanRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/UpdatePlanSuccess200"},"400":{"$ref":"#/components/responses/BadRequest400"},"401":{"$ref":"#/components/responses/Unauthorized401"},"404":{"$ref":"#/components/responses/QuoteNotFound404"},"422":{"$ref":"#/components/responses/UnprocessableEntity422"},"429":{"$ref":"#/components/responses/RateLimitedErr429"},"500":{"$ref":"#/components/responses/InternalErr500"},"504":{"$ref":"#/components/responses/Timeout504"}}}}},"components":{"responses":{"OrdersSuccess200":{"description":"The request orders matching the query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOrdersResponse"}}}},"OrderSuccess201":{"description":"Encoded order submitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}},"QuoteSuccess200":{"description":"Quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponse"}}}},"LimitOrderQuoteSuccess200":{"description":"Limit Order Quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitOrderQuoteResponse"}}}},"CheckApprovalLPSuccess200":{"description":"Approve LP successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckApprovalLPResponse"}}}},"ApprovalSuccess200":{"description":"Check approval successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"CreateSendSuccess200":{"description":"Create send successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSendResponse"}}}},"CreateSwapSuccess200":{"description":"Create swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwapResponse"}}}},"GetSwapsSuccess200":{"description":"Get swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSwapsResponse"}}}},"GetSwappableTokensSuccess200":{"description":"Get swappable tokens successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSwappableTokensResponse"}}}},"CreateLPPositionSuccess200":{"description":"Create LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLPPositionResponse"}}}},"IncreaseLPPositionSuccess200":{"description":"Create LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncreaseLPPositionResponse"}}}},"DecreaseLPPositionSuccess200":{"description":"Decrease LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecreaseLPPositionResponse"}}}},"ClaimLPFeesSuccess200":{"description":"Claim LP Fees successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPFeesResponse"}}}},"MigrateLPPositionSuccess200":{"description":"Migrate LP Position successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrateLPPositionResponse"}}}},"CreateSwap5792Success200":{"description":"Create 5792 swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap5792Response"}}}},"CreateSwap7702Success200":{"description":"Create 7702 swap successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwap7702Response"}}}},"ClaimLPRewardsSuccess200":{"description":"Claim LP Rewards successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLPRewardsResponse"}}}},"PoolInfoResponse200":{"description":"Pool information response successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoolInfoResponse"}}}},"BadRequest400":{"description":"RequestValidationError, Bad Input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"ApprovalUnauthorized401":{"description":"UnauthorizedError eg. Account is blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"ApprovalNotFound404":{"description":"ResourceNotFound eg. Token allowance not found or Gas info not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"Unauthorized401":{"description":"UnauthorizedError eg. Account is blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"QuoteNotFound404":{"description":"ResourceNotFound eg. No quotes available or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"SendNotFound404":{"description":"ResourceNotFound eg. Gas fee not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"RewardsNotFound404":{"description":"ResourceNotFound eg. No rewards found for wallet on given chain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"PoolInfoNotFound404":{"description":"ResourceNotFound eg. No pool information on given chain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"SwapBadRequest400":{"description":"RequestValidationError, Bad Input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"SwapUnauthorized401":{"description":"UnauthorizedError eg. Account is blocked or Fee is not enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err401"}}}},"SwapNotFound404":{"description":"ResourceNotFound eg. No quotes available or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"OrdersNotFound404":{"description":"Orders not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"LPNotFound404":{"description":"ResourceNotFound eg. Cant Find LP Position.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"LPRewardsNotFound404":{"description":"ResourceNotFound eg. No rewards available for wallet or on given chai or Gas fee/price not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err404"}}}},"OrdersBadRequest400":{"description":"RequestValidationError eg. Token allowance not valid or Insufficient Funds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err400"}}}},"RateLimitedErr429":{"description":"Ratelimited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err429"}}}},"InternalErr500":{"description":"Unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err500"}}}},"Timeout504":{"description":"Request duration limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err504"}}}},"IndicativeQuoteSuccess200":{"description":"Indicative quote request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicativeQuoteResponse"}}}},"WalletEncode7702Success200":{"description":"Encode 7702 wallet transactions successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Encode7702ResponseBody"}}}},"WalletCheckDelegationSuccess200":{"description":"Wallet delegation info request successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCheckDelegationResponseBody"}}}},"CreatePlanSuccess200":{"description":"Create plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"GetPlanSuccess200":{"description":"Get plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"UpdatePlanSuccess200":{"description":"Update plan successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanResponse"}}}},"UnprocessableEntity422":{"description":"UnprocessableEntity eg. Plan is already completed and cannot be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Err422"}}}}},"schemas":{"senderWalletAddress":{"type":"string","description":"The wallet address which will be used to send the token.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"receiverWalletAddress":{"type":"string","description":"The wallet address which will receive the token.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"claimerWalletAddress":{"type":"string","description":"The wallet address which will be used to claim.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"contractAddress":{"type":"string","description":"The address of a contract which will be used to facilitate the swap.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"cosignerAddress":{"type":"string","description":"The address of a cosigner who will run the auction and ensure the best executable price within the given parameters. Currently the cosigner is always Uniswap Labs.","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"inputToken":{"type":"string","description":"The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://api-docs.uniswap.org/guides/faqs).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"outputToken":{"type":"string","description":"The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://api-docs.uniswap.org/guides/faqs).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tokenAmount":{"type":"string","description":"The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.","pattern":"^[0-9]+$"},"tokenSymbol":{"type":"string","example":"ETH","description":"The symbol of the token."},"generatePermitAsTransaction":{"type":"boolean","default":false,"description":"Indicates whether you want to receive a permit2 transaction to sign and submit onchain, or a permit message to sign. When set to `true`, the quote response returns the Permit2 as a calldata which the user signs and broadcasts. When set to `false` (the default), the quote response returns the Permit2 as a message which the user signs but does not need to broadcast. When using a 7702-delegated wallet, set this field to `true`. Except for this scenario, it is recommended that this field is set to false. Note that a Permit2 calldata (e.g. `true`), will provide indefinite permission for Permit2 to spend a token, in contrast to a Permit2 message (e.g. `false`) which is only valid for 30 days. Further, a Permit2 calldata (e.g. `true`) requires the user to pay gas to submit the transaction, whereas the Permit2 message (e.g. `false` ) does not require the user to submit a transaction and requires no gas."},"slippageTolerance":{"description":"The slippage tolerance as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap.\n\nWhen submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://api-docs.uniswap.org/guides/faqs#why-do-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information.\n\nNote that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token.\n\nWhen submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.","type":"number","pattern":"^[0-9]{0,3}\\.?[0-9]{0,2}$"},"SwapStatus":{"type":"string","enum":["PENDING","SUCCESS","NOT_FOUND","FAILED","EXPIRED"]},"GetSwapsResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swaps":{"type":"array","items":{"type":"object","properties":{"swapType":{"$ref":"#/components/schemas/Routing"},"status":{"$ref":"#/components/schemas/SwapStatus"},"txHash":{"$ref":"#/components/schemas/TransactionHash"},"swapId":{"type":"string"}}}}},"required":["requestId","status"]},"GetSwappableTokensResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"tokens":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"name":{"type":"string","description":"The name of the token."},"symbol":{"$ref":"#/components/schemas/tokenSymbol"},"project":{"$ref":"#/components/schemas/TokenProject"},"isSpam":{"$ref":"#/components/schemas/isSpam"},"decimals":{"type":"number","description":"The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation."}},"required":["address","chainId","name","symbol","project","decimals"]}}},"required":["requestId","tokens"]},"CreateSwapRequest":{"type":"object","description":"The parameters **signature** and **permitData** should only be included if *permitData* was returned from **/quote**.","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"signature":{"type":"string","description":"The signed permit."},"includeGasInfo":{"type":"boolean","default":false,"deprecated":true,"description":"Use `refreshGasPrice` instead."},"refreshGasPrice":{"type":"boolean","default":false,"description":"If true, the gas price will be re-fetched from the network."},"simulateTransaction":{"type":"boolean","default":false,"description":"If true, the transaction will be simulated. If the simulation results on an onchain error, endpoint will return an error."},"permitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"safetyMode":{"$ref":"#/components/schemas/SwapSafetyMode"},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["quote"]},"CreateSendRequest":{"type":"object","properties":{"sender":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["sender","recipient","token","amount","chainId"]},"CreateSwap5792Request":{"type":"object","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"}},"required":["quote"]},"CreateSwap7702Request":{"type":"object","properties":{"quote":{"oneOf":[{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/BridgeQuote"}]},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"smartContractDelegationAddress":{"$ref":"#/components/schemas/Address"},"includeGasInfo":{"type":"boolean","default":false},"deadline":{"$ref":"#/components/schemas/deadline"},"urgency":{"$ref":"#/components/schemas/Urgency"},"simulateTransaction":{"type":"boolean"}},"required":["quote"]},"UniversalRouterVersion":{"type":"string","enum":["1.2","2.0"],"default":"2.0"},"Address":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"Position":{"type":"object","properties":{"pool":{"$ref":"#/components/schemas/Pool"},"tickLower":{"type":"number"},"tickUpper":{"type":"number"}},"required":["pool"]},"Pool":{"type":"object","properties":{"token0":{"$ref":"#/components/schemas/Address"},"token1":{"$ref":"#/components/schemas/Address"},"fee":{"$ref":"#/components/schemas/lpPoolFee"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hooks":{"$ref":"#/components/schemas/Address"}},"required":["token0","token1"]},"ClassicGasUseEstimateUSD":{"description":"The gas fee you would pay if you opted for a CLASSIC swap over a Uniswap X order in terms of USD.","type":"string"},"CreateSwapResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swap":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","swap"]},"CreateSwap5792Response":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"from":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"calls":{"type":"array","items":{"$ref":"#/components/schemas/TransactionRequest5792"}},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","from","chainId","calls"]},"CreateSwap7702Response":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"swap":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","swap"]},"CreateSendResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"send":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"}},"required":["requestId","send"]},"QuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"quote":{"$ref":"#/components/schemas/Quote"},"routing":{"$ref":"#/components/schemas/Routing"},"permitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"permitGasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["routing","quote","permitData","requestId"]},"LimitOrderQuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"quote":{"$ref":"#/components/schemas/DutchQuote"},"routing":{"type":"string","enum":["LIMIT_ORDER"]},"permitData":{"$ref":"#/components/schemas/NullablePermit"}},"required":["routing","quote","permitData","requestId"]},"QuoteRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TradeType"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"generatePermitAsTransaction":{"$ref":"#/components/schemas/generatePermitAsTransaction"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"},"routingPreference":{"$ref":"#/components/schemas/RoutingPreference"},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"spreadOptimization":{"$ref":"#/components/schemas/SpreadOptimization"},"urgency":{"$ref":"#/components/schemas/Urgency"},"permitAmount":{"$ref":"#/components/schemas/PermitAmount"},"integratorFees":{"type":"array","description":"Optional integrator fee configuration. When provided, the specified fee is applied to the swap instead of the default partner fee service. Only one fee entry is currently supported.","items":{"$ref":"#/components/schemas/IntegratorFee"},"minItems":1,"maxItems":1}},"required":["type","amount","tokenInChainId","tokenOutChainId","tokenIn","tokenOut","swapper"]},"LimitOrderQuoteRequest":{"type":"object","properties":{"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"limitPrice":{"type":"string"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"orderDeadline":{"type":"number"},"type":{"$ref":"#/components/schemas/TradeType"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"}},"required":["swapper","type","amount","tokenIn","tokenOut","tokenInChainId","tokenOutChainId"]},"GetOrdersResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"orders":{"type":"array","items":{"$ref":"#/components/schemas/UniswapXOrder"}},"cursor":{"type":"string"}},"required":["orders","requestId"]},"OrderResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"}},"required":["requestId","orderId","orderStatus"]},"OrderRequest":{"type":"object","properties":{"signature":{"type":"string","description":"The signed permit."},"quote":{"oneOf":[{"$ref":"#/components/schemas/DutchQuoteV2"},{"$ref":"#/components/schemas/DutchQuoteV3"},{"$ref":"#/components/schemas/PriorityQuote"}]},"routing":{"$ref":"#/components/schemas/Routing"}},"required":["signature","quote"]},"Urgency":{"type":"string","enum":["normal","fast","urgent"],"description":"The urgency impacts the estimated gas price of the transaction. The higher the urgency, the higher the gas price, and the faster the transaction is likely to be selected from the mempool. The default value is `urgent`.","default":"urgent"},"Protocols":{"type":"array","items":{"$ref":"#/components/schemas/ProtocolItems"},"description":"The protocols to use for the swap/order. If the `protocols` field is defined, then you can only set the `routingPreference` to `BEST_PRICE`. Note that the value `UNISWAPX` is deprecated and will be removed in a future release."},"HooksOptions":{"type":"string","enum":["V4_HOOKS_INCLUSIVE","V4_HOOKS_ONLY","V4_NO_HOOKS"],"description":"The hook options to use for V4 pool quotes. `V4_HOOKS_INCLUSIVE` will get quotes for V4 pools with or without hooks. `V4_HOOKS_ONLY` will only get quotes for V4 pools with hooks. `V4_NO_HOOKS` will only get quotes for V4 pools without hooks. Defaults to `V4_HOOKS_INCLUSIVE` if `V4` is included in `protocols` and `hookOptions` is not set. This field is ignored if `V4` is not passed in `protocols`."},"Err400":{"type":"object","properties":{"errorCode":{"default":"RequestValidationError","type":"string"},"detail":{"type":"string"}}},"Err401":{"type":"object","properties":{"errorCode":{"default":"UnauthorizedError","type":"string"},"detail":{"type":"string"}}},"Err404":{"type":"object","properties":{"errorCode":{"enum":["ResourceNotFound","QuoteAmountTooLowError","TokenBalanceNotAvailable","InsufficientBalance"],"type":"string"},"detail":{"type":"string"}}},"Err422":{"type":"object","properties":{"errorCode":{"default":"UnprocessableEntity","type":"string"},"detail":{"type":"string"}}},"Err429":{"type":"object","properties":{"errorCode":{"default":"Ratelimited","type":"string"},"detail":{"type":"string"}}},"Err500":{"type":"object","properties":{"errorCode":{"default":"InternalServerError","type":"string"},"detail":{"type":"string"}}},"Err504":{"type":"object","properties":{"errorCode":{"default":"Timeout","type":"string"},"detail":{"type":"string"}}},"ChainId":{"description":"The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://api-docs.uniswap.org/guides/faqs).","type":"number","enum":[1,10,56,130,137,143,196,324,480,1868,4217,8453,10143,42161,42220,43114,59144,81457,7777777,1301,84532,11155111],"default":1},"Distributor":{"description":"The distributor of the rewards.","type":"string","enum":["MERKL"]},"includeGasInfo":{"type":"boolean","description":"If set to `true`, the response will include the estimated gas fee for the proposed transaction.","default":false},"gasLimit":{"type":"string","description":"The maximum units of gas that will be consumed by this transaction."},"maxFeePerGas":{"type":"string","description":"The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction."},"maxPriorityFeePerGas":{"type":"string","description":"The maximum tip to the block builder. Adjusted based upon the urgency specified in the request."},"gasPrice":{"type":"string","description":"The cost per unit of gas."},"gasFee":{"type":"string","description":"The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain."},"gasFeeUSD":{"type":"string","description":"The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) denominated in USDC."},"gasFeeInCurrency":{"type":"string","description":"The total estimated gas cost of this transaction (eg. gasLimit multiplied by maxFeePerGas) in the quoted currency (e.g. output token) in the base units of the quoted currency."},"OrderInput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/inputToken"},"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"}},"required":["token"]},"OrderOutput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"isFeeOutput":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}},"required":["token"]},"CosignerData":{"type":"object","properties":{"decayStartTime":{"type":"number","description":"The unix timestamp at which the order will be eligible to be filled by alternate fillers at a lower price. Noted that the fill amount will not be lower than the output `endAmount`."},"decayEndTime":{"type":"number","description":"The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers."},"exclusiveFiller":{"type":"string","description":"The address of the filler who has priority to fill the order by the `decayStartTime`."},"inputOverride":{"type":"string"},"outputOverrides":{"type":"array","items":{"type":"string"}}}},"SettledAmount":{"type":"object","properties":{"tokenOut":{"$ref":"#/components/schemas/outputToken"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"}}},"OrderType":{"type":"string","enum":["DutchLimit","Dutch","Dutch_V2","Dutch_V3","Priority"]},"OrderTypeQuery":{"type":"string","enum":["Dutch","Dutch_V2","Dutch_V1_V2","Dutch_V3","Limit","Priority"]},"UniswapXOrder":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OrderType"},"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"signature":{"type":"string"},"nonce":{"$ref":"#/components/schemas/nonce"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"},"orderId":{"$ref":"#/components/schemas/orderId"},"chainId":{"$ref":"#/components/schemas/ChainId"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"txHash":{"$ref":"#/components/schemas/TransactionHash"},"input":{"$ref":"#/components/schemas/OrderInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/OrderOutput"}},"settledAmounts":{"type":"array","items":{"$ref":"#/components/schemas/SettledAmount"}},"cosignature":{"type":"string"},"cosignerData":{"$ref":"#/components/schemas/CosignerData"}},"required":["encodedOrder","signature","nonce","orderId","orderStatus","chainId","type"]},"SortKey":{"type":"string","enum":["createdAt"]},"OrderIds":{"type":"string"},"OrderStatus":{"description":"The status of the order. Note that all of these are final states with the exception of Open, meaning that no further state changes will occur. \n Open - order is not yet filled by a filler.\n Expired - order has expired without being filled and is no longer fillable.\n Error - a catchall for other final states which are not otherwise specified, where the order will not be filled.\n Cancelled - order is cancelled. Note that to cancel an order, a new order must be placed with the same nonce as the prior open order and it must be placed within the same block as the original order.\n Filled - order is filled.\n Insufficient-funds - the swapper (you) do not have enough funds for the order to be completed and the order is cancelled and will not be filled.\n Unverified - order has not been verified yet.","type":"string","enum":["open","expired","error","cancelled","filled","unverified","insufficient-funds"]},"Permit":{"description":"the permit2 message object for the customer to sign to permit spending by the permit2 contract.","type":"object","properties":{"domain":{"type":"object"},"values":{"type":"object"},"types":{"type":"object"}}},"NullablePermit":{"description":"the permit2 message object for the customer to sign to permit spending by the permit2 contract.","type":"object","nullable":true,"properties":{"domain":{"type":"object"},"values":{"type":"object"},"types":{"type":"object"}}},"TokenProject":{"type":"object","properties":{"logo":{"$ref":"#/components/schemas/TokenProjectLogo","nullable":true},"safetyLevel":{"$ref":"#/components/schemas/SafetyLevel"},"isSpam":{"$ref":"#/components/schemas/isSpam"}},"required":["logo","safetyLevel","isSpam"]},"TokenProjectLogo":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"DutchInput":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"token":{"$ref":"#/components/schemas/inputToken"}},"required":["startAmount","endAmount","type"]},"DutchOutput":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"endAmount":{"$ref":"#/components/schemas/endAmount"},"token":{"$ref":"#/components/schemas/outputToken"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}},"required":["startAmount","endAmount","token","recipient"]},"Curve":{"type":"object","properties":{"relativeBlocks":{"type":"array","items":{"type":"number"}},"relativeAmounts":{"type":"array","items":{"type":"string"}}},"required":["type"]},"DutchInputV3":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"maxAmount":{"type":"string"},"adjustmentPerGweiBaseFee":{"type":"string"},"curve":{"$ref":"#/components/schemas/Curve"},"token":{"$ref":"#/components/schemas/inputToken"}},"required":["startAmount","maxAmount","adjustmentPerGweiBaseFee","curve","token"]},"DutchOutputV3":{"type":"object","properties":{"startAmount":{"$ref":"#/components/schemas/startAmount"},"minAmount":{"$ref":"#/components/schemas/minAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"adjustmentPerGweiBaseFee":{"type":"string"},"curve":{"$ref":"#/components/schemas/Curve"},"token":{"$ref":"#/components/schemas/outputToken"}},"required":["startAmount","maxAmount","adjustmentPerGweiBaseFee","curve","token","recipient"]},"DutchOrderInfo":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"decayStartTime":{"type":"number","description":"The unix timestamp at which the order will be eligible to be filled by alternate fillers at a lower price. Noted that the fill amount will not be lower than the output `endAmount`."},"decayEndTime":{"type":"number","description":"The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers."},"exclusiveFiller":{"type":"string","description":"The address of the filler who has priority to fill the order by the `decayStartTime`."},"exclusivityOverrideBps":{"type":"string","description":"The portion of the order which is eligible to be filled by the `exclusiveFiller`, specified in basis points."},"input":{"$ref":"#/components/schemas/DutchInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutput"}}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchOrderInfoV2":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"input":{"$ref":"#/components/schemas/DutchInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutput"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchOrderInfoV3":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"input":{"$ref":"#/components/schemas/DutchInputV3"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/DutchOutputV3"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"},"startingBaseFee":{"type":"string"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","startTime","endTime","exclusiveFiller","exclusivityOverrideBps","input","outputs"]},"DutchQuote":{"type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfo"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"DutchQuoteV2":{"title":"UniswapX V2 Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfoV2"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"DutchQuoteV3":{"title":"UniswapX V3 Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/DutchOrderInfoV3"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"expectedAmountIn":{"type":"string"},"expectedAmountOut":{"type":"string"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"PriorityInput":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"token":{"$ref":"#/components/schemas/inputToken"},"mpsPerPriorityFeeWei":{"type":"string"}},"required":["amount","token","mpsPerPriorityFeeWei"]},"PriorityOutput":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"token":{"$ref":"#/components/schemas/outputToken"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"mpsPerPriorityFeeWei":{"type":"string","description":"The scaling factor of the priority fee based on the output token amount."}},"required":["amount","token","recipient","mpsPerPriorityFeeWei"]},"PriorityOrderInfo":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainId"},"nonce":{"$ref":"#/components/schemas/nonce"},"reactor":{"$ref":"#/components/schemas/contractAddress"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"deadline":{"$ref":"#/components/schemas/deadline"},"additionalValidationContract":{"$ref":"#/components/schemas/additionalValidationContract"},"additionalValidationData":{"$ref":"#/components/schemas/additionalValidationData"},"auctionStartBlock":{"type":"string"},"baselinePriorityFeeWei":{"type":"string"},"input":{"$ref":"#/components/schemas/PriorityInput"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/PriorityOutput"}},"cosigner":{"$ref":"#/components/schemas/cosignerAddress"}},"required":["chainId","nonce","reactor","swapper","deadline","validationContract","validationData","auctionStartBlock","baselinePriorityFeeWei","input","outputs","cosigner"]},"PriorityQuote":{"title":"UniswapX Priority Quote","type":"object","properties":{"encodedOrder":{"$ref":"#/components/schemas/encodedOrder"},"orderId":{"$ref":"#/components/schemas/orderId"},"orderInfo":{"$ref":"#/components/schemas/PriorityOrderInfo"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadlineBufferSecs":{"type":"number"},"classicGasUseEstimateUSD":{"$ref":"#/components/schemas/ClassicGasUseEstimateUSD"},"expectedAmountIn":{"$ref":"#/components/schemas/tokenAmount"},"expectedAmountOut":{"$ref":"#/components/schemas/tokenAmount"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}},"required":["encodedOrder","orderInfo","orderId"]},"BridgeQuote":{"title":"Bridge Quote","type":"object","properties":{"quoteId":{"$ref":"#/components/schemas/quoteId"},"chainId":{"$ref":"#/components/schemas/ChainId"},"destinationChainId":{"$ref":"#/components/schemas/ChainId"},"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"quoteTimestamp":{"type":"number"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"estimatedFillTimeMs":{"type":"number","description":"The estimated time it will take to fill the order in milliseconds."},"exclusiveRelayer":{"type":"string","description":"The address of the exclusive filler (the relayer).","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"exclusivityDeadline":{"type":"number","description":"The deadline (unix timestamp) by which the exclusive relayer must fill the order before other relayers can fill it."},"fillDeadline":{"type":"number","description":"The deadline by which, if the order is not filled, the order will be reverted."}}},"SafetyLevel":{"type":"string","enum":["BLOCKED","MEDIUM_WARNING","STRONG_WARNING","VERIFIED"]},"TradeType":{"type":"string","enum":["EXACT_INPUT","EXACT_OUTPUT"],"description":"The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.","default":"EXACT_INPUT"},"IndependentToken":{"type":"string","enum":["TOKEN_0","TOKEN_1"]},"Routing":{"type":"string","enum":["CLASSIC","DUTCH_LIMIT","DUTCH_V2","DUTCH_V3","BRIDGE","LIMIT_ORDER","PRIORITY","WRAP","UNWRAP","CHAINED"],"description":"The routing for the proposed transaction."},"PlanStepType":{"type":"string","enum":["DUTCH_LIMIT","CLASSIC","DUTCH_V2","LIMIT_ORDER","WRAP","UNWRAP","BRIDGE","PRIORITY","DUTCH_V3","QUICKROUTE","CHAINED","APPROVAL_TXN","APPROVAL_PERMIT","RESET_APPROVAL_TXN"],"description":"The type of step in a plan, including swap types and approval types."},"AggregatedOutput":{"description":"An array of all outputs of the proposed transaction. This includes the swap as well as any fees collected by the API integrator. This does not include pool fees when routing is through a Uniswap Protocol pool.","type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"bps":{"$ref":"#/components/schemas/bps"},"minAmount":{"$ref":"#/components/schemas/minAmount"}}},"Quote":{"oneOf":[{"$ref":"#/components/schemas/DutchQuote"},{"$ref":"#/components/schemas/ClassicQuote"},{"$ref":"#/components/schemas/WrapUnwrapQuote"},{"$ref":"#/components/schemas/DutchQuoteV2"},{"$ref":"#/components/schemas/DutchQuoteV3"},{"$ref":"#/components/schemas/BridgeQuote"},{"$ref":"#/components/schemas/PriorityQuote"},{"$ref":"#/components/schemas/ChainedQuote"}]},"CheckApprovalLPRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"token0":{"$ref":"#/components/schemas/inputToken"},"token1":{"$ref":"#/components/schemas/inputToken"},"positionToken":{"description":"The address of the NFT representing the position. Required when requesting approval for removing liquidity from a V2 position (provide address of V2 NFT). Required when requesting approval for migrating a V3 position to a V4 position (provide address of V3 NFT).","type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"chainId":{"$ref":"#/components/schemas/ChainId"},"walletAddress":{"$ref":"#/components/schemas/Address"},"amount0":{"description":"The amount of token0 to be added or removed from the position. To estimate the amount of token0 needed when adding a new position, use the /lp/create endpoint to simulate the position creation.","type":"string","pattern":"^[0-9]+$"},"amount1":{"description":"The amount of token1 to be added or removed from the position. To estimate the amount of token1 needed when adding a new position, use the /lp/create endpoint to simulate the position creation.","type":"string","pattern":"^[0-9]+$"},"generatePermitAsTransaction":{"$ref":"#/components/schemas/generatePermitAsTransaction"},"positionAmount":{"description":"Only required when getting approval for removing a V2 position. Populated with the amount of the V2 position to be removed (eg. amount0*amount1).","type":"string","pattern":"^[0-9]+$"},"simulateTransaction":{"type":"boolean"}}},"CheckApprovalLPResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"token0Approval":{"$ref":"#/components/schemas/TransactionRequest"},"token1Approval":{"$ref":"#/components/schemas/TransactionRequest"},"token0Cancel":{"$ref":"#/components/schemas/TransactionRequest"},"token1Cancel":{"$ref":"#/components/schemas/TransactionRequest"},"positionTokenApproval":{"$ref":"#/components/schemas/TransactionRequest"},"permitData":{"$ref":"#/components/schemas/NullablePermit"},"token0PermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"token1PermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"positionTokenPermitTransaction":{"$ref":"#/components/schemas/TransactionRequest"},"gasFeeToken0Approval":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Approval":{"$ref":"#/components/schemas/gasFee"},"gasFeePositionTokenApproval":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken0Cancel":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Cancel":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken0Permit":{"$ref":"#/components/schemas/gasFee"},"gasFeeToken1Permit":{"$ref":"#/components/schemas/gasFee"},"gasFeePositionTokenPermit":{"$ref":"#/components/schemas/gasFee"}}},"ApprovalRequest":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/senderWalletAddress"},"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"urgency":{"$ref":"#/components/schemas/Urgency"},"includeGasInfo":{"$ref":"#/components/schemas/includeGasInfo"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"}},"required":["walletAddress","token","amount","chainId"]},"ApprovalResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"approval":{"$ref":"#/components/schemas/TransactionRequest"},"cancel":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"cancelGasFee":{"$ref":"#/components/schemas/gasFee"}},"required":["requestId","approval","cancel"]},"ClassicQuote":{"title":"Classic Quote","type":"object","properties":{"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"chainId":{"$ref":"#/components/schemas/ChainId"},"slippage":{"$ref":"#/components/schemas/slippageTolerance"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"route":{"type":"array","items":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/V2PoolInRoute"},{"$ref":"#/components/schemas/V3PoolInRoute"},{"$ref":"#/components/schemas/V4PoolInRoute"}]}}},"portionBips":{"$ref":"#/components/schemas/portionBips"},"portionAmount":{"$ref":"#/components/schemas/portionAmount"},"portionRecipient":{"$ref":"#/components/schemas/portionAmountReceiverAddress"},"routeString":{"type":"string","description":"The route in string format."},"quoteId":{"$ref":"#/components/schemas/quoteId"},"gasUseEstimate":{"type":"string","description":"The estimated gas use. It does NOT include the additional gas for token approvals."},"blockNumber":{"type":"string","description":"The current block number."},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"txFailureReasons":{"description":"The reason(s) why the transaction failed during simulation.","type":"array","items":{"$ref":"#/components/schemas/TransactionFailureReason"}},"priceImpact":{"type":"number","description":"The impact the trade has on the market price of the pool, between 0-100 percent"},"aggregatedOutputs":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedOutput"}}}},"WrapUnwrapQuote":{"title":"Wrap/Unwrap Quote","type":"object","properties":{"swapper":{"$ref":"#/components/schemas/receiverWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"chainId":{"$ref":"#/components/schemas/ChainId"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"}}},"TokenInRoute":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/inputToken"},"chainId":{"$ref":"#/components/schemas/ChainId"},"symbol":{"$ref":"#/components/schemas/tokenSymbol"},"decimals":{"type":"string","description":"The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation."},"buyFeeBps":{"$ref":"#/components/schemas/bpsFee"},"sellFeeBps":{"$ref":"#/components/schemas/bpsFee"}}},"V2Reserve":{"description":"The remaining reserve of this token in the pool.","type":"object","properties":{"token":{"$ref":"#/components/schemas/TokenInRoute"},"quotient":{"description":"The quantity of this token remaining in the pool, specified in the base units of the token.","type":"string"}}},"V2PoolInRoute":{"title":"V2 Route","type":"object","properties":{"type":{"type":"string","default":"v2-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"reserve0":{"$ref":"#/components/schemas/V2Reserve"},"reserve1":{"$ref":"#/components/schemas/V2Reserve"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}}},"V3PoolInRoute":{"title":"V3 Route","type":"object","properties":{"type":{"type":"string","default":"v3-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"liquidity":{"$ref":"#/components/schemas/liquidity"},"tickCurrent":{"$ref":"#/components/schemas/tickCurrent"},"fee":{"$ref":"#/components/schemas/poolFee"},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}}},"V4PoolInRoute":{"title":"V4 Route","type":"object","properties":{"type":{"type":"string","default":"v4-pool"},"address":{"$ref":"#/components/schemas/contractAddress"},"tokenIn":{"$ref":"#/components/schemas/TokenInRoute"},"tokenOut":{"$ref":"#/components/schemas/TokenInRoute"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"liquidity":{"$ref":"#/components/schemas/liquidity"},"tickCurrent":{"$ref":"#/components/schemas/tickCurrent"},"fee":{"$ref":"#/components/schemas/poolFee"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hooks":{"type":"string","description":"The address of the hook for the pool, if any. If the pool has no hook, this field will be the null address (e.g. 0x0000000000000000000000000000000000000000)."},"amountIn":{"$ref":"#/components/schemas/tokenAmount"},"amountOut":{"$ref":"#/components/schemas/tokenAmount"}},"required":["type","address","tokenIn","tokenOut","sqrtRatioX96","liquidity","tickCurrent","fee","tickSpacing","hooks"]},"TransactionHash":{"type":"string","description":"The unique hash of the transaction.","pattern":"^(0x)?[0-9a-fA-F]{64}$"},"ClassicInput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/inputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"}}},"ClassicOutput":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/outputToken"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"}}},"RequestId":{"type":"string","description":"A unique ID for the request."},"PermitAmount":{"type":"string","enum":["FULL","EXACT"],"description":"For Uniswap Protocols (v2, v3, v4) swaps, specify the input token spend allowance (e.g. quantity) to be set in the permit. `FULL` can be used to specify an unlimited token quantity, and may prevent the wallet from needing to sign another permit for the same token in the future. `EXACT` can be used to specify the exact input token quantity for this request. Defaults to `FULL`.","default":"FULL"},"IntegratorFee":{"type":"object","description":"A fee configuration specifying the fee amount in basis points and the recipient address.","properties":{"bips":{"type":"number","description":"Fee amount in basis points (1 bip = 0.01%). Must be greater than 0 and at most 500.","minimum":0,"exclusiveMinimum":true,"maximum":500},"recipient":{"type":"string","description":"Ethereum address that receives the fee.","pattern":"^0x[a-fA-F0-9]{40}$"}},"required":["bips","recipient"]},"SpreadOptimization":{"type":"string","enum":["EXECUTION","PRICE"],"description":"For UniswapX swaps, when set to `EXECUTION`, quotes optimize for looser spreads at higher fill rates. When set to `PRICE`, quotes optimize for tighter spreads at lower fill rates. This field is not applicable to Uniswap Protocols (v2, v3, v4), bridging, or wrapping/unwrapping and will be ignored if set.","default":"EXECUTION"},"AutoSlippage":{"type":"string","enum":["DEFAULT"],"description":"The auto slippage strategy to employ. For Uniswap Protocols (v2, v3, v4) the auto slippage will be automatically calculated when this field is set to `DEFAULT`. Auto slippage cannot be calculated for UniswapX swaps.\n\nNote that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token.\n\nWhen submitting a request, `autoSlippage` may not be set when `slippageTolerance` is defined. One of `slippageTolerance` or `autoSlippage` must be defined."},"RoutingPreference":{"type":"string","description":"The `routingPreference` specifies the preferred strategy to determine the quote. If the `routingPreference` is `BEST_PRICE`, then the quote will propose a route through the specified whitelisted protocols (or all, if none are specified) that provides the best price. When the `routingPreference` is `FASTEST`, the quote will propose the first route which is found to complete the swap.","enum":["BEST_PRICE","FASTEST"],"default":"BEST_PRICE"},"ProtocolItems":{"type":"string","enum":["V2","V3","V4","UNISWAPX","UNISWAPX_V2","UNISWAPX_V3"],"description":"The protocol to use for the swap/order."},"encodedOrder":{"type":"string","description":"An encoded copy of the order details which will be submitted to the filler network along with the signed permit."},"orderId":{"type":"string","description":"A unique ID for the order. Used to track the order's status."},"quoteId":{"type":"string","description":"A unique ID for the quote."},"portionBips":{"type":"number","description":"The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token."},"portionAmount":{"type":"string","description":"The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token."},"portionAmountReceiverAddress":{"type":"string","description":"The wallet address which will receive the fee."},"poolFee":{"type":"string","description":"The fee of the pool in basis points."},"lpPoolFee":{"type":"number","description":"The fee of the pool in basis points."},"additionalValidationContract":{"type":"string","default":"0x0000000000000000000000000000000000000000","description":"Unused and deprecated.","deprecated":true},"additionalValidationData":{"type":"string","default":"0x","description":"Unused and deprecated.","deprecated":true},"deadline":{"type":"number","description":"The unix timestamp at which the order will be reverted if not filled."},"nonce":{"type":"string","description":"A unique nonce for this order."},"sqrtRatioX96":{"type":"string","description":"The square root of the ratio of the token0 and token1 in the pool, as a Q64.64 number. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf)."},"liquidity":{"type":"string","description":"The amount of liquidity in the pool at a given tick. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf)."},"tickCurrent":{"type":"string","description":"The current tick of the pool. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf)."},"lpTickCurrent":{"type":"number","description":"The current tick of the pool. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf)."},"tickSpacing":{"type":"number","description":"The width of ticks in this pool (e.g. the price range between two ticks) specified in basis points. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf)."},"isSpam":{"type":"boolean","description":"Whether the token is considered a spam token."},"startAmount":{"type":"string","description":"The intended execution quantity of tokens resulting from this swap."},"endAmount":{"type":"string","description":"The worst case quantity of tokens resulting from this swap."},"minAmount":{"type":"string","description":"The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient."},"bps":{"type":"number","description":"The portion of the swap stated in basis points."},"bpsFee":{"type":"string","description":"A fee charged by the token specified in basis points. Field is not present if the token does not charge a fee."},"TransactionRequest":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/receiverWalletAddress"},"from":{"$ref":"#/components/schemas/senderWalletAddress"},"data":{"type":"string","description":"The calldata for the transaction."},"value":{"type":"string","description":"The quantity of ETH tokens approved for spending by the transaction, denominated in wei. Note that by default Uniswap Labs sets this to the maximum approvable spend."},"gasLimit":{"$ref":"#/components/schemas/gasLimit"},"chainId":{"$ref":"#/components/schemas/ChainId"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"}},"required":["to","from","data","value","chainId"]},"TransactionRequest5792":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/receiverWalletAddress"},"data":{"type":"string","description":"The calldata for the transaction."},"value":{"type":"string","description":"The quantity of ETH tokens approved for spending by the transaction, denominated in wei. Note that by default Uniswap Labs sets this to the maximum approvable spend."},"gasLimit":{"$ref":"#/components/schemas/gasLimit"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"}},"required":["to","data","value","chainId"]},"TransactionFailureReason":{"type":"string","enum":["SIMULATION_ERROR","UNSUPPORTED_SIMULATION","SIMULATION_UNAVAILABLE","SLIPPAGE_TOO_LOW","TRANSFER_FROM_FAILED"]},"SwapSafetyMode":{"type":"string","enum":["SAFE"],"description":"Swap safety mode will automatically sweep the transaction for the native token and return it to the sender wallet address. This is to prevent accidental loss of funds in the event that the token amount is set in the transaction value instead of as part of the calldata."},"IndicativeQuoteRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TradeType"},"amount":{"$ref":"#/components/schemas/tokenAmount"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"}},"required":["type","amount","tokenInChainId","tokenOutChainId","tokenIn","tokenOut"]},"IndicativeQuoteResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"input":{"$ref":"#/components/schemas/IndicativeQuoteToken"},"output":{"$ref":"#/components/schemas/IndicativeQuoteToken"},"type":{"$ref":"#/components/schemas/TradeType"}},"required":["requestId","input","output","type"]},"CreateLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"initialPrice":{"type":"string"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"independentAmount":{"$ref":"#/components/schemas/tokenAmount"},"independentToken":{"$ref":"#/components/schemas/IndependentToken"},"initialDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"defaultDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"slippageTolerance":{"type":"number"},"deadline":{"$ref":"#/components/schemas/deadline"},"signature":{"type":"string","description":"The signed permit."},"batchPermitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"simulateTransaction":{"type":"boolean"}}},"CreateLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"create":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"dependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"IncreaseLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"independentAmount":{"$ref":"#/components/schemas/tokenAmount"},"independentToken":{"$ref":"#/components/schemas/IndependentToken"},"defaultDependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"slippageTolerance":{"type":"number"},"deadline":{"$ref":"#/components/schemas/deadline"},"signature":{"type":"string","description":"The signed permit."},"batchPermitData":{"allOf":[{"$ref":"#/components/schemas/Permit"}]},"simulateTransaction":{"type":"boolean"}}},"IncreaseLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"increase":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"dependentAmount":{"$ref":"#/components/schemas/tokenAmount"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"DecreaseLPPositionRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"liquidityPercentageToDecrease":{"type":"number"},"liquidity0":{"type":"string"},"liquidity1":{"type":"string"},"slippageTolerance":{"type":"number"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"positionLiquidity":{"type":"string"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"collectAsWETH":{"type":"boolean"},"deadline":{"$ref":"#/components/schemas/deadline"},"simulateTransaction":{"type":"boolean"}}},"DecreaseLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"decrease":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"}}},"ClaimLPFeesRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/ProtocolItems"},"tokenId":{"type":"number"},"position":{"$ref":"#/components/schemas/Position"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"collectAsWETH":{"type":"boolean"},"simulateTransaction":{"type":"boolean"}}},"ClaimLPFeesResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"claim":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"ClaimLPRewardsRequest":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/claimerWalletAddress"},"chainId":{"$ref":"#/components/schemas/ChainId"},"tokens":{"type":"array","description":"The token addresses to claim rewards for.","items":{"$ref":"#/components/schemas/Address"}},"distributor":{"$ref":"#/components/schemas/Distributor"},"simulateTransaction":{"type":"boolean"}}},"ClaimLPRewardsResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"claim":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"MigrateLPPositionRequest":{"type":"object","properties":{"tokenId":{"type":"number"},"walletAddress":{"$ref":"#/components/schemas/Address"},"chainId":{"$ref":"#/components/schemas/ChainId"},"inputProtocol":{"$ref":"#/components/schemas/ProtocolItems"},"inputPosition":{"$ref":"#/components/schemas/Position"},"inputPoolLiquidity":{"$ref":"#/components/schemas/liquidity"},"inputCurrentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"inputSqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"inputPositionLiquidity":{"$ref":"#/components/schemas/liquidity"},"signature":{"type":"string"},"amount0":{"$ref":"#/components/schemas/tokenAmount"},"amount1":{"$ref":"#/components/schemas/tokenAmount"},"outputProtocol":{"$ref":"#/components/schemas/ProtocolItems"},"outputPosition":{"$ref":"#/components/schemas/Position"},"initialPrice":{"type":"string"},"outputPoolLiquidity":{"$ref":"#/components/schemas/liquidity"},"outputCurrentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"outputSqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"expectedTokenOwed0RawAmount":{"type":"string"},"expectedTokenOwed1RawAmount":{"type":"string"},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"deadline":{"$ref":"#/components/schemas/deadline"},"signatureDeadline":{"type":"number"},"simulateTransaction":{"type":"boolean","default":false}},"required":["tokenId","chainId","walletAddress","inputProtocol","inputPosition","inputPoolLiquidity","inputCurrentTick","inputSqrtRatioX96","inputPositionLiquidity","amount0","amount1","outputProtocol","outputPosition","expectedTokenOwed0RawAmount","expectedTokenOwed1RawAmount"]},"MigrateLPPositionResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"migrate":{"$ref":"#/components/schemas/TransactionRequest"},"gasFee":{"$ref":"#/components/schemas/gasFee"}}},"PoolInfoRequest":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/Protocols"},"poolParams":{"$ref":"#/components/schemas/PoolParameters"},"poolReferences":{"type":"array","description":"Array of pool reference identifiers to query. Each reference should include the protocol, chainId, and either the pool address (V3), pool id (V4), or pair address (V2).","items":{"$ref":"#/components/schemas/PoolReferenceByProtocol"}},"chainId":{"$ref":"#/components/schemas/ChainId"},"pageSize":{"type":"number"},"currentPage":{"type":"number"}},"required":["protocol"]},"PoolInfoResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"pools":{"type":"array","description":"Array of pool information objects.","items":{"$ref":"#/components/schemas/PoolInformation"}},"pageSize":{"type":"number"},"currentPage":{"type":"number"}}},"PoolInformation":{"type":"object","properties":{"poolReferenceIdentifier":{"type":"string","description":"The unique identifier for the pool reference, which can be a pool address, pool id, or pair address depending on the protocol."},"poolProtocol":{"$ref":"#/components/schemas/Protocols"},"tokenAddressA":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tokenAddressB":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"fee":{"$ref":"#/components/schemas/poolFee"},"hookAddress":{"type":"string","description":"The address of the hook for the pool, if any."},"chainId":{"$ref":"#/components/schemas/ChainId"},"tokenAmountA":{"$ref":"#/components/schemas/tokenAmount"},"tokenAmountB":{"$ref":"#/components/schemas/tokenAmount"},"tokenDecimalsA":{"type":"number","description":"The number of decimals for token A."},"tokenDecimalsB":{"type":"number","description":"The number of decimals for token B."},"poolLiquidity":{"$ref":"#/components/schemas/liquidity"},"sqrtRatioX96":{"$ref":"#/components/schemas/sqrtRatioX96"},"currentTick":{"$ref":"#/components/schemas/lpTickCurrent"},"tokenAReserves":{"$ref":"#/components/schemas/tokenAmount"},"tokenBReserves":{"$ref":"#/components/schemas/tokenAmount"}}},"PoolParameters":{"type":"object","properties":{"token0":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"token1":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]{40}$"},"fee":{"type":"number","description":"The fee of the pool, if the pool has a fee value."},"tickSpacing":{"$ref":"#/components/schemas/tickSpacing"},"hookAddress":{"type":"string","description":"The address of the hook for the pool, if any."}}},"PoolReferenceByProtocol":{"type":"object","properties":{"protocol":{"$ref":"#/components/schemas/Protocols"},"chainId":{"$ref":"#/components/schemas/ChainId"},"referenceIdentifier":{"type":"string","pattern":"^(0x)?[0-9a-fA-F]"}},"required":["protocol","poolAddress","chainId"]},"IndicativeQuoteToken":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/tokenAmount"},"chainId":{"$ref":"#/components/schemas/ChainId"},"token":{"$ref":"#/components/schemas/Address"}}},"WalletEncode7702RequestBody":{"type":"object","properties":{"calls":{"type":"array","description":"Array of transaction requests to be encoded. All transactions must have the same chainId.","items":{"$ref":"#/components/schemas/TransactionRequest"}},"smartContractDelegationAddress":{"$ref":"#/components/schemas/Address","description":"The address of the smart contract delegation implementation to use."},"walletAddress":{"$ref":"#/components/schemas/Address","description":"The address of the wallet for which the transactions will be encoded."}},"required":["calls","smartContractDelegationAddress","walletAddress"]},"Encode7702ResponseBody":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"encoded":{"$ref":"#/components/schemas/TransactionRequest"}},"required":["requestId","encoded"]},"WalletCheckDelegationRequestBody":{"type":"object","properties":{"walletAddresses":{"type":"array","description":"Array of wallet addresses to check delegation status for.","items":{"$ref":"#/components/schemas/Address"}},"chainIds":{"type":"array","description":"Array of chain IDs to check delegation status for.","items":{"$ref":"#/components/schemas/ChainId"}}},"required":["walletAddress","chainIds"]},"DelegationDetails":{"type":"object","properties":{"isWalletDelegatedToUniswap":{"type":"boolean","description":"Whether the current delegation address is a Uniswap delegation address."},"currentDelegationAddress":{"type":"string","nullable":true,"description":"The current delegation address of the wallet. May be null if the wallet does not currently delegate to any address."},"latestDelegationAddress":{"type":"string","description":"The latest delegation address that the wallet could upgrade to."}},"required":["isWalletDelegatedToUniswap","currentDelegationAddress","latestDelegationAddress"]},"ChainDelegationMap":{"type":"object","description":"Map of chain IDs to delegation details for a specific wallet.","additionalProperties":{"$ref":"#/components/schemas/DelegationDetails"}},"WalletCheckDelegationResponseBody":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"delegationDetails":{"type":"object","description":"Map of wallet addresses to chain IDs to delegation details.","additionalProperties":{"$ref":"#/components/schemas/ChainDelegationMap"}}},"required":["requestId","delegationDetails"]},"CreatePlanRequest":{"type":"object","properties":{"routing":{"type":"string","enum":["CHAINED"],"description":"The routing type for the plan. Currently only CHAINED is supported for multi-step execution plans."},"quote":{"$ref":"#/components/schemas/ChainedQuote"},"walletExecutionContext":{"$ref":"#/components/schemas/WalletExecutionContext"}},"required":["routing","quote"]},"UpdatePlanRequest":{"type":"object","properties":{"steps":{"type":"array","description":"Array of steps with proofs to attach. Only steps being updated need to be included.","minItems":1,"items":{"$ref":"#/components/schemas/StepUpdate"}}},"required":["steps"]},"StepUpdate":{"type":"object","description":"Represents a single step update with proof. Note: orderId is not accepted in update requests; it is system-generated after receiving a signature.","properties":{"stepIndex":{"type":"number","description":"The index of the step being updated (0-based)."},"proof":{"type":"object","description":"Proof of step completion. Must provide either txHash or signature.","properties":{"txHash":{"$ref":"#/components/schemas/TransactionHash"},"signature":{"type":"string","description":"The signature for a message signing step.","pattern":"^0x[a-fA-F0-9]{130}$"}}}},"required":["stepIndex","proof"]},"PlanResponse":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/RequestId"},"planId":{"type":"string","description":"A unique identifier for this execution plan."},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"status":{"$ref":"#/components/schemas/PlanStatus"},"steps":{"type":"array","description":"The sequential steps that need to be executed to complete the plan.","items":{"$ref":"#/components/schemas/PlanStep"}},"currentStepIndex":{"type":"number","description":"The index of the current step that needs to be executed (0-based)."},"expectedOutput":{"$ref":"#/components/schemas/tokenAmount"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"timeEstimateMs":{"type":"number","description":"Estimated time in milliseconds to complete the entire plan."},"gasStrategies":{"type":"array","description":"Gas strategies used for the plan.","items":{"$ref":"#/components/schemas/GasStrategy"}},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the plan was created."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the plan was last updated."},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the plan completed."},"lastUserActionAt":{"type":"string","format":"date-time","description":"Timestamp of the last user action on this plan."},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"},"walletExecutionContext":{"$ref":"#/components/schemas/WalletExecutionContext"}},"required":["requestId","planId","swapper","recipient","quoteId","status","steps","currentStepIndex","expectedOutput"]},"PlanStep":{"type":"object","properties":{"stepIndex":{"type":"number","description":"The index of this step in the plan (0-based)."},"method":{"$ref":"#/components/schemas/PlanStepMethod"},"payloadType":{"$ref":"#/components/schemas/PlanStepPayloadType"},"payload":{"type":"object","description":"The payload data for this step. The structure depends on the payloadType."},"status":{"$ref":"#/components/schemas/PlanStepStatus"},"proof":{"$ref":"#/components/schemas/PlanStepProof"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tokenInAmount":{"$ref":"#/components/schemas/tokenAmount"},"tokenOutAmount":{"$ref":"#/components/schemas/tokenAmount"},"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"recipient":{"$ref":"#/components/schemas/receiverWalletAddress"},"stepType":{"$ref":"#/components/schemas/PlanStepType"},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"routingStepKey":{"type":"string","description":"An optional key identifying the routing strategy used for this step."},"slippage":{"$ref":"#/components/schemas/slippageTolerance"}},"required":["stepIndex","method","payloadType","payload","status"]},"PlanStepProof":{"type":"object","description":"Proof of execution for a plan step, provided after the step is completed.","properties":{"txHash":{"$ref":"#/components/schemas/TransactionHash"},"signature":{"type":"string","description":"The signature for a message signing step."},"orderId":{"type":"string","description":"The order ID for a gasless order step."}}},"PlanStatus":{"type":"string","enum":["ACTIVE","AWAITING_ACTION","IN_PROGRESS","COMPLETED","FAILED"],"description":"The overall status of the plan execution. ACTIVE means the plan is ready to begin (all steps NOT_READY). AWAITING_ACTION means at least one step requires user action. IN_PROGRESS means at least one step is executing. COMPLETED means all steps have been successfully executed. FAILED means the plan cannot be completed."},"PlanStepStatus":{"type":"string","enum":["NOT_READY","AWAITING_ACTION","IN_PROGRESS","COMPLETE","STEP_ERROR"],"description":"The status of an individual step. NOT_READY means prerequisites are not met. AWAITING_ACTION means the step is ready for user action. IN_PROGRESS means the step is being executed. COMPLETE means the step finished successfully. STEP_ERROR means the step failed."},"PlanStepMethod":{"type":"string","enum":["SEND_TX","SIGN_MSG","SEND_CALLS"],"description":"The execution method for the step. SEND_TX is a standard transaction. SIGN_MSG is for signing a message (e.g., permit). SEND_CALLS is for batch transaction execution (EIP-5792)."},"PlanStepPayloadType":{"type":"string","enum":["TX","EIP_712","EIP_5792"],"description":"The type of payload data. TX is a standard transaction object. EIP_712 is a typed structured data for signing. EIP_5792 is a batch of transaction calls."},"TruncatedPlanStep":{"type":"object","description":"A truncated representation of a plan step containing only routing information.","properties":{"stepType":{"$ref":"#/components/schemas/PlanStepType"},"tokenIn":{"$ref":"#/components/schemas/inputToken"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOut":{"$ref":"#/components/schemas/outputToken"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"slippage":{"$ref":"#/components/schemas/slippageTolerance"}},"required":["stepType"]},"ChainedQuote":{"title":"Chained Quote","type":"object","description":"A quote for a chained transaction flow that spans multiple steps, potentially across multiple chains.","properties":{"swapper":{"$ref":"#/components/schemas/senderWalletAddress"},"input":{"$ref":"#/components/schemas/ClassicInput"},"output":{"$ref":"#/components/schemas/ClassicOutput"},"tokenInChainId":{"$ref":"#/components/schemas/ChainId"},"tokenOutChainId":{"$ref":"#/components/schemas/ChainId"},"tradeType":{"$ref":"#/components/schemas/TradeType"},"quoteId":{"$ref":"#/components/schemas/quoteId"},"gasEstimates":{"type":"array","description":"Gas estimates for each step in the chained flow.","items":{"type":"object","description":"Gas estimation details for a specific step."}},"timeEstimateMs":{"type":"number","description":"Estimated time in milliseconds to complete the entire chained flow."},"gasUseEstimate":{"$ref":"#/components/schemas/gasLimit"},"gasFeeUSD":{"$ref":"#/components/schemas/gasFeeUSD"},"gasFeeQuote":{"$ref":"#/components/schemas/gasFeeInCurrency"},"gasPrice":{"$ref":"#/components/schemas/gasPrice"},"maxFeePerGas":{"$ref":"#/components/schemas/maxFeePerGas"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/maxPriorityFeePerGas"},"gasFee":{"$ref":"#/components/schemas/gasFee"},"protocols":{"$ref":"#/components/schemas/Protocols"},"hooksOptions":{"$ref":"#/components/schemas/HooksOptions"},"gasStrategies":{"type":"array","description":"Gas strategies for the chained flow.","items":{"$ref":"#/components/schemas/GasStrategy"}},"steps":{"type":"array","description":"Truncated plan steps for the chained transaction flow.","items":{"$ref":"#/components/schemas/TruncatedPlanStep"}},"slippageTolerance":{"$ref":"#/components/schemas/slippageTolerance"},"autoSlippage":{"$ref":"#/components/schemas/AutoSlippage"}},"required":["swapper","input","output","tokenInChainId","tokenOutChainId","tradeType","quoteId","gasStrategies"]},"WalletExecutionContext":{"type":"object","description":"Wallet execution context based on CAIP-25 Standard. Provides information about wallet capabilities and scopes.","properties":{"scopes":{"type":"object","description":"Map of scope identifiers to their scope data.","additionalProperties":{"$ref":"#/components/schemas/ScopeData"}},"properties":{"$ref":"#/components/schemas/WalletProperties"}},"required":["scopes"]},"ScopeData":{"type":"object","description":"Data defining a wallet scope including accounts, methods, capabilities, chains, and client context.","properties":{"accounts":{"type":"array","description":"Array of account addresses associated with this scope.","items":{"type":"string"}},"methods":{"type":"array","description":"Array of methods allowed in this scope.","items":{"type":"string"}},"capabilities":{"type":"object","description":"Additional capabilities for this scope.","additionalProperties":true},"chains":{"type":"array","description":"Array of chain identifiers allowed in this scope.","items":{"type":"string"}},"clientContext":{"$ref":"#/components/schemas/ClientContext"}},"required":["accounts","methods"]},"ClientContext":{"type":"object","description":"Uni client-specific context describing how this wallet integrates with the application.","properties":{"directPrivateKeyAccess":{"type":"boolean","description":"Whether the wallet has direct private key access."},"nextEvmUpgradeAddress":{"type":"string","description":"Address for the next EVM upgrade."}}},"WalletProperties":{"type":"object","description":"Properties describing the wallet.","properties":{"walletInfo":{"$ref":"#/components/schemas/WalletInfo"}}},"WalletInfo":{"type":"object","description":"Information about the wallet.","properties":{"uuid":{"type":"string","description":"Unique identifier for the wallet."},"name":{"type":"string","description":"Name of the wallet."},"rdns":{"type":"string","description":"Reverse domain name identifier for the wallet."}}},"GasStrategy":{"type":"object","description":"Gas strategy configuration for transaction fee estimation.","properties":{"limitInflationFactor":{"type":"number","description":"Factor to inflate the gas limit estimate."},"priceInflationFactor":{"type":"number","description":"Factor to inflate the gas price estimate."},"percentileThresholdFor1559Fee":{"type":"number","description":"Percentile threshold for EIP-1559 fee calculation."},"thresholdToInflateLastBlockBaseFee":{"type":"number","description":"Threshold to inflate the last block base fee."},"baseFeeMultiplier":{"type":"number","description":"Multiplier for the base fee."},"baseFeeHistoryWindow":{"type":"number","description":"Number of blocks to consider for base fee history."},"minPriorityFeeRatioOfBaseFee":{"type":"number","description":"Minimum priority fee as a ratio of base fee."},"minPriorityFeeGwei":{"type":"number","description":"Minimum priority fee in Gwei."},"maxPriorityFeeGwei":{"type":"number","description":"Maximum priority fee in Gwei."}},"required":["limitInflationFactor","priceInflationFactor","percentileThresholdFor1559Fee"]}},"parameters":{"universalRouterVersionHeader":{"name":"x-universal-router-version","in":"header","description":"The version of the Universal Router to use for the swap journey. *MUST* be consistent throughout the API calls.","required":false,"schema":{"$ref":"#/components/schemas/UniversalRouterVersion"}},"erc20EthEnabledHeader":{"name":"x-erc20eth-enabled","in":"header","description":"Enable native ETH input support for UniswapX via ERC20-ETH (EIP-7914). When set to true and `tokenIn` is the native currency address (e.g. `0x0000000000000000000000000000000000000000`), the API may return UniswapX routes that spend native ETH for supported wallets.","required":false,"schema":{"type":"boolean","default":false}},"permit2DisabledHeader":{"name":"x-permit2-disabled","in":"header","description":"Disables the Permit2 approval flow. When set to `true`, `permitData` is returned as `null` and the header is forwarded to the routing layer for correct gas simulation against the Proxy Universal Router contract. When `false` or omitted, the standard Permit2 approval flow is used. This header is intended for integrators whose infrastructure uses a direct approval-then-swap pattern without Permit2.","required":false,"schema":{"type":"boolean","default":false}},"cursorParam":{"name":"cursor","in":"query","schema":{"type":"string"},"required":false},"limitParam":{"name":"limit","in":"query","schema":{"type":"number"},"required":false},"chainIdParam":{"name":"chainId","in":"query","schema":{"$ref":"#/components/schemas/ChainId"},"required":false},"bridgeTokenInChainIdParam":{"name":"tokenInChainId","in":"query","schema":{"$ref":"#/components/schemas/ChainId"},"required":false},"tokenInParam":{"name":"tokenIn","in":"query","schema":{"$ref":"#/components/schemas/Address"},"required":false},"orderStatusParam":{"name":"orderStatus","in":"query","description":"Filter by order status.","required":false,"schema":{"$ref":"#/components/schemas/OrderStatus"}},"orderTypeParam":{"name":"orderType","in":"query","description":"The default orderType is Dutch_V1_V2 and will grab both Dutch and Dutch_V2 orders.","required":false,"schema":{"$ref":"#/components/schemas/OrderTypeQuery"}},"orderIdParam":{"name":"orderId","in":"query","required":false,"schema":{"$ref":"#/components/schemas/orderId"}},"orderIdsParam":{"name":"orderIds","in":"query","required":false,"description":"A list of comma separated orderIds.","schema":{"$ref":"#/components/schemas/OrderIds"}},"swapperParam":{"name":"swapper","in":"query","description":"Filter by swapper address.","required":false,"schema":{"$ref":"#/components/schemas/Address"}},"fillerParam":{"name":"filler","in":"query","description":"Filter by filler address.","required":false,"schema":{"$ref":"#/components/schemas/Address"}},"sortKeyParam":{"name":"sortKey","in":"query","description":"Order the query results by the sort key.","required":false,"schema":{"$ref":"#/components/schemas/SortKey"}},"sortParam":{"name":"sort","in":"query","description":"Sort query. For example: `sort=gt(UNIX_TIMESTAMP)`, `sort=between(1675872827, 1675872930)`, or `lt(1675872930)`.","required":false,"schema":{"type":"string"}},"transactionHashesParam":{"description":"The transaction hashes.","name":"txHashes","in":"query","required":true,"style":"form","explode":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransactionHash"}}}},"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}}},"security":[{"apiKey":[]}]}
|