{
  "openapi": "3.1.0",
  "x-mcp": {
    "enabled": true
  },
  "info": {
    "title": "Garden API",
    "version": "2.0.0",
    "description": "API specification for various endpoints."
  },
  "servers": [
    {
      "url": "https://{environment}.garden.finance/v2",
      "variables": {
        "environment": {
          "default": "api",
          "enum": [
            "api",
            "testnet.api"
          ]
        }
      }
    }
  ],
  "security": [
    {
      "garden-app-id": []
    }
  ],
  "components": {
    "securitySchemes": {
      "garden-app-id": {
        "type": "apiKey",
        "name": "garden-app-id",
        "in": "header",
        "description": "If you do not yet have an app ID, please follow these [steps](/api-reference/setup)."
      }
    },
    "schemas": {
      "HTLCSchemaName": {
        "type": "string",
        "title": "htlc",
        "enum": [
          "evm:htlc_erc20",
          "evm:htlc",
          "solana:htlc",
          "starknet:htlc_erc20",
          "solana:htlc_spltoken"
        ]
      },
      "TokenSchemaName": {
        "type": "string",
        "title": "token",
        "enum": [
          "evm:erc20",
          "starknet:erc20"
        ]
      },
      "SchemaName": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/HTLCSchemaName"
          },
          {
            "$ref": "#/components/schemas/TokenSchemaName"
          }
        ]
      },
      "Chain": {
        "oneOf": [
          {
            "type": "string",
            "title": "mainnet",
            "description": "Mainnet",
            "enum": [
              "arbitrum",
              "ethereum",
              "bitcoin",
              "base",
              "bnbchain",
              "botanix",
              "citrea",
              "hyperevm",
              "litecoin",
              "monad",
              "solana",
              "starknet",
              "tron"
            ]
          },
          {
            "type": "string",
            "title": "testnet",
            "description": "Testnet",
            "enum": [
              "arbitrum_sepolia",
              "alpen_signet",
              "alpen_testnet",
              "base_sepolia",
              "bitcoin_testnet",
              "bnbchain_testnet",
              "citrea_testnet",
              "ethereum_sepolia",
              "litecoin_testnet",
              "monad_testnet",
              "solana_testnet",
              "starknet_sepolia",
              "tron_shasta",
              "xrpl_testnet"
            ]
          }
        ]
      },
      "ChainWithId": {
        "oneOf": [
          {
            "type": "string",
            "title": "mainnet",
            "description": "Mainnet",
            "enum": [
              "evm:42161",
              "bitcoin",
              "evm:1",
              "evm:143",
              "evm:3637",
              "evm:4114",
              "evm:56",
              "evm:8453",
              "evm:999",
              "litecoin",
              "solana:101",
              "starknet:23448594291968334",
              "tron:728126428"
            ]
          },
          {
            "type": "string",
            "title": "testnet",
            "description": "Testnet",
            "enum": [
              "evm:421614",
              "alpen_signet",
              "bitcoin",
              "evm:10143",
              "evm:11155111",
              "evm:5115",
              "evm:8150",
              "evm:84532",
              "evm:97",
              "litecoin",
              "solana:103",
              "starknet:393402133025997798000961",
              "tron:2494104990",
              "xrpl"
            ]
          }
        ]
      },
      "ChainWithAssets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChainVerbose"
          },
          {
            "type": "object",
            "properties": {
              "assets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AssetVerbose"
                }
              }
            }
          }
        ]
      },
      "ChainVerbose": {
        "type": "object",
        "title": "Chain Information",
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/Chain"
          },
          "name": {
            "type": "string",
            "example": "Arbitrum"
          },
          "id": {
            "$ref": "#/components/schemas/ChainWithId"
          },
          "native_asset_id": {
            "type": "string",
            "example": "arbitrum:eth"
          },
          "icon": {
            "type": "string"
          },
          "explorer_url": {
            "type": "string"
          },
          "confirmation_target": {
            "type": "integer"
          },
          "source_timelock": {
            "type": "string"
          },
          "destination_timelock": {
            "type": "string"
          },
          "supported_htlc_schemas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HTLCSchemaName"
            }
          },
          "supported_token_schemas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenSchemaName"
            }
          }
        }
      },
      "AffiliateFeeAsset": {
        "oneOf": [
          {
            "type": "string",
            "title": "mainnet",
            "description": "Mainnet",
            "enum": [
              "arbitrum:usdc",
              "arbitrum:cbbtc",
              "base:usdc",
              "base:cbbtc",
              "ethereum:usdc",
              "ethereum:cbbtc"
            ]
          },
          {
            "type": "string",
            "title": "testnet",
            "description": "Testnet",
            "enum": [
              "arbitrum_sepolia:usdc",
              "base_sepolia:usdc",
              "citrea_testnet:usdc",
              "citrea_testnet:cbbtc",
              "ethereum_sepolia:usdc",
              "monad_testnet:usdc",
              "monad_testnet:cbbtc"
            ]
          }
        ]
      },
      "AffiliateEarningsItem": {
        "type": "object",
        "properties": {
          "total_earnings": {
            "type": "string",
            "description": "Total earnings in asset units for the affiliate."
          },
          "total_earnings_usd": {
            "type": "string",
            "description": "Total earnings in USD for the mentioned asset for the affiliate."
          },
          "affiliate": {
            "type": "string",
            "description": "The address that will receive the earnings."
          },
          "asset": {
            "$ref": "#/components/schemas/AffiliateFeeAsset"
          },
          "token_address": {
            "type": "string",
            "description": "Contract address for the affiliate fee asset."
          },
          "claim_amount": {
            "type": "string",
            "description": "Amount available for claiming in asset units. Only included if the affiliate has not yet claimed their earnings."
          },
          "claim_amount_usd": {
            "type": "string",
            "description": "Amount available for claiming in USD. Only included if the affiliate has not yet claimed their earnings."
          },
          "claim_signature": {
            "type": "string",
            "description": "Signature for claiming earnings. Only included if the affiliate has not yet claimed their earnings."
          },
          "claim_contract": {
            "type": "string",
            "description": "Contract address for claiming earnings. Only included if the affiliate has not yet claimed their earnings."
          }
        },
        "required": [
          "total_earnings",
          "total_earnings_usd",
          "affiliate",
          "asset",
          "token_address"
        ]
      },
      "AffiliateEarningsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "required": [
              "result"
            ],
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AffiliateEarningsItem"
                }
              }
            }
          }
        ]
      },
      "Asset": {
        "oneOf": [
          {
            "type": "string",
            "title": "mainnet",
            "description": "Mainnet",
            "enum": [
              "arbitrum:wbtc",
              "ethereum:wbtc",
              "arbitrum:ibtc",
              "base:cbbtc",
              "bitcoin:btc",
              "bnbchain:btcb",
              "botanix:btc",
              "citrea:cbtc",
              "ethereum:cbbtc",
              "ethereum:usdt",
              "hyperevm:ubtc",
              "litecoin:ltc",
              "monad:mon",
              "monad:usdc",
              "solana:cbbtc",
              "solana:sol",
              "solana:usdc",
              "starknet:wbtc",
              "tron:usdt"
            ]
          },
          {
            "type": "string",
            "title": "testnet",
            "description": "Testnet",
            "enum": [
              "arbitrum_sepolia:wbtc",
              "ethereum_sepolia:wbtc",
              "alpen_signet:btc",
              "alpen_testnet:sbtc",
              "alpen_testnet:usdc",
              "arbitrum_sepolia:ibtc",
              "arbitrum_sepolia:seed",
              "arbitrum_sepolia:usdc",
              "base_sepolia:cbltc",
              "base_sepolia:cbxrp",
              "base_sepolia:ibtc",
              "base_sepolia:usdc",
              "base_sepolia:usdt",
              "base_sepolia:wbtc",
              "bitcoin_testnet:btc",
              "bnbchain_testnet:wbtc",
              "citrea_testnet:cbbtc",
              "citrea_testnet:cbtc",
              "citrea_testnet:usdc",
              "citrea_testnet:usdt",
              "citrea_testnet:wbtc",
              "citrea_testnet:wcbtc",
              "ethereum_sepolia:usdc",
              "litecoin_testnet:ltc",
              "monad_testnet:cbbtc",
              "monad_testnet:usdc",
              "solana_testnet:cbbtc",
              "solana_testnet:sol",
              "solana_testnet:usdc",
              "starknet_sepolia:wbtc",
              "tron_shasta:usdt",
              "tron_shasta:wbtc",
              "xrpl_testnet:xrp"
            ]
          }
        ]
      },
      "AssetName": {
        "oneOf": [
          {
            "type": "string",
            "title": "mainnet",
            "description": "Mainnet",
            "enum": [
              "Wrapped Bitcoin:WBTC",
              "Binance Bitcoin:BTCB",
              "Bitcoin:BTC",
              "Botanix Bitcoin:BTC",
              "Citrea Bitcoin:cBTC",
              "Coinbase Wrapped Bitcoin:cbBTC",
              "Litecoin:LTC",
              "Monad:MON",
              "Solana:SOL",
              "Tether USD:USDT",
              "USD Coin:USDC",
              "Unit Bitcoin:uBTC",
              "iBTC:iBTC"
            ]
          },
          {
            "type": "string",
            "title": "testnet",
            "description": "Testnet",
            "enum": [
              "Wrapped Bitcoin:WBTC",
              "Alpen:BTC",
              "Bitcoin:BTC",
              "Citrea Bitcoin:CBTC",
              "Coinbase Wrapped Bitcoin:cbBTC",
              "Coinbase Wrapped Litecoin:cbLTC",
              "Coinbase Wrapped XRP:cbXRP",
              "Litecoin",
              "Seed:SEED",
              "Signet BTC:sBTC",
              "Solana:SOL",
              "Tether USD",
              "Tether USD:USDT",
              "USD Coin:USDC",
              "Wrapped Citrea Bitcoin:WCBTC",
              "XRP",
              "iBTC:iBTC"
            ]
          }
        ]
      },
      "Contract": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          },
          "schema": {
            "$ref": "#/components/schemas/SchemaName"
          }
        },
        "nullable": true
      },
      "HTLCSchema": {
        "type": "object",
        "description": "Always **null** for UTXO-based chains. **Example:** Bitcoin.",
        "properties": {
          "address": {
            "type": "string"
          },
          "schema": {
            "$ref": "#/components/schemas/HTLCSchemaName"
          }
        }
      },
      "TokenSchema": {
        "type": "object",
        "description": "Always **null** for native assets with no address. **Example:** ETH on Ethereum.",
        "properties": {
          "address": {
            "type": "string"
          },
          "schema": {
            "$ref": "#/components/schemas/TokenSchemaName"
          }
        }
      },
      "AssetVerbose": {
        "type": "object",
        "title": "Asset Information",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Asset"
          },
          "name": {
            "$ref": "#/components/schemas/AssetName"
          },
          "chain": {
            "$ref": "#/components/schemas/ChainWithId"
          },
          "icon": {
            "type": "string"
          },
          "htlc": {
            "$ref": "#/components/schemas/HTLCSchema"
          },
          "token": {
            "$ref": "#/components/schemas/TokenSchema"
          },
          "decimals": {
            "type": "integer",
            "example": 8
          },
          "min_amount": {
            "type": "string"
          },
          "max_amount": {
            "type": "string"
          },
          "price": {
            "type": "integer",
            "example": 1
          }
        }
      },
      "SourceAccount": {
        "type": "object",
        "required": [
          "owner",
          "amount",
          "asset"
        ],
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/Asset"
          },
          "owner": {
            "type": "string",
            "description": "Source address of the user."
          },
          "delegate": {
            "type": "string",
            "nullable": true,
            "description": "**(Optional)** Executes the swap on behalf of the user. Use this when calling Garden from your own smart contract; provide your contract’s address here."
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "DestinationAccount": {
        "type": "object",
        "required": [
          "owner",
          "amount",
          "asset"
        ],
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/Asset"
          },
          "owner": {
            "type": "string",
            "description": "Destination address of the user."
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "OrderStatus": {
        "type": "string",
        "title": "status",
        "description": "The status of the order.",
        "enum": [
          "not-initiated",
          "in-progress",
          "completed",
          "expired",
          "refunded"
        ]
      },
      "Swap": {
        "type": "object",
        "properties": {
          "created_at": {
            "description": "Timestamp of order creation.",
            "type": "string"
          },
          "swap_id": {
            "description": "A unique identifier for the swap.",
            "type": "string"
          },
          "chain": {
            "$ref": "#/components/schemas/Chain"
          },
          "asset": {
            "$ref": "#/components/schemas/Asset"
          },
          "initiator": {
            "description": "Address transferring funds.",
            "type": "string"
          },
          "redeemer": {
            "description": "Address receiving funds.",
            "type": "string"
          },
          "delegate": {
            "description": "Address that performed the swap for the user, if applicable.",
            "type": "string"
          },
          "timelock": {
            "description": "Timelock for the swap (in block numbers).",
            "type": "integer"
          },
          "filled_amount": {
            "description": "Amount that has been filled.\n**Default:** \"0\"",
            "type": "string"
          },
          "asset_price": {
            "description": "Price of the asset during swap.",
            "type": "integer"
          },
          "amount": {
            "type": "string"
          },
          "secret_hash": {
            "description": "SHA256 of the secret.",
            "type": "string"
          },
          "secret": {
            "description": "The secret used to lock the funds on-chain.\n**Default:** \"\" *(empty string)*",
            "type": "string"
          },
          "instant_refund_tx": {
            "description": "**(Optional)** Instant refund transaction bytes. Only available for source swaps on UTXO-based chains. **Example:** Bitcoin.",
            "type": "string"
          },
          "initiate_tx_hash": {
            "description": "On-chain transaction hash of initiate.\n**Default:** \"\" *(empty string)*",
            "type": "string"
          },
          "redeem_tx_hash": {
            "description": "On-chain transaction hash of redeem.\n**Default:** \"\" *(empty string)*",
            "type": "string"
          },
          "refund_tx_hash": {
            "description": "On-chain transaction hash of refund.\n**Default:** \"\" *(empty string)*",
            "type": "string"
          },
          "initiate_block_number": {
            "description": "Block number of the initiate transaction.\n**Default:** \"0\"",
            "type": "string"
          },
          "redeem_block_number": {
            "description": "Block number of the redeem transaction.\n**Default:** \"0\"",
            "type": "string"
          },
          "refund_block_number": {
            "description": "Block number of the refund transaction.\n**Default:** \"0\"",
            "type": "string"
          },
          "required_confirmations": {
            "description": "Number of confirmations required.",
            "type": "integer"
          },
          "current_confirmations": {
            "description": "Number of confirmations received so far.\n**Default:** 0",
            "type": "integer"
          },
          "initiate_timestamp": {
            "type": "string",
            "nullable": true
          },
          "redeem_timestamp": {
            "type": "string",
            "nullable": true
          },
          "refund_timestamp": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "Order": {
        "type": "object",
        "properties": {
          "order_id": {
            "description": "A unique identifier for the order.",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp of order creation.",
            "type": "string"
          },
          "source_swap": {
            "$ref": "#/components/schemas/Swap"
          },
          "destination_swap": {
            "$ref": "#/components/schemas/Swap"
          },
          "nonce": {
            "description": "Nonce for the order.",
            "type": "string"
          },
          "deadline": {
            "description": "Unix timestamp after which the order expires.",
            "type": "integer"
          },
          "affiliate_fees": {
            "type": "array",
            "description": "Integrator fees associated with the order.",
            "items": {
              "$ref": "#/components/schemas/AffiliateFee"
            }
          },
          "integrator": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "solver_id": {
            "type": "string"
          }
        }
      },
      "Address": {
        "type": "object",
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/Chain"
          },
          "address": {
            "type": "string",
            "example": "0x057ff5cacab1d75df04e8e9d349f0d8dd92e87b989244b934d9b09bc99fc4173"
          }
        }
      },
      "Liquidity": {
        "type": "object",
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/Asset"
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "balance": {
            "type": "string",
            "example": "3134508350"
          },
          "virtual_balance": {
            "type": "string",
            "example": "3134508350"
          },
          "readable_balance": {
            "type": "string",
            "example": "31.34508350"
          },
          "fiat_value": {
            "type": "string",
            "example": "3709623.9781701067"
          }
        }
      },
      "Solver": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            }
          },
          "liquidity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Liquidity"
            }
          },
          "policy": {
            "$ref": "#/components/schemas/RoutePolicy"
          }
        }
      },
      "AffiliateFee": {
        "type": "object",
        "required": [],
        "properties": {
          "address": {
            "description": "Address of the affiliate.",
            "type": "string"
          },
          "asset": {
            "$ref": "#/components/schemas/AffiliateFeeAsset"
          },
          "fee": {
            "type": "integer",
            "description": "In BIPS (base index points), 100 bips = 1%.",
            "example": 10
          }
        }
      },
      "OrderRequest": {
        "type": "object",
        "required": [
          "source",
          "destination"
        ],
        "properties": {
          "source": {
            "$ref": "#/components/schemas/SourceAccount"
          },
          "destination": {
            "$ref": "#/components/schemas/DestinationAccount"
          },
          "slippage": {
            "type": "integer",
            "description": "**(Optional)** In BIPS (base index points), 100 bips = 1%. When not specified, the slippage configured in app settings is used, or zero if no default is configured.",
            "example": 50
          },
          "nonce": {
            "type": "string",
            "description": "**(Optional)** Custom nonce for the order. If not provided, one will be generated.",
            "example": "1736152215456"
          },
          "solver_id": {
            "type": "string",
            "description": "**(Optional)** Specific solver ID to use for this order.",
            "example": "0x9dd9c2d208b07bf9a4ef9ca311f36d7185749635"
          },
          "affiliate_fees": {
            "type": "array",
            "description": "**(Optional)** Add an [affiliate fee](/developers/affiliate-fees) to each swap, defined in bips (100 bips = 1%).",
            "items": {
              "$ref": "#/components/schemas/AffiliateFee"
            }
          }
        }
      },
      "InitiateActionRequest": {
        "type": "object",
        "title": "Initiate",
        "description": "Initiate the swap on the source chain. The request body is chain-specific — refer to the **Initiate** section above for EVM, Solana, and Starknet request formats."
      },
      "RedeemActionRequest": {
        "type": "object",
        "title": "Redeem",
        "properties": {
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "secret"
        ]
      },
      "RefundActionRequest": {
        "type": "object",
        "title": "Refund"
      },
      "InstantRefundActionRequest": {
        "type": "object",
        "title": "Instant Refund",
        "properties": {
          "signatures": {
            "type": "array",
            "description": "A Schnorr signature generated by the initiator over the instant refund hash obtained from the [instant refund hash endpoint](./get-instant-refund-hash). This signature represents the initiator’s partial spend authorization for the Taproot script controlling the initiator's UTXO. Submitting this signature allows the solver to later provide its own Schnorr signature to fully satisfy the Taproot instant refund leaf and broadcast the refund transaction instantly, without requiring further initiator interaction.",
            "items": {
              "type": "string"
            },
            "example": [
              "0x1234567890123456789012345678901234567890123456789012345678901234"
            ]
          }
        },
        "required": [
          "signatures"
        ]
      },
      "PaginatedOrders": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order"
            }
          },
          "page": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          },
          "total_items": {
            "type": "integer"
          },
          "per_page": {
            "type": "integer"
          }
        }
      },
      "Response": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "Ok",
              "Error"
            ]
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          }
        }
      },
      "BitcoinInitiateRequest": {
        "type": "object",
        "required": [
          "order_id",
          "to",
          "amount"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "description": "A unique identifier for the order."
          },
          "to": {
            "type": "string",
            "description": "The address of the recipient."
          },
          "amount": {
            "type": "integer",
            "description": "The amount to be sent."
          }
        }
      },
      "EVMTransaction": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "chain_id": {
            "type": "integer"
          },
          "data": {
            "type": "string"
          },
          "gas_limit": {
            "type": "integer"
          }
        }
      },
      "EVMTypedData": {
        "type": "object",
        "properties": {
          "types": {
            "properties": {
              "EIP712Domain": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "message": {
            "type": "object",
            "properties": {
              "redeemer": {
                "type": "string"
              },
              "timelock": {
                "type": "integer"
              },
              "amount": {
                "type": "integer"
              },
              "secretHash": {
                "type": "string"
              }
            }
          },
          "domain": {
            "properties": {
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "chainId": {
                "type": "string"
              },
              "verifyingContract": {
                "type": "string"
              }
            }
          }
        }
      },
      "EVMInitiateRequest": {
        "type": "object",
        "required": [
          "order_id",
          "approval_transaction",
          "initiate_transaction",
          "typed_data"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "description": "A unique identifier for the order."
          },
          "approval_transaction": {
            "nullable": true,
            "$ref": "#/components/schemas/EVMTransaction",
            "description": "Can be `null`, if user has already given approval."
          },
          "initiate_transaction": {
            "$ref": "#/components/schemas/EVMTransaction"
          },
          "typed_data": {
            "$ref": "#/components/schemas/EVMTypedData"
          }
        }
      },
      "StarknetTransaction": {
        "type": "object",
        "properties": {
          "calldata": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "selector": {
            "type": "string",
            "example": "0x2aed25fcd0101fcece997d93f9d0643dfa3fbd4118cae16bf7d6cd533577c28"
          },
          "to": {
            "type": "string",
            "example": "0x2448040b22b27f5a814756e67da005701e525658b162d4f0343d2e011bc6dad"
          }
        }
      },
      "StarknetTypedData": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "object",
            "properties": {
              "chainId": {
                "type": "string",
                "example": "SN_SEPOLIA"
              },
              "name": {
                "type": "string",
                "example": "HTLC"
              },
              "revision": {
                "type": "string",
                "example": "1"
              },
              "version": {
                "type": "string",
                "example": "1"
              }
            }
          },
          "message": {
            "type": "object",
            "properties": {
              "amount": {
                "type": "object",
                "properties": {
                  "high": {
                    "type": "string",
                    "example": "0x0"
                  },
                  "low": {
                    "type": "string",
                    "example": "0x2710"
                  }
                }
              },
              "redeemer": {
                "type": "string",
                "example": "2359173398359146340421805800175969296622423265566697169584810299233559668096"
              },
              "secretHash": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  1208377717,
                  3328794282,
                  2017733490,
                  901540904,
                  1502396360,
                  718117041,
                  1704147999,
                  3475506811
                ]
              },
              "timelock": {
                "type": "string",
                "example": "2880"
              }
            }
          },
          "primaryType": {
            "type": "string",
            "example": "Initiate"
          },
          "types": {
            "type": "object",
            "properties": {
              "Initiate": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              },
              "StarknetDomain": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "StarknetInitiateRequest": {
        "type": "object",
        "required": [
          "order_id",
          "approval_transaction",
          "initiate_transaction",
          "typed_data"
        ],
        "properties": {
          "order_id": {
            "description": "A unique identifier for the order.",
            "type": "string"
          },
          "approval_transaction": {
            "nullable": true,
            "$ref": "#/components/schemas/StarknetTransaction",
            "description": "Can be `null`, if user has already given approval."
          },
          "initiate_transaction": {
            "nullable": true,
            "$ref": "#/components/schemas/StarknetTransaction"
          },
          "typed_data": {
            "$ref": "#/components/schemas/StarknetTypedData"
          }
        }
      },
      "SolanaInitiateRequest": {
        "type": "object",
        "required": [
          "order_id",
          "versioned_tx"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "description": "A unique identifier for the order."
          },
          "versioned_tx": {
            "type": "string"
          },
          "versioned_tx_gasless": {
            "type": "string"
          }
        }
      },
      "SuiInitiateRequest": {
        "type": "object",
        "required": [
          "order_id",
          "ptb_bytes"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "description": "A unique identifier for the order."
          },
          "ptb_bytes": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "InitiateRequest": {
        "anyOf": [
          {
            "title": "bitcoin",
            "$ref": "#/components/schemas/BitcoinInitiateRequest"
          },
          {
            "title": "litecoin",
            "$ref": "#/components/schemas/BitcoinInitiateRequest"
          },
          {
            "title": "evm",
            "$ref": "#/components/schemas/EVMInitiateRequest"
          },
          {
            "title": "tron",
            "$ref": "#/components/schemas/EVMInitiateRequest"
          },
          {
            "title": "starknet",
            "$ref": "#/components/schemas/StarknetInitiateRequest"
          },
          {
            "title": "solana",
            "$ref": "#/components/schemas/SolanaInitiateRequest"
          },
          {
            "title": "sui",
            "$ref": "#/components/schemas/SuiInitiateRequest"
          }
        ]
      },
      "QuoteAsset": {
        "type": "object",
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/Asset"
          },
          "amount": {
            "type": "string",
            "example": "1000000",
            "description": "Raw asset amount in the smallest unit (e.g., satoshis for BTC, wei for ETH)."
          },
          "display": {
            "type": "string",
            "example": "0.01",
            "description": "Amount after applying decimal places (e.g., 0.01 BTC)."
          },
          "value": {
            "type": "string",
            "example": "100",
            "description": "Fiat value (in USD) equivalent of the displayed amount."
          }
        }
      },
      "Quote": {
        "type": "object",
        "properties": {
          "solver_id": {
            "description": "A unique identifier for the solver who provided the quote.",
            "type": "string"
          },
          "estimated_time": {
            "type": "integer",
            "description": "Estimated swap time in seconds."
          },
          "source": {
            "$ref": "#/components/schemas/QuoteAsset"
          },
          "destination": {
            "$ref": "#/components/schemas/QuoteAsset"
          },
          "slippage": {
            "type": "integer",
            "description": "Slippage defined for this quote.",
            "example": 50
          },
          "fee": {
            "type": "integer",
            "description": "In BIPS (base index points), where 100 bips = 1%.",
            "example": 30
          },
          "fixed_fee": {
            "type": "string",
            "description": "In USD.",
            "example": "0.05"
          }
        }
      },
      "SolverLiquidity": {
        "type": "object",
        "properties": {
          "solver_id": {
            "type": "string"
          },
          "liquidity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Liquidity"
            }
          }
        }
      },
      "CreateOrderResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "$ref": "#/components/schemas/InitiateRequest"
              }
            }
          }
        ]
      },
      "QuoteResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Quote"
                }
              }
            }
          }
        ]
      },
      "LiquidityResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SolverLiquidity"
                }
              }
            }
          }
        ]
      },
      "ResponseString": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "string"
              }
            }
          }
        ]
      },
      "InstantRefundHashResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "string"
              }
            }
          }
        ]
      },
      "Schema": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/SchemaName"
          },
          "schema": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "SchemaResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "$ref": "#/components/schemas/Schema"
              }
            }
          }
        ]
      },
      "SchemasResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Schema"
                }
              }
            }
          }
        ]
      },
      "AssetsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AssetVerbose"
                }
              }
            }
          }
        ]
      },
      "ChainsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChainWithAssets"
                }
              }
            }
          }
        ]
      },
      "OrdersResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "$ref": "#/components/schemas/PaginatedOrders"
              }
            }
          }
        ]
      },
      "OrderResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "required": [
              "result"
            ],
            "properties": {
              "result": {
                "$ref": "#/components/schemas/Order"
              }
            }
          }
        ]
      },
      "ActionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "required": [
              "result"
            ],
            "properties": {
              "result": {
                "type": "string"
              }
            }
          }
        ]
      },
      "RoutePolicy": {
        "type": "object",
        "title": "Route Policy Configuration",
        "properties": {
          "default": {
            "type": "string",
            "enum": [
              "open",
              "closed"
            ],
            "default": "open",
            "description": "Default policy for routes not covered by specific rules."
          },
          "isolation_groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "ethereum:SEED <-> arbitrum:SEED"
            ],
            "description": "Assets in an isolation group can ONLY trade with other assets in the same group."
          },
          "blacklist_pairs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "bitcoin:BTC -> starknet:*",
              "*:USDC -> bitcoin:*"
            ],
            "description": "Explicitly forbidden trading pairs using pattern matching."
          },
          "whitelist_overrides": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "ethereum:USDC -> bitcoin:BTC"
            ],
            "description": "Explicit overrides that bypass other restrictions."
          }
        }
      },
      "PolicyResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "$ref": "#/components/schemas/RoutePolicy"
              }
            }
          }
        ]
      }
    }
  },
  "paths": {
    "/orders/{order}/instant-refund-hash": {
      "get": {
        "summary": "Get instant refund hash for the given swap.",
        "parameters": [
          {
            "in": "path",
            "name": "order",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Swap with the given ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstantRefundHashResponse"
                }
              }
            }
          }
        }
      }
    },
    "/quote": {
      "get": {
        "description": "Get quote for the given asset pair.",
        "summary": "Get swap quote.",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Asset"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Asset"
            }
          },
          {
            "in": "query",
            "name": "from_amount",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to_amount",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "affiliate_fee",
            "schema": {
              "type": "integer"
            },
            "description": "**(Optional)** Add an [affiliate fee](/developers/affiliate-fees) to each swap, defined in bips (100 bips = 1%).",
            "example": 10
          },
          {
            "in": "query",
            "name": "slippage",
            "schema": {
              "type": "integer"
            },
            "description": "**(Optional)** Add slippage up to 5% for each quote/swap, defined in bips (100 bips = 1%.",
            "example": 50
          },
          {
            "in": "query",
            "name": "indicative",
            "schema": {
              "type": "boolean"
            },
            "description": "Return an indicative quote.\n**Default**: false",
            "example": false
          }
        ],
        "responses": {
          "200": {
            "description": "Quote information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Get server health.",
        "security": [],
        "responses": {
          "200": {
            "description": "Server is healthy.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "Ok"
                      ]
                    },
                    "result": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "status": "Ok",
                  "result": "Online"
                }
              }
            }
          },
          "503": {
            "description": "Server is unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "Error"
                      ]
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "status": "Error",
                  "error": "Server unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/chains": {
      "get": {
        "summary": "Get all the supported chains and assets.",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Asset"
            },
            "description": "**(Optional)** Asset filter."
          }
        ],
        "responses": {
          "200": {
            "description": "Object with supported chains and assets.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChainsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/assets": {
      "get": {
        "summary": "Get all the supported assets on the given chain.",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Asset"
            },
            "description": "**(Optional)** Asset filter."
          }
        ],
        "responses": {
          "200": {
            "description": "List of assets.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/liquidity": {
      "get": {
        "summary": "Get all the available liquidity.",
        "responses": {
          "200": {
            "description": "Array of solver-wise liquidity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiquidityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/fees": {
      "get": {
        "summary": "Get swap fees.",
        "parameters": [
          {
            "in": "query",
            "name": "source_chain",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Chain identifier to filter stats by specific source chain."
          },
          {
            "in": "query",
            "name": "destination_chain",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Chain identifier to filter stats by specific destination chain."
          },
          {
            "in": "query",
            "name": "address",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Address to filter stats by specific address.",
            "example": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "**(Optional)** Unix timestamp marking the start time.",
            "example": 1704067200
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "**(Optional)** Unix timestamp marking the end time.",
            "example": 1704153600
          }
        ],
        "responses": {
          "200": {
            "description": "Total swap fees.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseString"
                },
                "example": {
                  "status": "Ok",
                  "result": "2668122"
                }
              }
            }
          }
        }
      }
    },
    "/volume": {
      "get": {
        "summary": "Get swap volume.",
        "parameters": [
          {
            "in": "query",
            "name": "source_chain",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Chain identifier to filter statistics by specific source blockchain."
          },
          {
            "in": "query",
            "name": "destination_chain",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Chain identifier to filter stats by specific destination chain."
          },
          {
            "in": "query",
            "name": "address",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Address to filter stats by specific address.",
            "example": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "**(Optional)** Unix timestamp marking the start time.",
            "example": 1704067200
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "**(Optional)** Unix timestamp marking the end time.",
            "example": 1704153600
          }
        ],
        "responses": {
          "200": {
            "description": "Total swap volume.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseString"
                }
              }
            }
          }
        }
      }
    },
    "/schemas": {
      "get": {
        "summary": "Get all supported contract schemas.",
        "responses": {
          "200": {
            "description": "The ABI for EVM, Starknet contracts and IDL for Solana contracts.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemasResponse"
                }
              }
            }
          }
        }
      }
    },
    "/schemas/{name}": {
      "get": {
        "summary": "Get contract schema.",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SchemaName"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ABI for EVM contracts or IDL for Solana contracts.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orders": {
      "get": {
        "summary": "Get all orders.",
        "parameters": [
          {
            "in": "query",
            "name": "address",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by an address."
          },
          {
            "in": "query",
            "name": "tx_hash",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by a transaction hash."
          },
          {
            "in": "query",
            "name": "from_chain",
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Filter orders by the source chain."
          },
          {
            "in": "query",
            "name": "to_chain",
            "schema": {
              "$ref": "#/components/schemas/Chain"
            },
            "description": "**(Optional)** Filter orders by the destination chain."
          },
          {
            "in": "query",
            "name": "from_owner",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by the source owner. Comma-separated for multiple values.",
            "example": "0x123...,0x456..."
          },
          {
            "in": "query",
            "name": "to_owner",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by the destination owner. Comma-separated for multiple values.",
            "example": "0x789...,0xabc..."
          },
          {
            "in": "query",
            "name": "solver_id",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by a solver ID. Comma-separated for multiple values.",
            "example": "solver1,solver2"
          },
          {
            "in": "query",
            "name": "integrator",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by an integrator. Comma-separated for multiple values.",
            "example": "integrator1,integrator2"
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            },
            "description": "**(Optional)** Page number.",
            "example": 1
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            },
            "description": "**(Optional)** Number of items per page.",
            "example": 10
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            },
            "description": "**(Optional)** Filter orders by status. Comma-separated string with allowed values: not-initiated, in-progress, completed, expired, refunded.",
            "example": "not-initiated,in-progress"
          }
        ],
        "responses": {
          "200": {
            "description": "List of orders.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrdersResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create order.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object with required information to initiate order on source chain.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{order}": {
      "get": {
        "summary": "Get matched order by ID.",
        "parameters": [
          {
            "in": "path",
            "name": "order",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object with order details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update swap by doing an action.",
        "tags": [
          "Swaps"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": true,
            "description": "The HTLC action to execute on the order.",
            "schema": {
              "type": "string",
              "enum": [
                "initiate",
                "redeem",
                "refund",
                "instant-refund"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/InitiateActionRequest"
                  },
                  {
                    "$ref": "#/components/schemas/RedeemActionRequest"
                  },
                  {
                    "$ref": "#/components/schemas/RefundActionRequest"
                  },
                  {
                    "$ref": "#/components/schemas/InstantRefundActionRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Executed action successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/policy": {
      "get": {
        "summary": "Get route policy configuration.",
        "responses": {
          "200": {
            "description": "Route policy configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyResponse"
                },
                "example": {
                  "status": "Ok",
                  "result": {
                    "default": "open",
                    "isolation_groups": [
                      "ethereum:SEED <-> arbitrum:SEED"
                    ],
                    "blacklist_pairs": [
                      "bitcoin:BTC -> starknet:*"
                    ],
                    "whitelist_overrides": []
                  }
                }
              }
            }
          }
        }
      }
    },
    "/apps/earnings": {
      "get": {
        "summary": "Get affiliate earnings.",
        "responses": {
          "200": {
            "description": "List of affiliate earnings.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AffiliateEarningsResponse"
                },
                "example": {
                  "status": "Ok",
                  "result": [
                    {
                      "total_earnings": "15075000000",
                      "total_earnings_usd": "15075",
                      "affiliate": "0x004Cc75ACF4132Fc08cB6a252E767804F303F729",
                      "asset": "ethereum:usdc",
                      "token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                      "claim_amount": "5075000000",
                      "claim_amount_usd": "5075",
                      "claim_signature": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b",
                      "claim_contract": "0x5EbEC4D8DA437b2BAD656D43d40fE412bA5D217a"
                    },
                    {
                      "total_earnings": "30000000",
                      "total_earnings_usd": "30000",
                      "affiliate": "0x004Cc75ACF4132Fc08cB6a252E767804F303F729",
                      "asset": "ethereum:cbbtc",
                      "token_address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}