/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/app-fees/{wallet}/balances": { get: { parameters: { path: { /** @description Wallet to get the app fees for */ wallet: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description An array of app fee balances across multiple currencies */ balances?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }[]; /** @description Total app fee balance in USD across all currencies. */ totalBalanceUsd?: number; /** @description Outstanding fast fill balance in USD that has not yet settled. This amount is deducted from the available collateral for new fast fills and claims. */ outstandingFastFillBalanceUsd?: number; /** @description Total balance minus outstanding fast fill balance. The effective collateral available for new fast fills and claims. */ availableBalanceUsd?: number; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Descriptive error message */ message?: string; }; }; }; }; }; }; "/app-fees/{wallet}/claim": { post: { parameters: { path: { wallet: string; }; }; requestBody: { content: { "application/json": { /** @description Chain id of the currency to claim */ chainId: number; /** @description Currency to claim */ currency: string; /** @description Amount to claim */ amount?: string; /** @description The recipient of the claimed funds */ recipient: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description An array of steps detailing what needs to be done to claim */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, for claims this will be `signature` */ kind?: string; /** @description For claims, we'll always have a single `signature` step */ items?: { /** @description Can either be complete or incomplete */ status?: string; data?: unknown; }[]; }[]; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Descriptive error message */ message?: string; }; }; }; }; }; }; "/app-fees/{wallet}/claims": { get: { parameters: { query?: { /** @description Number of claims to return */ limit?: number; /** @description Pagination continuation token */ continuation?: string; }; path: { /** @description Wallet address to retrieve claim history for */ wallet: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description An array of past app fee claim transactions */ claims?: ({ claimId?: string; wallet?: string; recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; txHash?: string | null; status?: string; createdAt?: string; })[]; continuation?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Descriptive error message */ message?: string; }; }; }; }; }; }; "/chains": { get: { parameters: { query?: { includeChains?: string | null; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description An array of supported chains */ chains?: ({ id?: number; name?: string; displayName?: string; httpRpcUrl?: string; wsRpcUrl?: string; explorerUrl?: string; explorerName?: string; explorerPaths?: { transaction?: string; address?: string; } | null; /** @description If the network supports depositing to this chain, e.g. allows this chain to be set as the destination chain */ depositEnabled?: boolean; /** @enum {string} */ tokenSupport?: "All" | "Limited"; /** @description If relaying to and from this chain is disabled */ disabled?: boolean; /** @description The value limit at which the chain is partially disabled, if 0, the chain is not partially disabled. i.e, 1000000000000000000 to designate 1 ETH max withdrawal/deposit */ partialDisableLimit?: number; /** @description If the chain is experiencing issues where blocks are lagging behind or not being produced */ blockProductionLagging?: boolean; currency?: { id?: string; symbol?: string; name?: string; address?: string; decimals?: number; supportsBridging?: boolean; }; /** @description The fee in bps for withdrawing from this chain */ withdrawalFee?: number; /** @description The fee in bps for depositing to this chain */ depositFee?: number; /** @description If the chain has surge pricing enabled */ surgeEnabled?: boolean; /** @description An array of featured erc20 currencies */ featuredTokens?: { id?: string; symbol?: string; name?: string; address?: string; decimals?: number; /** @description If the currency supports bridging */ supportsBridging?: boolean; metadata?: { logoURI?: string; }; }[]; /** @description An array of erc20 currencies that the solver accepts directly as input */ erc20Currencies?: { id?: string; symbol?: string; name?: string; address?: string; decimals?: number; /** @description If the currency supports bridging */ supportsBridging?: boolean; /** @description If the erc20 currency supports permit via signature (EIP-2612) */ supportsPermit?: boolean; /** @description The fee in bps for withdrawing from this chain */ withdrawalFee?: number; /** @description The fee in bps for depositing to this chain */ depositFee?: number; /** @description If the chain has surge pricing enabled */ surgeEnabled?: boolean; }[]; /** @description An array of all currencies that the solver accepts directly as input, including native currency if applicable */ solverCurrencies?: { id?: string; symbol?: string; name?: string; address?: string; decimals?: number; }[]; /** @description The URL to the chain icon */ iconUrl?: string | null; /** @description The URL to the chain logo */ logoUrl?: string | null; /** @description Brand color code */ brandColor?: string | null; /** @description Relay contract addresses */ contracts?: { multicall3?: string; multicaller?: string; onlyOwnerMulticaller?: string; relayReceiver?: string; erc20Router?: string; approvalProxy?: string; v3?: { erc20Router?: string; approvalProxy?: string; }; }; /** * @description The type of VM the chain runs on * @enum {string} */ vmType?: "bvm" | "evm" | "svm" | "tvm" | "tonvm" | "suivm" | "hypevm" | "lvm"; explorerQueryParams?: { [key: string]: unknown; } | null; /** @description The chain id which the chain rolls up to. This is always set as Ethereum for L1 chains */ baseChainId?: number | null; /** @description If applicable, a status message for the chain */ statusMessage?: string | null; /** @description An array of solver addresses in use on the chain. (Note that there is currently only one address in use per chain) */ solverAddresses?: string[]; tags?: string[]; protocol?: { v2?: { chainId?: string | null; depository?: string | null; depositoryVault?: string | null; }; }; })[]; }; }; }; }; }; }; "/chains/liquidity": { get: { parameters: { query: { chainId: number; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description Solver balances per currency on the requested chain */ liquidity?: { chainId?: number; currencyId?: string; symbol?: string; address?: string; decimals?: number; /** @description Main EOA solver balance in the currency's smallest unit (e.g. wei for ETH) */ balance?: string; /** @description Solver balance expressed in USD */ amountUsd?: string; }[]; }; }; }; }; }; }; "/chains/health": { get: { parameters: { query?: { chainId?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description A boolean indicating if the chain is healthy (true) or not (false) */ healthy?: boolean; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; }; }; }; }; }; }; "/config": { get: { parameters: { query: { originChainId: string; destinationChainId: string; /** @description User address, when supplied returns user balance and max bridge amount */ user?: string; /** @description Restricts the user balance and capacity to a particular currency when supplied with a currency address. Defaults to native currency */ currency?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { enabled?: boolean; user?: { /** @description Balance on the origin chain in the native or supplied currency */ balance?: string; /** @description Maximum amount that the user can bridge after fees in the native or supplied currency */ maxBridgeAmount?: string; }; solver?: { address?: string; /** @description Balance of the solver on the destination chain. Denoted in wei */ balance?: string; /** @description How much of the given currency is available to be bridged per bridge request. Denoted in wei */ capacityPerRequest?: string; }; /** @description This denotes if the chain combination supports canonical plus bridging */ supportsExternalLiquidity?: boolean; }; }; }; }; }; }; "/config/v2": { get: { parameters: { query: { originChainId: string; destinationChainId: string; /** @description User address, when supplied returns user balance and max bridge amount */ user?: string; /** @description Restricts the user balance and capacity to a particular currency when supplied with a currency id. Defaults to the native currency of the destination chain. */ currency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { enabled?: boolean; user?: { /** @description Balance on the origin chain in the native or supplied currency */ balance?: string; /** @description Maximum amount that the user can bridge after fees in the native or supplied currency */ maxBridgeAmount?: string; }; /** @description Total fee in the native or supplied currency for the bridge operation */ fee?: string; solver?: { address?: string; /** @description Balance of the solver on the destination chain. Denoted in wei */ balance?: string; /** @description How much of the given currency is available to be bridged per bridge request. Denoted in wei */ capacityPerRequest?: string; }; /** @description This denotes if the chain combination supports canonical plus bridging */ supportsExternalLiquidity?: boolean; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; code?: string; }; }; }; }; }; }; "/execute/bridge": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; originChainId: number; destinationChainId: number; /** @enum {string} */ currency: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; /** @description Amount to bridge as the base amount (can be switched to exact input using the dedicated flag), denoted in wei */ amount: string; /** @description App fees to be charged for execution */ appFees?: string[]; source?: string; /** @description Address to send the refund to in the case of failure, if not specified then the receipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** @description Enable this to use the exact input rather than exact output */ useExactInput?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** * @description Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces. * @default true */ useForwarder?: boolean; /** @description Enable this to use permit (eip3009), only works on supported currency such as usdc */ usePermit?: boolean; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Deposit funds for executing the calls", * "kind": "transaction", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x03508bB71268BBA25ECaCC8F620e01866650532c", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x58109c", * "value": "995010715204139091", * "maxFeePerGas": "18044119466", * "maxPriorityFeePerGas": "2060264926", * "chainId": 1, * "gas": 21064 * }, * "check": { * "endpoint": "/intents/status?requestId=0x341b28c6467bfbffb72ad78ec5ddf1f77b8f9c79be134223e3248a7d4fcd43b6", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; /** * @example { * "gas": "384398515652800", * "gasCurrency": "eth", * "relayer": "-4989478842712964", * "relayerGas": "521157287036", * "relayerService": "-4990000000000000", * "relayerCurrency": "eth" * } */ fees?: { /** @description Origin chain gas fee in wei */ gas?: string; /** * @description Origin chain gas currency * @enum {string} */ gasCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd" | "avax" | "bnb" | "matic" | "sei" | "mnt" | "trx" | "bera" | "ip" | "s" | "lrds" | "celo" | "flow" | "ron" | "metis" | "btcn" | "core" | "sui" | "ton" | "cronos" | "hype" | "mcade" | "usd"; /** @description Combination of the relayerGas and relayerService to give you the full relayer fee in wei */ relayer?: string; /** @description Destination chain gas fee in wei */ relayerGas?: string; /** @description Fee paid to the relay solver in wei, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) */ relayerService?: string; /** * @description The currency for all relayer fees (gas and service) * @enum {string} */ relayerCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; app?: string; /** @enum {string} */ appCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; }; breakdown?: { /** @description Amount that will be bridged in the estimated time */ value?: string; /** @description Estimated bridge time in seconds */ timeEstimate?: number; }[]; /** * @example { * "userBalance": "54764083517303347", * "requiredToSolve": "995010521157287036" * } */ balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to bridge */ requiredToSolve?: string; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/execute/bridge/v2": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; originChainId: number; destinationChainId: number; /** @enum {string} */ currency: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; /** @description Amount to bridge as the base amount (can be switched to exact input using the dedicated flag), denoted in wei */ amount: string; /** @description App fees to be charged for execution */ appFees?: string[]; source?: string; /** @description Address to send the refund to in the case of failure, if not specified then the receipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** @description Enable this to use the exact input rather than exact output */ useExactInput?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** * @description Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces. * @default true */ useForwarder?: boolean; /** @description Enable this to use permit (eip3009), only works on supported currency such as usdc */ usePermit?: boolean; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Deposit funds for executing the calls", * "kind": "transaction", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x03508bB71268BBA25ECaCC8F620e01866650532c", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x58109c", * "value": "995010715204139091", * "maxFeePerGas": "18044119466", * "maxPriorityFeePerGas": "2060264926", * "chainId": 1, * "gas": 21064 * }, * "check": { * "endpoint": "/intents/status?requestId=0x341b28c6467bfbffb72ad78ec5ddf1f77b8f9c79be134223e3248a7d4fcd43b6", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; breakdown?: { /** @description Amount that will be bridged in the estimated time */ value?: string; /** @description Estimated bridge time in seconds */ timeEstimate?: number; }[]; /** * @example { * "userBalance": "54764083517303347", * "requiredToSolve": "995010521157287036" * } */ balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to bridge */ requiredToSolve?: string; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; code?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; code?: string; }; }; }; }; }; }; "/execute/call": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; originChainId: number; destinationChainId: number; txs?: { to?: string; value?: string; data?: string; }[]; /** @description App fees to be charged for execution */ appFees?: string[]; /** @description Address to send the refund to in the case of failure, if not specified then the receipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; source?: string; /** * @description Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces. * @default true */ useForwarder?: boolean; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Deposit funds for executing the calls", * "kind": "transaction", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x03508bB71268BBA25ECaCC8F620e01866650532c", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x58109c", * "value": "995010715204139091", * "maxFeePerGas": "18044119466", * "maxPriorityFeePerGas": "2060264926", * "chainId": 1, * "gas": 21064 * }, * "check": { * "endpoint": "/intents/status?requestId=0x341b28c6467bfbffb72ad78ec5ddf1f77b8f9c79be134223e3248a7d4fcd43b6", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; /** * @example { * "gas": "384398515652800", * "gasCurrency": "eth", * "relayer": "-4989478842712964", * "relayerGas": "521157287036", * "relayerService": "-4990000000000000", * "relayerCurrency": "eth" * } */ fees?: { /** @description Origin chain gas fee in wei */ gas?: string; /** * @description Origin chain gas currency * @enum {string} */ gasCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd" | "avax" | "bnb" | "matic" | "sei" | "mnt" | "trx" | "bera" | "ip" | "s" | "lrds" | "celo" | "flow" | "ron" | "metis" | "btcn" | "core" | "sui" | "ton" | "cronos" | "hype" | "mcade" | "usd"; /** @description Combination of the relayerGas and relayerService to give you the full relayer fee in wei */ relayer?: string; /** @description Destination chain gas fee in wei */ relayerGas?: string; /** @description Fee paid to the relay solver in wei, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) */ relayerService?: string; /** * @description The currency for all relayer fees (gas and service) * @enum {string} */ relayerCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; app?: string; /** @enum {string} */ appCurrency?: "anime" | "btc" | "cgt" | "dai" | "degen" | "eth" | "omi" | "pop" | "tg7" | "tia" | "usdc" | "usdc.e" | "usdt" | "sol" | "weth" | "apeeth" | "ape" | "g7" | "pengu" | "plume" | "wbtc" | "plumeusd" | "gun" | "somi" | "synd" | "xpl" | "usde" | "mon" | "usdh" | "musd" | "usdm" | "pyusd" | "cash" | "eusd" | "pusd"; }; /** * @example { * "value": "1000000000000000000", * "timeEstimate": 10 * } */ breakdown?: { /** @description Amount that will be executed in the estimated time */ value?: string; /** @description Estimated execution time in seconds */ timeEstimate?: number; }[]; /** * @example { * "userBalance": "54764083517303347", * "requiredToSolve": "995010521157287036" * } */ balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to bridge */ requiredToSolve?: string; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; tx?: { to?: string; value?: string; data?: string; }; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; tx?: { to?: string; value?: string; data?: string; }; }; }; }; }; }; }; "/execute/call/v2": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; originChainId: number; destinationChainId: number; txs?: { to?: string; value?: string; data?: string; }[]; /** @description App fees to be charged for execution */ appFees?: string[]; /** @description Address to send the refund to in the case of failure, if not specified then the receipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; source?: string; /** * @description Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces. * @default true */ useForwarder?: boolean; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Deposit funds for executing the calls", * "kind": "transaction", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x03508bB71268BBA25ECaCC8F620e01866650532c", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x58109c", * "value": "995010715204139091", * "maxFeePerGas": "18044119466", * "maxPriorityFeePerGas": "2060264926", * "chainId": 1, * "gas": 21064 * }, * "check": { * "endpoint": "/intents/status?requestId=0x341b28c6467bfbffb72ad78ec5ddf1f77b8f9c79be134223e3248a7d4fcd43b6", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** * @example { * "value": "1000000000000000000", * "timeEstimate": 10 * } */ breakdown?: { /** @description Amount that will be executed in the estimated time */ value?: string; /** @description Estimated execution time in seconds */ timeEstimate?: number; }[]; /** * @example { * "userBalance": "54764083517303347", * "requiredToSolve": "995010521157287036" * } */ balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to bridge */ requiredToSolve?: string; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; tx?: { to?: string; value?: string; data?: string; }; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; code?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; code?: string; tx?: { to?: string; value?: string; data?: string; }; }; }; }; }; }; }; "/execute/swap": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; originChainId: number; destinationChainId: number; originCurrency: string; destinationCurrency: string; /** @description Amount to swap as the base amount (can be switched to exact input/output using the dedicated flag), denoted in the smallest unit of the specified currency (e.g., wei for ETH) */ amount: string; /** * @description Whether to use the amount as the output or the input for the basis of the swap * @enum {string} */ tradeType: "EXACT_INPUT" | "EXACT_OUTPUT" | "EXPECTED_OUTPUT"; txs?: { to?: string; value?: string; data?: string; }[]; source?: string; /** @description Address to send the refund to in the case of failure, if not specified then the recipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** * @description Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces. * @default true */ useForwarder?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** @description Enable this to use permit (eip3009) when bridging, only works on supported currency such as usdc */ usePermit?: boolean; /** @description Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; appFees?: { /** @description Address that will receive the app fee */ recipient?: string; /** @description App fees to be charged for execution in basis points, e.g. 100 = 1% */ fee?: string; }[]; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Depositing funds to the relayer to execute the swap for USDC", * "kind": "transaction", * "requestId": "0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x0CccD55A5Ac261Ea29136831eeaA93bfE07f5Db6", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x00fad611", * "value": "1000000000000000000", * "maxFeePerGas": "12205661344", * "maxPriorityFeePerGas": "2037863396", * "chainId": 1 * }, * "check": { * "endpoint": "/intents/status?requestId=0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description A unique identifier for this step, tying all related transactions together */ requestId?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; breakdown?: { /** @description Amount that will be swapped in the estimated time */ value?: string; /** @description Estimated swap time in seconds */ timeEstimate?: number; }[]; balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to swap */ requiredToSolve?: string; }; /** @description A summary of the swap and what the user should expect to happen given an input */ details?: { /** @description The operation that will be performed, possible options are send, swap, wrap, unwrap, bridge */ operation?: string; /** @description Estimated swap time in seconds */ timeEstimate?: number; /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The address that deposited the funds */ sender?: string; /** @description The address that will be receiving the swap output */ recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description The difference between the input and output values, including fees */ totalImpact?: { usd?: string; percent?: string; }; /** @description The impact of the swap, not factoring in fees */ swapImpact?: { usd?: string; percent?: string; }; /** @description The swap rate which is equal to 1 input unit in the output unit, e.g. 1 USDC -> x ETH. This value can fluctuate based on gas and fees. */ rate?: string; slippageTolerance?: { /** @description The slippage tolerance on the origin chain swap */ origin?: { usd?: string; value?: string; percent?: string; }; /** @description The slippage tolerance on the destination chain swap */ destination?: { usd?: string; value?: string; percent?: string; }; }; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/execute/swap/multi-input": { post: { requestBody: { content: { "application/json": { /** @description User address that will make the deposit on a given origin chain */ user: string; recipient?: string; refundTo?: string; origins: { chainId: number; currency: string; amount: string; /** @description User address that will make the deposit on a given origin chain */ user?: string; }[]; destinationCurrency: string; destinationChainId: number; amount?: string; txs?: { to?: string; value?: string; data?: string; }[]; txsGasLimit?: number; partial?: boolean; /** @enum {string} */ tradeType: "EXACT_INPUT" | "EXACT_OUTPUT"; referrer?: string; gasLimitForDepositSpecifiedTxs?: number; originGasOverhead?: number; /** @description Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Depositing funds to the relayer to execute the swap for USDC", * "kind": "transaction", * "requestId": "0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x0CccD55A5Ac261Ea29136831eeaA93bfE07f5Db6", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x00fad611", * "value": "1000000000000000000", * "maxFeePerGas": "12205661344", * "maxPriorityFeePerGas": "2037863396", * "chainId": 1 * }, * "check": { * "endpoint": "/intents/status?requestId=0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "method": "GET" * } * } * ] * } * ] */ steps?: { /** @description Unique identifier tied to the step */ id?: string; /** @description A call to action for the step */ action?: string; /** @description A short description of the step and what it entails */ description?: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind?: string; /** @description A unique identifier for this step, tying all related transactions together */ requestId?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items?: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; }[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; breakdown?: { /** @description Amount that will be swapped in the estimated time */ value?: string; /** @description Estimated swap time in seconds */ timeEstimate?: number; }[]; balances?: { /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The minimum balance the user needs to have to swap */ requiredToSolve?: string; }; /** @description A summary of the swap and what the user should expect to happen given an input */ details?: { /** @description The operation that will be performed, possible options are send, swap, wrap, unwrap, bridge */ operation?: string; /** @description Estimated swap time in seconds */ timeEstimate?: number; /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The address that deposited the funds */ sender?: string; /** @description The address that will be receiving the swap output */ recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description The difference between the input and output values, including fees */ totalImpact?: { usd?: string; percent?: string; }; /** @description The impact of the swap, not factoring in fees */ swapImpact?: { usd?: string; percent?: string; }; /** @description The swap rate which is equal to 1 input unit in the output unit, e.g. 1 USDC -> x ETH. This value can fluctuate based on gas and fees. */ rate?: string; slippageTolerance?: { /** @description The slippage tolerance on the origin chain swap */ origin?: { usd?: string; value?: string; percent?: string; }; /** @description The slippage tolerance on the destination chain swap */ destination?: { usd?: string; value?: string; percent?: string; }; }; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/execute/permits": { post: { parameters: { query: { /** @description The permit signature. */ signature: string; }; }; requestBody: { content: { "application/json": { /** @description The kind of signature. This value is returned in the quote API steps body field. e.g eip3009 */ kind: string; /** @description The requestId of the quote this permit signature applies to. Returned in the quote API steps body field. */ requestId: string; /** * @description The API value returned from the quote API steps body field. * @enum {string} */ api?: "bridge" | "swap" | "user-swap"; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; steps?: { id?: string; action?: string; description?: string; kind?: string; items?: { status?: string; data?: { to?: string; data?: string; value?: string; chainId?: number; }; check?: { endpoint?: string; method?: string; }; }[]; }[]; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/quote": { /** * @deprecated * @description This endpoint is deprecated. Use /quote/v2 instead. */ post: { requestBody: { content: { "application/json": { /** * @description Address that is depositing funds on the origin chain and submitting transactions or signatures * @default 0x03508bb71268bba25ecacc8f620e01866650532c */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; /** @default 8453 */ originChainId: number; /** @default 10 */ destinationChainId: number; /** @default 0x0000000000000000000000000000000000000000 */ originCurrency: string; /** @default 0x0000000000000000000000000000000000000000 */ destinationCurrency: string; /** * @description Amount to swap as the base amount (can be switched to exact input/output using the dedicated flag), denoted in the smallest unit of the specified currency (e.g., wei for ETH) * @default 1000000000000000000 */ amount: string; /** * @description Whether to use the amount as the output or the input for the basis of the swap * @default EXACT_INPUT * @enum {string} */ tradeType: "EXACT_INPUT" | "EXACT_OUTPUT" | "EXPECTED_OUTPUT"; txs?: { to?: string; value?: string; data?: string; originalTxValue?: string; }[]; /** @description Total gas limit for the destination chain call transactions */ txsGasLimit?: number; /** @description Authorization list for EIP-7702 transactions to be executed on destination chain */ authorizationList?: { chainId: number; address: string; nonce: number; yParity: number; r: string; s: string; }[]; /** @description Additional data needed for specific routes */ additionalData?: { /** @description If the request originates from Bitcoin and the user is a P2SH address, the public key is needed to be able to generate the transaction data */ userPublicKey?: string; }; referrer?: string; referrerAddress?: string; /** @description Address to send the refund to in the case of failure, if not specified then the recipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** @description If set, the destination fill will include a gas topup to the recipient (only supported for EVM chains if the requested currency is not the gas currency on the destination chain) */ topupGas?: boolean; /** @description The destination gas topup amount in USD decimal format, e.g 100000 = $1. topupGas is required to be enabled. Defaults to 2000000 ($2) */ topupGasAmount?: string; /** * @description Enabling will send any swap surplus when doing exact output operations to the solver EOA, otherwise it will be swept to the recipient * @default false */ enableTrueExactOutput?: boolean; /** * @description Enable this to avoid direct transfers to the depository (only relevant for EVM and v2 protocol flow) * @default true */ explicitDeposit?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** @description Enable this to use permit (eip3009) when bridging, only works on supported currency such as usdc */ usePermit?: boolean; /** @description How long the permit remains valid, in seconds. Defaults to 10 minutes. */ permitExpiry?: number; /** @description Enable this to use a deposit address when bridging, in scenarios where calldata cannot be sent alongside the transaction. only works on native currency bridges. For new requests, EXACT_OUTPUT is only supported when strict is also enabled. */ useDepositAddress?: boolean; /** @description When used with useDepositAddress, enables a strict deposit address that is tied to a specific order. Underpayments fail and refund, while exact payments and overpayments fill. EXACT_OUTPUT deposit-address requests are only supported in strict mode. Open-ended deposit addresses remain the flexible path for variable deposited amounts. Requires a refundTo address. */ strict?: boolean; /** @description Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; /** @description Slippage tolerance for destination gas in the event that the deposit occurs after the order deadline, and more gas is required for the solver to execute the destination transaction. */ latePaymentSlippageTolerance?: string; appFees?: { /** @description Address that will receive the app fee */ recipient?: string; /** @description App fees to be charged for execution in basis points, e.g. 100 = 1% */ fee?: string; }[]; /** @description If the request involves specifying transactions to be executed during the deposit transaction, an explicit gas limit must be set when requesting the quote */ gasLimitForDepositSpecifiedTxs?: number; /** @description Force executing swap requests via the solver (by default, same-chain swap requests are self-executed) */ forceSolverExecution?: boolean; /** @description If the sponsor should pay for the fees associated with the request. Includes gas topup amounts. */ subsidizeFees?: boolean; /** @description The fee components to sponsor for swap execution kinds. Requires subsidizeFees=true. Defaults to all components when omitted. */ sponsoredFeeComponents?: ("execution" | "swap" | "relay" | "app")[]; /** @description The max subsidization amount in USDC decimal format, e.g 1000000 = $1. subsidizeFees must be enabled. The sponsor will cover fees up to this buffered cap and the user pays any remainder. */ maxSubsidizationAmount?: string; /** @description If the sponsor should pay for the solana rent associated with the request. */ subsidizeRent?: boolean; /** @description Swap sources to include for swap routing. */ includedSwapSources?: string[]; /** @description Swap sources to exclude for swap routing. */ excludedSwapSources?: string[]; /** @description Swap sources to include for swap routing on origin. */ includedOriginSwapSources?: string[]; /** @description Swap sources to include for swap routing on destination. */ includedDestinationSwapSources?: string[]; /** @description The gas overhead for the origin chain, this is used to calculate the gas fee for the origin chain when the solver is executing a gasless transaction on the origin chain */ originGasOverhead?: number; /** @description The payer to be set for deposit transactions on solana. This account must have enough for fees and rent. */ depositFeePayer?: string; /** @description Maximum number of hops to use in solana swap routing. Can reduce transaction size. */ maxRouteLength?: number; /** @description Prevents certain ATA creation instructions in solana routing */ useSharedAccounts?: boolean; /** @description Whether to include compute unit limit instruction for solana origin requests. */ includeComputeUnitLimit?: boolean; /** @description Whether to ignore price impact errors. */ overridePriceImpact?: boolean; /** @description Whether to disable origin swaps. */ disableOriginSwaps?: boolean; /** @description The rate to charge for fixed spread quotes. */ fixedRate?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Depositing funds to the relayer to execute the swap for USDC", * "kind": "transaction", * "requestId": "0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x0CccD55A5Ac261Ea29136831eeaA93bfE07f5Db6", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x00fad611", * "value": "1000000000000000000", * "maxFeePerGas": "12205661344", * "maxPriorityFeePerGas": "2037863396", * "chainId": 1 * }, * "check": { * "endpoint": "/intents/status?requestId=0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "method": "GET" * } * } * ] * } * ] */ steps?: ({ /** * @description Unique identifier tied to the step * @enum {string} */ id: "deposit" | "approve" | "authorize" | "authorize1" | "authorize2" | "swap" | "send"; /** @description A call to action for the step */ action: string; /** @description A short description of the step and what it entails */ description: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind: string; /** @description A unique identifier for this step, tying all related transactions together */ requestId?: string; /** @description The deposit address for the bridge request */ depositAddress?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; })[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Granular fee sponsorship details derived from the solver's internal sponsorship resolution. */ feeSponsorship?: { /** @description The quote-time sponsorship expectation for the request. */ quoted?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description The post-solve sponsorship outcome recorded for the request. */ actual?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description How much the sponsor ultimately paid, denominated in the sponsor payment currency. */ sponsorPayment?: { /** @description The sponsor payment amount. */ amount: string; /** @description The sponsor payment currency address. */ address: string; /** @description The sponsor payment chain id. */ chainId: number; }; }; }; /** @description A summary of the swap and what the user should expect to happen given an input */ details?: { /** @description The operation that will be performed, possible options are send, swap, wrap, unwrap, bridge */ operation?: string; /** @description The address that deposited the funds */ sender?: string; /** @description The address that will be receiving the swap output */ recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ refundCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyGasTopup?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description The difference between the input and output values, including fees */ totalImpact?: { usd?: string; percent?: string; }; /** @description The impact of the swap, not factoring in fees */ swapImpact?: { usd?: string; percent?: string; }; expandedPriceImpact?: { /** @description Cost to execute swap or bridge depending on available liquidity. This value can be negative (representing network rewards for improving liquidity distribution) */ swap?: { usd?: string; }; /** @description Fees paid to cover transaction execution costs */ execution?: { usd?: string; }; /** @description Fees paid to the protocol */ relay?: { usd?: string; }; /** @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app */ app?: { usd?: string; }; /** @description Fees paid by a sponsor for this request */ sponsored?: { usd?: string; }; }; /** @description The swap rate which is equal to 1 input unit in the output unit, e.g. 1 USDC -> x ETH. This value can fluctuate based on gas and fees. */ rate?: string; slippageTolerance?: { /** @description The slippage tolerance on the origin chain swap */ origin?: { usd?: string; value?: string; percent?: string; }; /** @description The slippage tolerance on the destination chain swap */ destination?: { usd?: string; value?: string; percent?: string; }; }; /** @description Estimated swap time in seconds */ timeEstimate?: number; /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The type of fallback route the request uses, if any */ fallbackType?: string; /** @description Whether the rate for the quote is fixed or dynamic (swap on origin/destination) */ isFixedRate?: boolean; /** @description The USD cost of the fixed rate vs market rate. Positive means the fixed rate is worse than market (user pays premium), negative means better (user benefits). Only present for fixed rate quotes. */ fixedRateFee?: { usd?: string; }; route?: { /** @description The route taken for the origin chain swap */ origin?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; /** @description The route taken for the origin chain swap */ destination?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; }; }; /** @description Protocol information for the quote */ protocol?: { v2?: { /** @description The underlying protocol order id */ orderId?: string; /** @description The underlying protocol order data */ orderData?: unknown; /** @description The details for the depository payment */ paymentDetails?: { /** @description The protocol chain id for the payment */ chainId?: string; /** @description The depository address */ depository?: string; /** @description The currency of the payment */ currency?: string; /** @description The amount of the payment */ amount?: string; }; }; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; errorCode?: string; errorData?: string; requestId?: string; approxSimulatedBlock?: number; failedCallData?: { from?: string; to?: string; data?: string; value?: string; }; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; errorCode?: string; }; }; }; /** @description Default Response */ 429: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; errorCode?: string; requestId?: string; }; }; }; }; }; }; "/quote/v2": { post: { requestBody: { content: { "application/json": { /** * @description Address that is depositing funds on the origin chain and submitting transactions or signatures * @default 0x03508bb71268bba25ecacc8f620e01866650532c */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; /** @default 8453 */ originChainId: number; /** @default 10 */ destinationChainId: number; /** @default 0x0000000000000000000000000000000000000000 */ originCurrency: string; /** @default 0x0000000000000000000000000000000000000000 */ destinationCurrency: string; /** * @description Amount to swap as the base amount (can be switched to exact input/output using the dedicated flag), denoted in the smallest unit of the specified currency (e.g., wei for ETH) * @default 1000000000000000000 */ amount: string; /** * @description Whether to use the amount as the output or the input for the basis of the swap * @default EXACT_INPUT * @enum {string} */ tradeType: "EXACT_INPUT" | "EXACT_OUTPUT" | "EXPECTED_OUTPUT"; txs?: { to?: string; value?: string; data?: string; originalTxValue?: string; }[]; /** @description Total gas limit for the destination chain call transactions */ txsGasLimit?: number; /** @description Authorization list for EIP-7702 transactions to be executed on destination chain */ authorizationList?: { chainId: number; address: string; nonce: number; yParity: number; r: string; s: string; }[]; /** @description Additional data needed for specific routes */ additionalData?: { /** @description If the request originates from Bitcoin and the user is a P2SH address, the public key is needed to be able to generate the transaction data */ userPublicKey?: string; }; referrer?: string; referrerAddress?: string; /** @description Address to send the refund to in the case of failure, if not specified then the recipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** @description If set, the destination fill will include a gas topup to the recipient (only supported for EVM chains if the requested currency is not the gas currency on the destination chain) */ topupGas?: boolean; /** @description The destination gas topup amount in USD decimal format, e.g 100000 = $1. topupGas is required to be enabled. Defaults to 2000000 ($2) */ topupGasAmount?: string; /** * @description Enabling will send any swap surplus when doing exact output operations to the solver EOA, otherwise it will be swept to the recipient * @default false */ enableTrueExactOutput?: boolean; /** * @description Enable this to avoid direct transfers to the depository (only relevant for EVM and v2 protocol flow) * @default true */ explicitDeposit?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** @description Enable this to use permit (eip3009) when bridging, only works on supported currency such as usdc */ usePermit?: boolean; /** @description How long the permit remains valid, in seconds. Defaults to 10 minutes. */ permitExpiry?: number; /** @description Enable this to use a deposit address when bridging, in scenarios where calldata cannot be sent alongside the transaction. only works on native currency bridges. For new requests, EXACT_OUTPUT is only supported when strict is also enabled. */ useDepositAddress?: boolean; /** @description When used with useDepositAddress, enables a strict deposit address that is tied to a specific order. Underpayments fail and refund, while exact payments and overpayments fill. EXACT_OUTPUT deposit-address requests are only supported in strict mode. Open-ended deposit addresses remain the flexible path for variable deposited amounts. Requires a refundTo address. */ strict?: boolean; /** @description Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; /** @description Slippage tolerance for destination gas in the event that the deposit occurs after the order deadline, and more gas is required for the solver to execute the destination transaction. */ latePaymentSlippageTolerance?: string; appFees?: { /** @description Address that will receive the app fee */ recipient?: string; /** @description App fees to be charged for execution in basis points, e.g. 100 = 1% */ fee?: string; }[]; /** @description If the request involves specifying transactions to be executed during the deposit transaction, an explicit gas limit must be set when requesting the quote */ gasLimitForDepositSpecifiedTxs?: number; /** @description Force executing swap requests via the solver (by default, same-chain swap requests are self-executed) */ forceSolverExecution?: boolean; /** @description If the sponsor should pay for the fees associated with the request. Includes gas topup amounts. */ subsidizeFees?: boolean; /** @description The fee components to sponsor for swap execution kinds. Requires subsidizeFees=true. Defaults to all components when omitted. */ sponsoredFeeComponents?: ("execution" | "swap" | "relay" | "app")[]; /** @description The max subsidization amount in USDC decimal format, e.g 1000000 = $1. subsidizeFees must be enabled. The sponsor will cover fees up to this buffered cap and the user pays any remainder. */ maxSubsidizationAmount?: string; /** @description If the sponsor should pay for the solana rent associated with the request. */ subsidizeRent?: boolean; /** @description Swap sources to include for swap routing. */ includedSwapSources?: string[]; /** @description Swap sources to exclude for swap routing. */ excludedSwapSources?: string[]; /** @description Swap sources to include for swap routing on origin. */ includedOriginSwapSources?: string[]; /** @description Swap sources to include for swap routing on destination. */ includedDestinationSwapSources?: string[]; /** @description The gas overhead for the origin chain, this is used to calculate the gas fee for the origin chain when the solver is executing a gasless transaction on the origin chain */ originGasOverhead?: number; /** @description The payer to be set for deposit transactions on solana. This account must have enough for fees and rent. */ depositFeePayer?: string; /** @description Maximum number of hops to use in solana swap routing. Can reduce transaction size. */ maxRouteLength?: number; /** @description Prevents certain ATA creation instructions in solana routing */ useSharedAccounts?: boolean; /** @description Whether to include compute unit limit instruction for solana origin requests. */ includeComputeUnitLimit?: boolean; /** @description Whether to ignore price impact errors. */ overridePriceImpact?: boolean; /** @description Whether to disable origin swaps. */ disableOriginSwaps?: boolean; /** @description The rate to charge for fixed spread quotes. */ fixedRate?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc) * @example [ * { * "id": "deposit", * "action": "Confirm transaction in your wallet", * "description": "Depositing funds to the relayer to execute the swap for USDC", * "kind": "transaction", * "requestId": "0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "items": [ * { * "status": "incomplete", * "data": { * "from": "0x0CccD55A5Ac261Ea29136831eeaA93bfE07f5Db6", * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x00fad611", * "value": "1000000000000000000", * "maxFeePerGas": "12205661344", * "maxPriorityFeePerGas": "2037863396", * "chainId": 1 * }, * "check": { * "endpoint": "/intents/status?requestId=0x92b99e6e1ee1deeb9531b5ad7f87091b3d71254b3176de9e8b5f6c6d0bd3a331", * "method": "GET" * } * } * ] * } * ] */ steps?: ({ /** * @description Unique identifier tied to the step * @enum {string} */ id: "deposit" | "approve" | "authorize" | "authorize1" | "authorize2" | "swap" | "send"; /** @description A call to action for the step */ action: string; /** @description A short description of the step and what it entails */ description: string; /** @description The kind of step, can either be a transaction or a signature. Transaction steps require submitting a transaction while signature steps require submitting a signature */ kind: string; /** @description A unique identifier for this step, tying all related transactions together */ requestId?: string; /** @description The deposit address for the bridge request */ depositAddress?: string; /** @description While uncommon it is possible for steps to contain multiple items of the same kind (transaction/signature) grouped together that can be executed simultaneously. */ items: { /** @description Can either be complete or incomplete, this can be locally controlled once the step item is completed (depending on the kind) and the check object (if returned) has been verified. Once all step items are complete, the bridge is complete */ status?: string; data?: unknown; /** @description Details an endpoint and a method you should poll to get confirmation, the endpoint should return a boolean success flag which can be used to determine if the step item is complete */ check?: { /** @description The endpoint to confirm that the step item was successfully completed */ endpoint?: string; /** @description The REST method to access the endpoint */ method?: string; }; }[]; })[]; fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Granular fee sponsorship details derived from the solver's internal sponsorship resolution. */ feeSponsorship?: { /** @description The quote-time sponsorship expectation for the request. */ quoted?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description The post-solve sponsorship outcome recorded for the request. */ actual?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description How much the sponsor ultimately paid, denominated in the sponsor payment currency. */ sponsorPayment?: { /** @description The sponsor payment amount. */ amount: string; /** @description The sponsor payment currency address. */ address: string; /** @description The sponsor payment chain id. */ chainId: number; }; }; }; /** @description A summary of the swap and what the user should expect to happen given an input */ details?: { /** @description The operation that will be performed, possible options are send, swap, wrap, unwrap, bridge */ operation?: string; /** @description The address that deposited the funds */ sender?: string; /** @description The address that will be receiving the swap output */ recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ refundCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyGasTopup?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description The difference between the input and output values, including fees */ totalImpact?: { usd?: string; percent?: string; }; /** @description The impact of the swap, not factoring in fees */ swapImpact?: { usd?: string; percent?: string; }; expandedPriceImpact?: { /** @description Cost to execute swap or bridge depending on available liquidity. This value can be negative (representing network rewards for improving liquidity distribution) */ swap?: { usd?: string; }; /** @description Fees paid to cover transaction execution costs */ execution?: { usd?: string; }; /** @description Fees paid to the protocol */ relay?: { usd?: string; }; /** @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app */ app?: { usd?: string; }; /** @description Fees paid by a sponsor for this request */ sponsored?: { usd?: string; }; }; /** @description The swap rate which is equal to 1 input unit in the output unit, e.g. 1 USDC -> x ETH. This value can fluctuate based on gas and fees. */ rate?: string; slippageTolerance?: { /** @description The slippage tolerance on the origin chain swap */ origin?: { usd?: string; value?: string; percent?: string; }; /** @description The slippage tolerance on the destination chain swap */ destination?: { usd?: string; value?: string; percent?: string; }; }; /** @description Estimated swap time in seconds */ timeEstimate?: number; /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; /** @description The type of fallback route the request uses, if any */ fallbackType?: string; /** @description Whether the rate for the quote is fixed or dynamic (swap on origin/destination) */ isFixedRate?: boolean; /** @description The USD cost of the fixed rate vs market rate. Positive means the fixed rate is worse than market (user pays premium), negative means better (user benefits). Only present for fixed rate quotes. */ fixedRateFee?: { usd?: string; }; route?: { /** @description The route taken for the origin chain swap */ origin?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; /** @description The route taken for the origin chain swap */ destination?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; }; }; /** @description Protocol information for the quote */ protocol?: { v2?: { /** @description The underlying protocol order id */ orderId?: string; /** @description The underlying protocol order data */ orderData?: unknown; /** @description The details for the depository payment */ paymentDetails?: { /** @description The protocol chain id for the payment */ chainId?: string; /** @description The depository address */ depository?: string; /** @description The currency of the payment */ currency?: string; /** @description The amount of the payment */ amount?: string; }; }; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; errorCode?: string; errorData?: string; requestId?: string; approxSimulatedBlock?: number; failedCallData?: { from?: string; to?: string; data?: string; value?: string; }; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; errorCode?: string; }; }; }; /** @description Default Response */ 429: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; errorCode?: string; requestId?: string; }; }; }; }; }; }; "/price": { post: { requestBody: { content: { "application/json": { /** @description Address that is depositing funds on the origin chain and submitting transactions or signatures */ user: string; /** @description Address that is receiving the funds on the destination chain, if not specified then this will default to the user address */ recipient?: string; originChainId: number; destinationChainId: number; originCurrency: string; destinationCurrency: string; /** @description Amount to swap as the base amount (can be switched to exact input/output using the dedicated flag), denoted in the smallest unit of the specified currency (e.g., wei for ETH) */ amount: string; /** * @description Whether to use the amount as the output or the input for the basis of the swap * @enum {string} */ tradeType: "EXACT_INPUT" | "EXACT_OUTPUT" | "EXPECTED_OUTPUT"; txs?: { to?: string; value?: string; data?: string; }[]; referrer?: string; /** @description Address to send the refund to in the case of failure, if not specified then the recipient address or user address is used */ refundTo?: string; /** * @deprecated * @description Always refund on the origin chain in case of any issues */ refundOnOrigin?: boolean; /** @description Enable this to use canonical+ bridging, trading speed for more liquidity */ useExternalLiquidity?: boolean; /** @description Enable this for specific fallback routes */ useFallbacks?: boolean; /** @description Enable this to use permit (eip3009) when bridging, only works on supported currency such as usdc */ usePermit?: boolean; /** @description Enable this to use a deposit address when bridging, in scenarios where calldata cannot be sent alongside the transaction. only works on native currency bridges. */ useDepositAddress?: boolean; /** @description Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; appFees?: { /** @description Address that will receive the app fee */ recipient?: string; /** @description App fees to be charged for execution in basis points, e.g. 100 = 1% */ fee?: string; }[]; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { fees?: { /** * @description Origin chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ gas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Combination of the relayerGas and relayerService to give you the full relayer fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayer?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Destination chain gas fee * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerGas?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the relay solver, note that this value can be negative (which represents network rewards for moving in a direction that optimizes liquidity distribution) * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ relayerService?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ app?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The amount of fees for the request that are subsidized by the request sponsor. Does not include deposit origin gas unless it is a permit based deposit. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ subsidized?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description A summary of the swap and what the user should expect to happen given an input */ details?: { /** @description The operation that will be performed, possible options are send, swap, wrap, unwrap, bridge */ operation?: string; /** @description The address that deposited the funds */ sender?: string; /** @description The address that will be receiving the swap output */ recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description The difference between the input and output values, including fees */ totalImpact?: { usd?: string; percent?: string; }; /** @description The impact of the swap, not factoring in fees */ swapImpact?: { usd?: string; percent?: string; }; /** @description The swap rate which is equal to 1 input unit in the output unit, e.g. 1 USDC -> x ETH. This value can fluctuate based on gas and fees. */ rate?: string; slippageTolerance?: { /** @description The slippage tolerance on the origin chain swap */ origin?: { usd?: string; value?: string; percent?: string; }; /** @description The slippage tolerance on the destination chain swap */ destination?: { usd?: string; value?: string; percent?: string; }; }; /** @description Estimated swap time in seconds */ timeEstimate?: number; /** @description The user's balance in the given currency on the origin chain */ userBalance?: string; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; errorCode?: string; errorData?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; errorCode?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; errorCode?: string; }; }; }; }; }; }; "/execute": { post: { parameters: { header: { /** @description Required API key for authentication. Contact the team for getting an API Key */ "x-api-key": string; }; }; requestBody: { content: { "application/json": { /** * @description The kind of gasless transaction to execute. Currently supported: rawCalls * @enum {string} */ executionKind: "rawCalls"; /** @description Raw call parameters for the gasless transaction */ data: { /** @description Chain ID of the EVM network */ chainId: number; /** @description Address of the contract to call */ to: string; /** @description Encoded function call data */ data: string; /** @description ETH value to send with the call (in wei) */ value: string; /** @description Authorization list for EIP-7702 transactions to be executed on destination chain */ authorizationList?: { chainId: number; address: string; nonce: number; yParity: number; r: string; s: string; }[]; }; /** @description Options related to gas fee sponsorship, app referrer and destination calls */ executionOptions: { /** @description The referrer of the app which is executing the gasless transaction */ referrer: string; /** @description If the app should pay for the fees associated with the request */ subsidizeFees: boolean; /** @description Destination execution data for the gasless transaction */ destinationChainExecutionData?: { /** @description Calls to be executed on the destination chain */ calls: { to?: string; value?: string; data?: string; }[]; /** @description Authorization list for EIP-7702 transactions to be executed on destination chain */ authorizationList?: { chainId: number; address: string; nonce: number; yParity: number; r: string; s: string; }[]; }; }; /** @description The request ID of the gasless transaction to execute */ requestId?: string; }; }; }; responses: { /** @description Transaction successfully queued for execution */ 200: { content: { "application/json": { /** @example Transaction submitted */ message?: string; /** @example 0xabc123... */ requestId?: string; }; }; }; /** @description Bad Request - Invalid input or simulation failure */ 400: { content: { "application/json": { /** @example to is required */ error?: string; } | { /** @example data is required */ error?: string; } | { /** @example value is required */ error?: string; } | { /** @example chainId is required */ error?: string; } | { /** @example authorizationList cannot be empty */ error?: string; } | { /** @example SimulationError */ error?: string; /** @example execution reverted: invalid opcode */ message?: string; }; }; }; /** @description Unauthorized - Missing or invalid API key or referrer */ 401: { content: { "application/json": { /** @example Unauthorized */ error?: string; }; }; }; /** @description Internal Server Error */ 500: { content: { "application/json": { /** @example Internal server error */ error?: string; }; }; }; }; }; }; "/fast-fill": { post: { parameters: { header: { /** @description Required API key for authentication. Contact the team for getting an API Key */ "x-api-key": string; }; }; requestBody: { content: { "application/json": { /** @description The request ID of the request that needs to be fast filled */ requestId: string; /** @description The input currency amount that the solver receives on origin */ solverInputCurrencyAmount?: string; /** @description Optional per-request USD limit. If the computed fill value exceeds this amount, the request is rejected. Must be lower than or equal to the app's available USDC balance. */ maxFillAmountUsd?: number; }; }; }; responses: { /** @description Request was successful. It was either queued or found to be already executed. */ 200: { content: { "application/json": { /** @example Request successfully queued for fast fill. */ message?: string; }; }; }; /** @description Bad Request - The request body contains invalid data. */ 400: { content: { "application/json": { /** @example Currency is required and could not be determined. */ message?: string; }; }; }; /** @description Unauthorized - Missing or invalid API key. */ 401: { content: { "application/json": { /** @example Unauthorized: Check API Key */ message?: string; }; }; }; /** @description Forbidden - No sponsoring wallet with app balance configured. */ 403: { content: { "application/json": { /** @example Forbidden: Fast fill requires a sponsoring wallet with app balance. */ message?: string; }; }; }; /** @description The requested requestId could not be found. */ 404: { content: { "application/json": { /** @example Request not found */ message?: string; }; }; }; /** @description Conflict - This request is already being processed. */ 409: { content: { "application/json": { /** @example Conflict: This request is already being processed. */ message?: string; }; }; }; /** @description Internal Server Error. */ 500: { content: { "application/json": { /** @example An internal server error occurred. */ message?: string; }; }; }; }; }; }; "/lives": { get: { parameters: { query?: { withReport?: string | null; skipPostgres?: string | null; skipRedis?: string | null; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { status?: string; report?: { version?: string; [key: string]: string | ({ status?: string; reason?: string | null; }) | undefined; }; }; }; }; /** @description Default Response */ 503: { content: { "application/json": { status?: string; report?: { version?: string; [key: string]: string | ({ status?: string; reason?: string | null; }) | undefined; }; }; }; }; }; }; }; "/intents/status": { get: { parameters: { query?: { /** @description A unique id representing the execution in the Relay system. You can obtain this id from the requests api or the check object within the step items. */ requestId?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @description Note that fallback is returned in the case of a refund * @enum {string} */ status?: "failure" | "fallback" | "pending" | "received" | "success"; details?: string; /** @description Incoming transaction hashes */ inTxHashes?: string[]; /** @description Outgoing transaction hashes */ txHashes?: string[]; /** @description The last timestamp the data was updated */ time?: number; originChainId?: number; destinationChainId?: number; }; }; }; }; }; }; "/intents/status/v2": { get: { parameters: { query?: { /** @description A unique id representing the execution in the Relay system. You can obtain this id from the requests api or the check object within the step items. */ requestId?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @enum {string} */ status?: "refund" | "waiting" | "depositing" | "failure" | "pending" | "success"; details?: string; /** @description Incoming transaction hashes */ inTxHashes?: string[]; /** @description Outgoing transaction hashes */ txHashes?: string[]; /** @description The last timestamp the data was updated */ time?: number; originChainId?: number; destinationChainId?: number; /** @description The timestamp when the quote request was created */ quoteCreatedAt?: number; }; }; }; }; }; }; "/intents/status/v3": { get: { parameters: { query?: { /** @description A unique id representing the execution in the Relay system. You can obtain this id from the requests api or the check object within the step items. */ requestId?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @enum {string} */ status?: "refund" | "waiting" | "depositing" | "failure" | "pending" | "submitted" | "success"; details?: string; /** @description Incoming transaction hashes */ inTxHashes?: string[]; /** @description Outgoing transaction hashes */ txHashes?: string[]; /** @description The last timestamp the data was updated */ updatedAt?: number; originChainId?: number; destinationChainId?: number; /** @description The timestamp when the quote request was created */ quoteCreatedAt?: number; }; }; }; }; }; }; "/requests/{requestId}/signature": { get: { parameters: { path: { requestId: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { requestData?: { originChainId?: number; originUser?: string; originCurrency?: string; originAmount?: string; originTransferDestination?: string; destinationChainId?: number; destinationUser?: string; }; signature?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; }; }; }; }; }; }; "/requests/{requestId}/signature/v2": { get: { parameters: { path: { requestId: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { requestData?: { originChainId?: number; originUser?: string; originCurrency?: string; destinationChainId?: number; destinationUser?: string; destinationCurrency?: string; }; signature?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; }; }; }; }; }; }; "/requests": { get: { parameters: { query?: { limit?: string; continuation?: string; user?: string; hash?: string; originChainId?: number; destinationChainId?: number; privateChainsToInclude?: string; id?: string; startTimestamp?: number; endTimestamp?: number; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @example { * "id": "0xddd6c1a0340e940b7be4f5a4be076df8b7ec7de7b18f9ec6efe4bfffd2f21cf6", * "status": "success", * "user": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "recipient": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "data": { * "fees": { * "gas": "2622672522398", * "fixed": "10000000000000", * "price": "39000000000000" * }, * "feesUsd": { * "gas": "9057", * "fixed": "34534", * "price": "134684" * }, * "inTxs": [ * { * "fee": "423218878900", * "data": { * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x5869d8", * "from": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "value": "2651622672522398" * }, * "hash": "0xe53021eaa63d100b08338197d26953e2219bcbad828267dd936c549ff643aad7", * "type": "onchain", * "chainId": 7777777, * "timestamp": 1713290377 * } * ], * "currency": "eth", * "price": "2600000000000000", * "usesExternalLiquidity": false, * "outTxs": [ * { * "fee": "1837343366480", * "data": { * "to": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "data": "0x5869d8", * "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "value": "2600000000000000" * }, * "hash": "0x9da7bc54dfe6229d6980fd62250d472f23dfe0f41a1cdc870c81a08b3445f254", * "type": "onchain", * "chainId": 8453, * "timestamp": 1713290383 * } * ] * }, * "createdAt": "2024-04-16T17:59:39.702Z", * "updatedAt": "2024-04-16T17:59:46.145Z" * } */ requests?: ({ id?: string; /** * @description Note that fallback is returned in the case of a refund * @enum {string} */ status?: "failure" | "fallback" | "depositing" | "pending" | "received" | "success"; user?: string; recipient?: string; data?: { fees?: { /** @description Estimated gas cost required for execution, in wei */ gas?: string; /** @description The fixed fee which is always added to execution, in wei */ fixed?: string; /** @description The dynamic fee which is a result of the chain and the amount, in wei */ price?: string; }; feesUsd?: { gas?: string; fixed?: string; price?: string; }; inTxs?: { /** @description Total fees in wei */ fee?: string; data?: unknown; stateChanges?: unknown; hash?: string; /** @description The type of transaction, always set to onchain */ type?: string; chainId?: number; timestamp?: number; }[]; currency?: string; feeCurrency?: string; appFees?: { recipient?: string; amount?: string; }[]; metadata?: { sender?: string; recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; rate?: string; }; price?: string; usesExternalLiquidity?: boolean; timeEstimate?: number; outTxs?: { /** @description Total fees in wei */ fee?: string; data?: unknown; stateChanges?: unknown; hash?: string; /** @description The type of transaction, always set to onchain */ type?: string; chainId?: number; timestamp?: number; }[]; }; createdAt?: string; updatedAt?: string; })[]; continuation?: string; }; }; }; }; }; }; "/requests/v2": { get: { parameters: { query?: { limit?: number; continuation?: string; user?: string; hash?: string; originChainId?: number; destinationChainId?: number; privateChainsToInclude?: string; id?: string; orderId?: string; includeOrderData?: boolean; startTimestamp?: number; endTimestamp?: number; startBlock?: number; endBlock?: number; /** @description Get all requests for a single chain in either direction. Setting originChainId and/or destinationChainId will override this parameter. */ chainId?: string; referrer?: string; /** @description Filter requests by deposit address. Returns all requests associated with this deposit address. */ depositAddress?: string; /** @description When filtering by id or depositAddress, also return child transactions (e.g. duplicates, retries, refunds) linked to the original request. */ includeChildRequests?: boolean; /** @description Filter requests by status. */ status?: "success" | "failure" | "refund" | "pending" | "depositing"; /** @description Filter requests by the API key that created them. */ apiKey?: string; sortBy?: "createdAt" | "updatedAt"; sortDirection?: "asc" | "desc"; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** * @example { * "id": "0xddd6c1a0340e940b7be4f5a4be076df8b7ec7de7b18f9ec6efe4bfffd2f21cf6", * "status": "success", * "user": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "recipient": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "depositAddress": { * "address": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "depositAddressType": "open", * "depositor": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea" * }, * "data": { * "subsidizedRequest": false, * "fees": { * "gas": "2622672522398", * "fixed": "10000000000000", * "price": "39000000000000" * }, * "feesUsd": { * "gas": "9057", * "fixed": "34534", * "price": "134684" * }, * "inTxs": [ * { * "fee": "423218878900", * "data": { * "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "data": "0x5869d8", * "from": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "value": "2651622672522398" * }, * "hash": "0xe53021eaa63d100b08338197d26953e2219bcbad828267dd936c549ff643aad7", * "type": "onchain", * "chainId": 7777777, * "timestamp": 1713290377 * } * ], * "currency": "eth", * "price": "2600000000000000", * "usesExternalLiquidity": false, * "outTxs": [ * { * "fee": "1837343366480", * "data": { * "to": "0x456bccd1eaa77d5cc5ace1723b5dcca00d67cdea", * "data": "0x5869d8", * "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", * "value": "2600000000000000" * }, * "hash": "0x9da7bc54dfe6229d6980fd62250d472f23dfe0f41a1cdc870c81a08b3445f254", * "type": "onchain", * "chainId": 8453, * "timestamp": 1713290383 * } * ] * }, * "moonpayId": "9dc342c3-538b-4731-aba7-13ed89acc7ae", * "createdAt": "2024-04-16T17:59:39.702Z", * "updatedAt": "2024-04-16T17:59:46.145Z" * } */ requests?: ({ id?: string; /** * @description Note that fallback is returned in the case of a refund * @enum {string} */ status?: "refund" | "waiting" | "depositing" | "failure" | "pending" | "success"; user?: string; recipient?: string; depositAddress?: ({ address?: string; /** @enum {string} */ depositAddressType?: "strict" | "open"; depositor?: string | null; }) | null; data?: { /** @description Slippage tolerance for the swap. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage */ slippageTolerance?: string; /** @enum {string} */ failReason?: "UNKNOWN" | "SLIPPAGE" | "AMOUNT_TOO_LOW_TO_REFUND" | "DEPOSIT_ADDRESS_MISMATCH" | "DEPOSIT_CHAIN_MISMATCH" | "INCORRECT_DEPOSIT_CURRENCY" | "DOUBLE_SPEND" | "SOLVER_CAPACITY_EXCEEDED" | "DEPOSITED_AMOUNT_TOO_LOW_TO_FILL" | "NEGATIVE_NEW_AMOUNT_AFTER_FEES" | "NO_QUOTES" | "MISSING_REVERT_DATA" | "REVERSE_SWAP_FAILED" | "GENERATE_SWAP_FAILED" | "TOO_LITTLE_RECEIVED" | "EXECUTION_REVERTED" | "NEW_CALLDATA_INCLUDES_HIGHER_RENT_FEE" | "TRANSACTION_REVERTED" | "ORIGIN_CURRENCY_MISMATCH" | "NO_INTERNAL_SWAP_ROUTES_FOUND" | "SWAP_USES_TOO_MUCH_GAS" | "INSUFFICIENT_FUNDS_FOR_RENT" | "SPONSOR_BALANCE_TOO_LOW" | "ORDER_EXPIRED" | "ORDER_IS_CANCELLED" | "TRANSFER_FROM_FAILED" | "TRANSFER_FAILED" | "SIGNATURE_EXPIRED" | "INVALID_SIGNATURE" | "INSUFFICIENT_NATIVE_TOKENS_SUPPLIED" | "TRANSFER_AMOUNT_EXCEEDS_ALLOWANCE" | "TRANSFER_AMOUNT_EXCEEDS_BALANCE" | "INVALID_SENDER" | "ACCOUNT_ABSTRACTION_INVALID_NONCE" | "ACCOUNT_ABSTRACTION_SIGNATURE_ERROR" | "SEAPORT_INEXACT_FRACTION" | "TOKEN_NOT_TRANSFERABLE" | "ZERO_SELL_AMOUNT" | "MINT_NOT_ACTIVE" | "ERC_1155_TOO_MANY_REQUESTED" | "INCORRECT_PAYMENT" | "INVALID_GAS_PRICE" | "FLUID_DEX_ERROR" | "ORDER_ALREADY_FILLED" | "SEAPORT_INVALID_FULFILLER" | "INVALID_SIGNER" | "MINT_QUANTITY_EXCEEDS_MAX_PER_WALLET" | "MINT_QUANTITY_EXCEEDS_MAX_SUPPLY" | "JUPITER_INVALID_TOKEN_ACCOUNT" | "INVALID_NONCE" | "ACCOUNT_ABSTRACTION_GAS_LIMIT" | "CONTRACT_PAUSED" | "SWAP_IMPACT_TOO_HIGH" | "INSUFFICIENT_POOL_LIQUIDITY" | "TTL_EXPIRED" | "N/A"; /** @enum {string} */ refundFailReason?: "AMOUNT_TOO_LOW_TO_REFUND" | "NEGATIVE_NEW_AMOUNT_AFTER_FEES" | "SWAP_CURRENCY_NOT_ON_ORIGIN"; failedTxHash?: string; failedTxBlockNumber?: number; failedCallData?: { from?: string; to?: string; data?: string; value?: string; }; subsidizedRequest?: boolean; fees?: { /** @description Estimated gas cost required for execution, in wei */ gas?: string; /** @description The fixed fee which is always added to execution, in wei */ fixed?: string; /** @description The dynamic fee which is a result of the chain and the amount, in wei */ price?: string; /** @description The fee taken by the API gateway, in wei */ gateway?: string; }; feesUsd?: { gas?: string; fixed?: string; price?: string; gateway?: string; }; inTxs?: ({ /** @description Total fees in wei */ fee?: string; data?: unknown; stateChanges?: unknown; hash?: string; block?: number; /** @description The type of transaction, always set to onchain */ type?: string; chainId?: number; timestamp?: number; /** @enum {string} */ status?: "success" | "failure"; })[]; currency?: string; currencyObject?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; feeCurrency?: string; feeCurrencyObject?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; appFeeCurrencyObject?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ refundCurrencyData?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; appFees?: { recipient?: string; bps?: string; amount?: string; amountUsd?: string; amountUsdCurrent?: string; }[]; subsidizedFee?: { origin?: { amount?: string; address?: string; chainId?: number; }; sponsor?: { amount?: string; address?: string; chainId?: number; }; amountUsd?: string; amountUsdCurrent?: string; }; /** @description Granular fee sponsorship details derived from the solver's internal sponsorship resolution. */ feeSponsorship?: { /** @description The quote-time sponsorship expectation for the request. */ quoted?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description The post-solve sponsorship outcome recorded for the request. */ actual?: { /** @description The normalized sponsorship buckets selected for this request. */ selectedComponents: ("execution" | "swap" | "relay" | "app")[]; /** @description The requested sponsorship cap in USD micro-units, when one was configured for the request. */ maxSubsidizationAmount?: string; /** @description Whether the configured sponsorship cap limited the selected fee buckets for this phase. */ capHit: boolean; /** @description Per-bucket sponsorship details for the four sponsorable fee components. */ components: { /** @description Execution fee sponsorship details. */ execution: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Swap fee sponsorship details. */ swap: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description Relay protocol fee sponsorship details. */ relay: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; /** @description App fee sponsorship details. */ app: { /** @description Whether this fee bucket was selected for sponsorship. */ selected: boolean; /** * @description The full amount charged for this fee bucket. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ total: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket covered by the sponsor. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsored: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The portion of this fee bucket that remained user-paid. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPays: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; }; }; /** * @description The total amount sponsored for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ sponsoredTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @description The total amount the user paid across the sponsorable fee buckets for this phase. * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ userPaysTotal: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** @description How much the sponsor ultimately paid, denominated in the sponsor payment currency. */ sponsorPayment?: { /** @description The sponsor payment amount. */ amount: string; /** @description The sponsor payment currency address. */ address: string; /** @description The sponsor payment chain id. */ chainId: number; }; }; }; /** @description Breakdown of price impact by component, with quoted and actual values */ expandedPriceImpact?: { /** @description Price impact as estimated at quote time */ quoted?: { /** @description Cost to execute swap or bridge depending on available liquidity. This value can be negative (representing network rewards for improving liquidity distribution) */ swap?: { usd?: string; }; /** @description Fees paid to cover transaction execution costs */ execution?: { usd?: string; }; /** @description Fees paid to the protocol */ relay?: { usd?: string; }; /** @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app */ app?: { usd?: string; }; /** @description Fees paid by a sponsor for this request */ sponsored?: { usd?: string; }; }; /** @description Price impact as computed at fill time */ actual?: { /** @description Cost to execute swap or bridge depending on available liquidity. This value can be negative (representing network rewards for improving liquidity distribution) */ swap?: { usd?: string; }; /** @description Fees paid to cover transaction execution costs */ execution?: { usd?: string; }; /** @description Fees paid to the protocol */ relay?: { usd?: string; }; /** @description Fees paid to the app. Currency will be the same as the relayer fee currency. This needs to be claimed later by the app owner and is not immediately distributed to the app */ app?: { usd?: string; }; /** @description Fees paid by a sponsor for this request */ sponsored?: { usd?: string; }; }; } | null; paidAppFees?: { recipient?: string; bps?: string; amount?: string; amountUsd?: string; amountUsdCurrent?: string; }[]; metadata?: { sender?: string; recipient?: string; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "amountUsdCurrent": "30.901612", * "minimumAmount": "30454920" * } */ currencyIn?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; amountUsdCurrent?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "amountUsdCurrent": "30.901612", * "minimumAmount": "30454920" * } */ currencyOut?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; amountUsdCurrent?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ currencyGasTopup?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; rate?: string; route?: { /** @description The route taken for the origin chain swap */ origin?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; /** @description The route taken for the origin chain swap */ destination?: { /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ inputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; /** * @example { * "currency": { * "chainId": 8453, * "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", * "symbol": "USDC", * "name": "USD Coin", * "decimals": 6, * "metadata": { * "logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png", * "verified": false, * "isNative": false * } * }, * "amount": "30754920", * "amountFormatted": "30.75492", * "amountUsd": "30.901612", * "minimumAmount": "30454920" * } */ outputCurrency?: { currency?: { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; }; amount?: string; amountFormatted?: string; amountUsd?: string; minimumAmount?: string; }; router?: string; includedSwapSources?: string[]; }; }; }; price?: string; usesExternalLiquidity?: boolean; timeEstimate?: number; triggeredByCcm?: boolean; triggeredByFastFill?: boolean; outTxs?: ({ /** @description Total fees in wei */ fee?: string; data?: unknown; stateChanges?: unknown; hash?: string; block?: number; /** @description The type of transaction, always set to onchain */ type?: string; chainId?: number; timestamp?: number; /** @enum {string} */ status?: "success" | "failure"; })[]; }; protocol?: { orderId?: string; /** @enum {string} */ hubType?: "onchain"; /** @description True if the deposit is recoverable via the protocol withdrawal flow. */ isWithdrawable?: boolean; solver?: { address?: string; protocolChainId?: string; chainId?: number; }; deposit?: { origin?: { amount?: string; chainId?: number; currency?: string; depositor?: string; depository?: string; onchainId?: string; transactionId?: string; }; relay?: { amount?: string; chainId?: number; currency?: string; hash?: string; /** @enum {string} */ operation?: "mint"; tokenMetadata?: { decimals?: number; name?: string; symbol?: string; }; }; attestation?: { execution?: { actions?: string[]; idempotencyKey?: string; }; attestations?: { oracleChainId?: string; oracleContract?: string; signerAddress?: string; signature?: string; }[]; }; }; settlement?: { destination?: { fills?: { chainId?: number; transactionId?: string; }[]; refunds?: { chainId?: number; transactionId?: string; }[]; }; relay?: { amount?: string; chainId?: number; currency?: string; hash?: string; /** @enum {string} */ operation?: "transfer" | "burn" | "mixed"; solver?: string; tokenMetadata?: { decimals?: number; name?: string; symbol?: string; }; }; attestation?: { execution?: { actions?: string[]; idempotencyKey?: string; }; attestations?: { oracleChainId?: string; oracleContract?: string; signerAddress?: string; signature?: string; }[]; }; }; }; orderData?: unknown; referrer?: string; moonpayId?: string; createdAt?: string; updatedAt?: string; })[]; continuation?: string; }; }; }; }; }; }; "/requests/metadata": { post: { requestBody: { content: { "application/json": { requestId: string; additionalMetadata: { moonPayId: string; }; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/transactions/index": { post: { requestBody: { content: { "application/json": { chainId: string; txHash: string; requestId?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 404: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/transactions/single": { post: { requestBody: { content: { "application/json": { requestId: string; chainId: string; tx: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/transactions/deposit-address/reindex": { post: { requestBody: { content: { "application/json": { chainId: number; depositAddress: string; sweep?: boolean; targetChainId?: number; currency?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; triggeredCurrencies?: { currency?: string; symbol?: string; balance?: string; }[]; checkedCurrencies?: number; failedCurrencies?: number; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 403: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 404: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 429: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 503: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/swap-sources": { get: { parameters: { query?: { /** @description Chain ID to get swap sources for */ chainId?: number; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description An array of swap sources */ sources?: string[]; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Descriptive error message */ message?: string; }; }; }; }; }; }; "/loadforge.txt": { get: { responses: { /** @description Verification string */ 200: { content: { "application/json": string; }; }; /** @description Default Response */ 404: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/conduit/install": { post: { parameters: { header: { "X-CONDUIT-INTEGRATION-SECRET": string; }; }; requestBody: { content: { "application/json": { /** @enum {string} */ event: "INSTALLED" | "UNINSTALLED" | "NETWORK_UPDATED" | "NETWORK_DELETED"; id: string; chain_id?: number; parent_chain_id?: number; /** @enum {string} */ type?: "OPTIMISM" | "ARBITRUM"; name?: string; rpc?: string; ws?: string; explorer?: string; logo_url?: string; icon_url?: string; brand_color?: string; native_currency?: { name?: string; symbol?: string; decimals?: number; contract?: string; }; contracts?: Record; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { id?: string; status?: string; eta_seconds?: number; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { failure_reason?: string; code?: string; status?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; code?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { failure_reason?: string; code?: string; status?: string; }; }; }; }; }; }; "/prices/rates": { get: { responses: { /** @description Default Response */ 200: { content: { "application/json": { AVAX?: number; ETH?: number; DEGEN?: number; MATIC?: number; USDC?: number; XAI?: number; SIPHER?: number; TG7?: number; POP?: number; OMI?: number; TOPIA?: number; ANIME?: number; APE?: number; G?: number; G7?: number; POWER?: number; SYND?: number; }; }; }; }; }; }; "/currencies/v1": { post: { requestBody?: { content: { "application/json": { /** @description Return default currencies */ defaultList?: boolean; /** @description Chain IDs to search for currencies */ chainIds?: number[]; /** @description Search term for currencies */ term?: string; /** @description Address of the currency contract */ address?: string; /** @description ID to search for a currency group */ currencyId?: string; /** @description List of token addresses, like: chainId:address */ tokens?: string[]; /** @description Filter verified currencies */ verified?: boolean; /** @description Limit the number of results */ limit?: number; /** @description Include all chains for a currency when filtering by chainId and address */ includeAllChains?: boolean; /** @description Uses 3rd party API's to search for a token, in case relay does not have it indexed */ useExternalSearch?: boolean; /** @description Returns only currencies supported with deposit address bridging */ depositAddressOnly?: boolean; }; }; }; responses: { /** @description List of currencies */ 200: { content: { "application/json": (({ groupID?: string; chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; /** @enum {string} */ vmType?: "bvm" | "evm" | "svm" | "tvm" | "tonvm" | "suivm" | "hypevm" | "lvm"; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; })[])[]; }; }; }; }; }; "/currencies/v2": { post: { requestBody?: { content: { "application/json": { /** @description Return default currencies */ defaultList?: boolean; /** @description Chain IDs to search for currencies */ chainIds?: number[]; /** @description Search term for currencies */ term?: string; /** @description Address of the currency contract */ address?: string; /** @description ID to search for a currency */ currencyId?: string; /** @description List of token addresses, like: chainId:address */ tokens?: string[]; /** @description Filter verified currencies */ verified?: boolean; /** * @description Limit the number of results * @default 20 */ limit?: number; /** @description Include all chains for a currency when filtering by chainId and address */ includeAllChains?: boolean; /** @description Uses 3rd party API's to search for a token, in case relay does not have it indexed */ useExternalSearch?: boolean; /** @description Returns only currencies supported with deposit address bridging */ depositAddressOnly?: boolean; }; }; }; responses: { /** @description List of currencies */ 200: { content: { "application/json": ({ chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; /** @enum {string} */ vmType?: "bvm" | "evm" | "svm" | "tvm" | "tonvm" | "suivm" | "hypevm" | "lvm"; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; })[]; }; }; }; }; }; "/currencies/token/price": { get: { parameters: { query: { /** @description Token address to get price for */ address: string; /** @description Chain ID of the token */ chainId: number; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description Token price in USD */ price?: number; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Error message */ error?: string; }; }; }; }; }; }; "/currencies/token/price/v2": { get: { parameters: { query: { /** @description Token address to get price for */ address: string; /** @description Chain ID of the token */ chainId: number; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { /** @description Token price in USD */ price?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Error message */ error?: string; }; }; }; }; }; }; "/currencies/trending": { get: { parameters: { query?: { chainId?: number; sortBy?: "relay24hBuyTxCount" | "relay24hBuyUsdVolume" | "coingecko6hTrending"; limit?: number; }; }; responses: { /** @description List of currencies */ 200: { content: { "application/json": ({ chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; /** @enum {string} */ vmType?: "bvm" | "evm" | "svm" | "tvm" | "tonvm" | "suivm" | "hypevm" | "lvm"; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; })[]; }; }; }; }; }; "/chains/{chainId}/currencies/{address}": { get: { parameters: { path: { chainId: number; address: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { chainId?: number; address?: string; symbol?: string; name?: string; decimals?: number; /** @enum {string} */ vmType?: "bvm" | "evm" | "svm" | "tvm" | "tonvm" | "suivm" | "hypevm" | "lvm"; metadata?: { logoURI?: string; verified?: boolean; isNative?: boolean; }; price?: number; marketCap?: string; fdv?: string; liquidity?: string; codexChainName?: string; codexChainShortName?: string; createdAt?: number; socialLinks?: { website?: string; twitter?: string; coingecko?: string; discord?: string; }; volume?: { "24h"?: { usd?: number; }; }; priceChange?: { "5m"?: string; "1h"?: string; "4h"?: string; "24h"?: string; }; pair?: { address?: string; token0?: { address?: string; symbol?: string; metadata?: { logoURI?: string; }; }; token1?: { address?: string; symbol?: string; metadata?: { logoURI?: string; }; }; }; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Error message */ message?: string; }; }; }; }; }; }; "/chains/{chainId}/currencies/{address}/chart": { get: { parameters: { query?: { /** @description Timeframe for chart data can be either of the following */ timeframe?: "5M" | "1H" | "4H" | "24H" | "7D" | "30D" | "MAX"; }; path: { chainId: number; address: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { traders?: number[]; transactions?: number[]; t?: number[]; o?: number[]; h?: number[]; l?: number[]; c?: number[]; volume?: string[]; buyers?: number[]; buys?: number[]; buyVolume?: string[]; sellers?: number[]; sells?: number[]; sellVolume?: string[]; sumTraders?: number; sumNonUniqueTraders?: number; sumSellers?: number; sumBuyers?: number; sumTransactions?: number; sumSells?: number; sumBuys?: number; sumVolume?: string; sumSellVolume?: string; sumBuyVolume?: string; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { /** @description Error message */ message?: string; }; }; }; }; }; }; "/provision/chain": { post: { parameters: { header: { "X-RELAY-INTEGRATION-SECRET": string; }; }; requestBody: { content: { "application/json": { chainId: number; parentChainId: number; /** @enum {string} */ type: "OPTIMISM" | "ARBITRUM"; name: string; rpc: string; ws: string; explorer?: string; logoUrl?: string; iconurl?: string; brandColor?: string; nativeCurrency: { name?: string; symbol?: string; decimals?: number; contract?: string; }; contracts: Record; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { id?: string; status?: string; etaSeconds?: number; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; code?: string; status?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; code?: string; status?: string; }; }; }; /** @description Default Response */ 500: { content: { "application/json": { message?: string; code?: string; status?: string; }; }; }; }; }; }; "/sanctioned/{address}": { get: { parameters: { path: { address: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { sanctioned?: boolean; }; }; }; }; }; }; "/wallets/screen": { post: { parameters: { header: { /** @description Required API key for authentication. Contact the team for getting an API Key */ "x-api-key": string; }; }; requestBody: { content: { "application/json": { wallets: { address?: string; chainId?: string; }[]; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; wallets?: unknown[]; }; }; }; /** @description Default Response */ 400: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/wallets/screen/override": { post: { requestBody: { content: { "application/json": { wallet: string; chainId?: string; /** @enum {string} */ action: "ALLOW" | "BLOCK" | "NONE"; reason?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/wallets/screen/info": { get: { parameters: { query: { wallet: string; chainId?: string; source?: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { message?: string; isBlocked?: boolean; isTrmBlocked?: boolean | null; isHackBountyBlocked?: boolean; isChainalysisBlocked?: boolean; override?: string; reason?: string | null; }; }; }; /** @description Default Response */ 401: { content: { "application/json": { message?: string; }; }; }; }; }; }; "/withdrawals/attest-deposit": { post: { requestBody: { content: { "application/json": { chainId: number; transactionId: string; }; }; }; responses: { /** @description Default Response */ 200: { content: never; }; }; }; }; "/withdrawals/request": { post: { requestBody: { content: { "application/json": { chainId: string; currency: string; amount: string; ownerChainId: string; owner: string; recipient: string; nonce?: string; additionalData?: unknown; signature?: string; }; }; }; responses: { /** @description Default Response */ 200: { content: never; }; }; }; }; "/withdrawals/status": { get: { parameters: { query: { id: string; }; }; responses: { /** @description Default Response */ 200: { content: { "application/json": { status?: string; transaction?: { [key: string]: unknown; } | null; withdrawal?: { [key: string]: unknown; } | null; reason?: string | null; }; }; }; }; }; }; } export type webhooks = Record; export interface components { schemas: {}; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export type external = Record; export type operations = Record; //# sourceMappingURL=api.d.ts.map