{
  "components": {
    "securitySchemes": {
      "WhooshAPIKey": {
        "in": "header",
        "name": "X-API-Key",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "description": "Non-custodial quotes and transaction preparation. Discover deployment capabilities first. Anonymous and API-key limits are per backend instance; API keys identify callers, never authorize wallet spending.",
    "title": "Whoosh Public Trading API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/allowance": {
      "get": {
        "operationId": "whoosh_allowance",
        "parameters": [
          {
            "in": "query",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "spender",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "amount",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "allowance": {
                          "type": "string"
                        },
                        "needed": {
                          "type": "boolean"
                        },
                        "owner": {
                          "type": "string"
                        },
                        "spender": {
                          "type": "string"
                        },
                        "token": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "token",
                        "owner",
                        "spender",
                        "allowance",
                        "needed"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Check token allowance; an approval response never signs a transaction."
      }
    },
    "/v1/balances": {
      "get": {
        "operationId": "whoosh_balances",
        "parameters": [
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "amount": {
                            "type": "string"
                          },
                          "decimals": {
                            "type": "integer"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "symbol": {
                            "type": "string"
                          },
                          "tags": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "token": {
                            "type": "string"
                          },
                          "usdValue": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "token",
                          "symbol",
                          "name",
                          "decimals",
                          "amount",
                          "tags"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read EVM wallet token balances."
      }
    },
    "/v1/bridge/balance": {
      "get": {
        "operationId": "whoosh_bridge_balance",
        "parameters": [
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "network",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "privacy",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destination",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read an EVM source-network balance for a bridge."
      }
    },
    "/v1/bridge/destinations": {
      "get": {
        "operationId": "whoosh_bridge_destinations",
        "parameters": [
          {
            "in": "query",
            "name": "privacy",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destination",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "contract": {
                            "type": "string"
                          },
                          "decimals": {
                            "type": "integer"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "symbol": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "symbol",
                          "decimals"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Discover bridge destination assets; privacy query is none or private."
      }
    },
    "/v1/bridge/modes": {
      "get": {
        "operationId": "whoosh_bridge_modes",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "destinations": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "privacy": {
                            "type": "string"
                          },
                          "provider": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "privacy",
                          "provider",
                          "destinations"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Discover enabled standard and private bridge providers and destinations."
      }
    },
    "/v1/bridge/quote": {
      "post": {
        "operationId": "whoosh_quote_bridge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "description": "Validation: required,numeric",
                    "type": "string"
                  },
                  "destination": {
                    "description": "Validation: omitempty,oneof=robinhood solana",
                    "enum": [
                      "robinhood",
                      "solana"
                    ],
                    "type": "string"
                  },
                  "destinationToken": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "owner": {
                    "description": "Validation: omitempty,max=64,alphanum",
                    "maxLength": 64,
                    "type": "string"
                  },
                  "privacy": {
                    "description": "Validation: omitempty,oneof=private",
                    "enum": [
                      "private"
                    ],
                    "type": "string"
                  },
                  "refuel": {
                    "type": "boolean"
                  },
                  "sourceNetwork": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "sourceToken": {
                    "description": "Validation: required",
                    "type": "string"
                  }
                },
                "required": [
                  "sourceNetwork",
                  "sourceToken",
                  "destinationToken",
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "atomic": {
                          "type": "boolean"
                        },
                        "destinationToken": {
                          "type": "string"
                        },
                        "estimatedSeconds": {
                          "type": "integer"
                        },
                        "holderFee": {
                          "additionalProperties": true,
                          "properties": {
                            "balance": {
                              "type": "string"
                            },
                            "block": {
                              "type": "integer"
                            },
                            "chainId": {
                              "type": "integer"
                            },
                            "discountPercent": {
                              "type": "integer"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "nextTier": {
                              "additionalProperties": true,
                              "properties": {
                                "discountPercent": {
                                  "type": "integer"
                                },
                                "tokens": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "tokens",
                                "discountPercent"
                              ],
                              "type": "object"
                            },
                            "normalFeeBps": {
                              "type": "integer"
                            },
                            "owner": {
                              "type": "string"
                            },
                            "tiers": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "discountPercent": {
                                    "type": "integer"
                                  },
                                  "tokens": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "tokens",
                                  "discountPercent"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "token": {
                              "type": "string"
                            },
                            "tokensToNextTier": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "owner",
                            "version",
                            "token",
                            "chainId",
                            "balance",
                            "discountPercent",
                            "normalFeeBps",
                            "feeBps",
                            "block",
                            "tiers"
                          ],
                          "type": "object"
                        },
                        "maxAmount": {
                          "type": "string"
                        },
                        "minAmount": {
                          "type": "string"
                        },
                        "minReceiveAmount": {
                          "type": "string"
                        },
                        "privacy": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "string"
                        },
                        "rate": {
                          "type": "string"
                        },
                        "receiveAmount": {
                          "type": "string"
                        },
                        "requestedAmount": {
                          "type": "string"
                        },
                        "slippageBps": {
                          "type": "string"
                        },
                        "sourceNetwork": {
                          "type": "string"
                        },
                        "sourceToken": {
                          "type": "string"
                        },
                        "totalFee": {
                          "type": "string"
                        },
                        "totalFeeUsd": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "sourceNetwork",
                        "sourceToken",
                        "destinationToken",
                        "requestedAmount",
                        "receiveAmount",
                        "minReceiveAmount",
                        "totalFee",
                        "slippageBps",
                        "estimatedSeconds",
                        "privacy",
                        "atomic"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Price a standard or private bridge. For private use privacy=private and discover support first. Bridge amounts are human-readable token units, not integer base units. Non-atomic delivery."
      }
    },
    "/v1/bridge/sources": {
      "get": {
        "operationId": "whoosh_bridge_sources",
        "parameters": [
          {
            "in": "query",
            "name": "privacy",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destination",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destinationToken",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "chainId": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "tokens": {
                            "items": {
                              "additionalProperties": true,
                              "properties": {
                                "contract": {
                                  "type": "string"
                                },
                                "decimals": {
                                  "type": "integer"
                                },
                                "logoUrl": {
                                  "type": "string"
                                },
                                "symbol": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "symbol",
                                "decimals"
                              ],
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "displayName",
                          "tokens"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Discover provider-supported source networks and tokens for a destination and privacy mode."
      }
    },
    "/v1/bridge/swaps": {
      "post": {
        "operationId": "whoosh_create_bridge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "description": "Validation: required,numeric",
                    "type": "string"
                  },
                  "destination": {
                    "description": "Validation: omitempty,oneof=robinhood solana",
                    "enum": [
                      "robinhood",
                      "solana"
                    ],
                    "type": "string"
                  },
                  "destinationAddress": {
                    "description": "Validation: required,max=64,alphanum",
                    "maxLength": 64,
                    "type": "string"
                  },
                  "destinationToken": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "expectedFeeBps": {
                    "description": "Validation: omitempty,max=10000",
                    "type": "integer"
                  },
                  "holderExpires": {
                    "type": "integer"
                  },
                  "holderSignature": {
                    "description": "Validation: omitempty,max=2050",
                    "maxLength": 2050,
                    "type": "string"
                  },
                  "privacy": {
                    "description": "Validation: omitempty,oneof=private",
                    "enum": [
                      "private"
                    ],
                    "type": "string"
                  },
                  "refuel": {
                    "type": "boolean"
                  },
                  "refundAddress": {
                    "description": "Validation: omitempty,max=128,printascii",
                    "maxLength": 128,
                    "type": "string"
                  },
                  "sourceNetwork": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "sourceToken": {
                    "description": "Validation: required",
                    "type": "string"
                  }
                },
                "required": [
                  "sourceNetwork",
                  "sourceToken",
                  "destinationToken",
                  "destinationAddress",
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "awaitingDeposit": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "deposit": {
                          "additionalProperties": true,
                          "properties": {
                            "amount": {
                              "type": "string"
                            },
                            "amountBaseUnits": {
                              "type": "string"
                            },
                            "approvalData": {
                              "type": "string"
                            },
                            "callData": {
                              "type": "string"
                            },
                            "depositor": {
                              "type": "string"
                            },
                            "expiresAt": {
                              "type": "string"
                            },
                            "memo": {
                              "type": "string"
                            },
                            "network": {
                              "type": "string"
                            },
                            "toAddress": {
                              "type": "string"
                            },
                            "tokenSymbol": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "toAddress",
                            "amount",
                            "network",
                            "tokenSymbol"
                          ],
                          "type": "object"
                        },
                        "destinationAddress": {
                          "type": "string"
                        },
                        "destinationNetwork": {
                          "type": "string"
                        },
                        "destinationToken": {
                          "type": "string"
                        },
                        "failReason": {
                          "type": "string"
                        },
                        "holderFee": {
                          "additionalProperties": true,
                          "properties": {
                            "balance": {
                              "type": "string"
                            },
                            "block": {
                              "type": "integer"
                            },
                            "chainId": {
                              "type": "integer"
                            },
                            "discountPercent": {
                              "type": "integer"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "nextTier": {
                              "additionalProperties": true,
                              "properties": {
                                "discountPercent": {
                                  "type": "integer"
                                },
                                "tokens": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "tokens",
                                "discountPercent"
                              ],
                              "type": "object"
                            },
                            "normalFeeBps": {
                              "type": "integer"
                            },
                            "owner": {
                              "type": "string"
                            },
                            "tiers": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "discountPercent": {
                                    "type": "integer"
                                  },
                                  "tokens": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "tokens",
                                  "discountPercent"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "token": {
                              "type": "string"
                            },
                            "tokensToNextTier": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "owner",
                            "version",
                            "token",
                            "chainId",
                            "balance",
                            "discountPercent",
                            "normalFeeBps",
                            "feeBps",
                            "block",
                            "tiers"
                          ],
                          "type": "object"
                        },
                        "id": {
                          "type": "string"
                        },
                        "privacy": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "string"
                        },
                        "receiveAmount": {
                          "type": "string"
                        },
                        "requestedAmount": {
                          "type": "string"
                        },
                        "sourceNetwork": {
                          "type": "string"
                        },
                        "sourceToken": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "terminal": {
                          "type": "boolean"
                        },
                        "trackingUrl": {
                          "type": "string"
                        },
                        "transactions": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "amount": {
                                "type": "string"
                              },
                              "confirmations": {
                                "type": "integer"
                              },
                              "hash": {
                                "type": "string"
                              },
                              "network": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "id",
                        "status",
                        "terminal",
                        "awaitingDeposit",
                        "sourceNetwork",
                        "sourceToken",
                        "destinationNetwork",
                        "destinationToken",
                        "destinationAddress",
                        "requestedAmount",
                        "privacy"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Create a provider bridge order with the exact destination and refund address. This creates external state but does not fund it. Private bridges may use provider deposit transfers; validate the full source network and amount."
      }
    },
    "/v1/bridge/swaps/{id}": {
      "get": {
        "operationId": "whoosh_bridge_status",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "awaitingDeposit": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "deposit": {
                          "additionalProperties": true,
                          "properties": {
                            "amount": {
                              "type": "string"
                            },
                            "amountBaseUnits": {
                              "type": "string"
                            },
                            "approvalData": {
                              "type": "string"
                            },
                            "callData": {
                              "type": "string"
                            },
                            "depositor": {
                              "type": "string"
                            },
                            "expiresAt": {
                              "type": "string"
                            },
                            "memo": {
                              "type": "string"
                            },
                            "network": {
                              "type": "string"
                            },
                            "toAddress": {
                              "type": "string"
                            },
                            "tokenSymbol": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "toAddress",
                            "amount",
                            "network",
                            "tokenSymbol"
                          ],
                          "type": "object"
                        },
                        "destinationAddress": {
                          "type": "string"
                        },
                        "destinationNetwork": {
                          "type": "string"
                        },
                        "destinationToken": {
                          "type": "string"
                        },
                        "failReason": {
                          "type": "string"
                        },
                        "holderFee": {
                          "additionalProperties": true,
                          "properties": {
                            "balance": {
                              "type": "string"
                            },
                            "block": {
                              "type": "integer"
                            },
                            "chainId": {
                              "type": "integer"
                            },
                            "discountPercent": {
                              "type": "integer"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "nextTier": {
                              "additionalProperties": true,
                              "properties": {
                                "discountPercent": {
                                  "type": "integer"
                                },
                                "tokens": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "tokens",
                                "discountPercent"
                              ],
                              "type": "object"
                            },
                            "normalFeeBps": {
                              "type": "integer"
                            },
                            "owner": {
                              "type": "string"
                            },
                            "tiers": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "discountPercent": {
                                    "type": "integer"
                                  },
                                  "tokens": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "tokens",
                                  "discountPercent"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "token": {
                              "type": "string"
                            },
                            "tokensToNextTier": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "owner",
                            "version",
                            "token",
                            "chainId",
                            "balance",
                            "discountPercent",
                            "normalFeeBps",
                            "feeBps",
                            "block",
                            "tiers"
                          ],
                          "type": "object"
                        },
                        "id": {
                          "type": "string"
                        },
                        "privacy": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "string"
                        },
                        "receiveAmount": {
                          "type": "string"
                        },
                        "requestedAmount": {
                          "type": "string"
                        },
                        "sourceNetwork": {
                          "type": "string"
                        },
                        "sourceToken": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "terminal": {
                          "type": "boolean"
                        },
                        "trackingUrl": {
                          "type": "string"
                        },
                        "transactions": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "amount": {
                                "type": "string"
                              },
                              "confirmations": {
                                "type": "integer"
                              },
                              "hash": {
                                "type": "string"
                              },
                              "network": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "id",
                        "status",
                        "terminal",
                        "awaitingDeposit",
                        "sourceNetwork",
                        "sourceToken",
                        "destinationNetwork",
                        "destinationToken",
                        "destinationAddress",
                        "requestedAmount",
                        "privacy"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Track asynchronous bridge delivery."
      }
    },
    "/v1/bridge/swaps/{id}/funding": {
      "post": {
        "operationId": "whoosh_build_bridge_funding",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "owner": {
                    "description": "Validation: required",
                    "type": "string"
                  }
                },
                "required": [
                  "owner"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Prepare bridge funding instructions for the source wallet; does not sign or broadcast. Inspect network, destination, memo, exact amount, approvals and expiry."
      }
    },
    "/v1/bridge/swaps/{id}/funding-report": {
      "post": {
        "operationId": "whoosh_report_bridge_funding",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "hash": {
                    "description": "Validation: required,max=88",
                    "maxLength": 88,
                    "type": "string"
                  }
                },
                "required": [
                  "hash"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Report an already broadcast bridge funding hash for verified tracking."
      }
    },
    "/v1/capabilities": {
      "get": {
        "operationId": "whoosh_capabilities",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Discover configured chains, sources, bridge privacy modes and execution limits. Configured does not guarantee a live quote."
      }
    },
    "/v1/holder-fees": {
      "get": {
        "operationId": "whoosh_holder_fees",
        "parameters": [
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read holder fee eligibility. Use whoosh_holder_authorization for the ownership proof message."
      }
    },
    "/v1/holder-fees/authorization": {
      "get": {
        "operationId": "whoosh_holder_authorization",
        "parameters": [
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "expires": {
                          "type": "integer"
                        },
                        "message": {
                          "type": "string"
                        },
                        "method": {
                          "type": "string"
                        },
                        "owner": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "owner",
                        "message",
                        "expires",
                        "method"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Get the exact short-lived personal_sign message for holder fee eligibility. Caller signs message, then supplies holderSignature and holderExpires to swap/sweep/bridge build. This proof never authorizes transfers."
      }
    },
    "/v1/leaderboard": {
      "get": {
        "operationId": "whoosh_leaderboard",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read confirmed XP rankings."
      }
    },
    "/v1/limit-orders": {
      "get": {
        "operationId": "whoosh_limit_orders",
        "parameters": [
          {
            "in": "query",
            "name": "maker",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "createdAt": {
                            "format": "date-time",
                            "type": "string"
                          },
                          "data": {
                            "additionalProperties": true,
                            "properties": {
                              "extension": {
                                "type": "string"
                              },
                              "maker": {
                                "type": "string"
                              },
                              "makerAsset": {
                                "type": "string"
                              },
                              "makerTraits": {
                                "type": "string"
                              },
                              "makingAmount": {
                                "type": "string"
                              },
                              "receiver": {
                                "type": "string"
                              },
                              "salt": {
                                "type": "string"
                              },
                              "takerAsset": {
                                "type": "string"
                              },
                              "takingAmount": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "salt",
                              "maker",
                              "receiver",
                              "makerAsset",
                              "takerAsset",
                              "makingAmount",
                              "takingAmount",
                              "makerTraits",
                              "extension"
                            ],
                            "type": "object"
                          },
                          "expiresAt": {
                            "format": "date-time",
                            "type": "string"
                          },
                          "fillHash": {
                            "type": "string"
                          },
                          "orderHash": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "orderHash",
                          "data",
                          "status",
                          "expiresAt",
                          "createdAt"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "List a wallet's signed limit orders and statuses."
      },
      "post": {
        "operationId": "whoosh_submit_limit",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "data": {
                    "additionalProperties": false,
                    "properties": {
                      "extension": {
                        "type": "string"
                      },
                      "maker": {
                        "type": "string"
                      },
                      "makerAsset": {
                        "type": "string"
                      },
                      "makerTraits": {
                        "type": "string"
                      },
                      "makingAmount": {
                        "type": "string"
                      },
                      "receiver": {
                        "type": "string"
                      },
                      "salt": {
                        "type": "string"
                      },
                      "takerAsset": {
                        "type": "string"
                      },
                      "takingAmount": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "salt",
                      "maker",
                      "receiver",
                      "makerAsset",
                      "takerAsset",
                      "makingAmount",
                      "takingAmount",
                      "makerTraits",
                      "extension"
                    ],
                    "type": "object"
                  },
                  "orderHash": {
                    "type": "string"
                  },
                  "signature": {
                    "type": "string"
                  }
                },
                "required": [
                  "orderHash",
                  "signature",
                  "data"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "createdAt": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "data": {
                          "additionalProperties": true,
                          "properties": {
                            "extension": {
                              "type": "string"
                            },
                            "maker": {
                              "type": "string"
                            },
                            "makerAsset": {
                              "type": "string"
                            },
                            "makerTraits": {
                              "type": "string"
                            },
                            "makingAmount": {
                              "type": "string"
                            },
                            "receiver": {
                              "type": "string"
                            },
                            "salt": {
                              "type": "string"
                            },
                            "takerAsset": {
                              "type": "string"
                            },
                            "takingAmount": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "salt",
                            "maker",
                            "receiver",
                            "makerAsset",
                            "takerAsset",
                            "makingAmount",
                            "takingAmount",
                            "makerTraits",
                            "extension"
                          ],
                          "type": "object"
                        },
                        "expiresAt": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "fillHash": {
                          "type": "string"
                        },
                        "orderHash": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "orderHash",
                        "data",
                        "status",
                        "expiresAt",
                        "createdAt"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Publish an existing wallet-signed limit order using the official SDK fee extension. This authorizes future fills. Exact full fills only; no private keys. Cancellation requires a wallet transaction to the configured contract."
      }
    },
    "/v1/limit-orders/config": {
      "get": {
        "operationId": "whoosh_limit_config",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Check limit-order availability and the verifying contract. Only Robinhood Chain is supported."
      }
    },
    "/v1/limit-orders/fee-info": {
      "get": {
        "operationId": "whoosh_limit_fee_info",
        "parameters": [
          {
            "in": "query",
            "name": "makerAsset",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "takerAsset",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "makerAmount",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "takerAmount",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Fetch fee parameters for the official 1inch SDK. Use ERC-20 addresses; ETH must first be prepared as WETH by the caller."
      }
    },
    "/v1/quote": {
      "post": {
        "operationId": "whoosh_quote_swap",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amountIn": {
                    "description": "Validation: required,numeric",
                    "type": "string"
                  },
                  "recipient": {
                    "description": "Validation: omitempty,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "slippageBps": {
                    "description": "Validation: omitempty,max=2000",
                    "maximum": 2000,
                    "type": "integer"
                  },
                  "taker": {
                    "description": "Validation: required,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "tokenIn": {
                    "description": "Validation: required,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "tokenOut": {
                    "description": "Validation: required,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  }
                },
                "required": [
                  "tokenIn",
                  "tokenOut",
                  "amountIn",
                  "taker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "all": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "amountOut": {
                                "type": "string"
                              },
                              "feeApplied": {
                                "type": "boolean"
                              },
                              "feeBps": {
                                "type": "integer"
                              },
                              "gasAdjusted": {
                                "type": "boolean"
                              },
                              "latencyMs": {
                                "type": "integer"
                              },
                              "netAmountOut": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              },
                              "route": {
                                "items": {
                                  "additionalProperties": true,
                                  "properties": {
                                    "percent": {
                                      "type": "integer"
                                    },
                                    "pool": {
                                      "type": "string"
                                    },
                                    "protocol": {
                                      "type": "string"
                                    },
                                    "tokenIn": {
                                      "type": "string"
                                    },
                                    "tokenOut": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "protocol",
                                    "tokenIn",
                                    "tokenOut",
                                    "percent"
                                  ],
                                  "type": "object"
                                },
                                "type": "array"
                              },
                              "simulated": {
                                "type": "boolean"
                              },
                              "source": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "source",
                              "status",
                              "gasAdjusted",
                              "latencyMs",
                              "feeApplied",
                              "feeBps",
                              "simulated"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "best": {
                          "additionalProperties": true,
                          "properties": {
                            "amountOut": {
                              "type": "string"
                            },
                            "approval": {
                              "additionalProperties": true,
                              "properties": {
                                "method": {
                                  "type": "string"
                                },
                                "needed": {
                                  "type": "boolean"
                                },
                                "operator": {
                                  "type": "string"
                                },
                                "spender": {
                                  "type": "string"
                                },
                                "token": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "token",
                                "spender",
                                "method",
                                "needed"
                              ],
                              "type": "object"
                            },
                            "feeApplied": {
                              "type": "boolean"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "gasAdjusted": {
                              "type": "boolean"
                            },
                            "gasFeeWei": {
                              "type": "string"
                            },
                            "gasLimit": {
                              "type": "integer"
                            },
                            "minAmountOut": {
                              "type": "string"
                            },
                            "netAmountOut": {
                              "type": "string"
                            },
                            "route": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "percent": {
                                    "type": "integer"
                                  },
                                  "pool": {
                                    "type": "string"
                                  },
                                  "protocol": {
                                    "type": "string"
                                  },
                                  "tokenIn": {
                                    "type": "string"
                                  },
                                  "tokenOut": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "protocol",
                                  "tokenIn",
                                  "tokenOut",
                                  "percent"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "simulated": {
                              "type": "boolean"
                            },
                            "source": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "amountOut",
                            "minAmountOut",
                            "netAmountOut",
                            "gasLimit",
                            "gasAdjusted",
                            "simulated",
                            "route",
                            "feeApplied",
                            "feeBps"
                          ],
                          "type": "object"
                        },
                        "expiresAt": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "holderFee": {
                          "additionalProperties": true,
                          "properties": {
                            "balance": {
                              "type": "string"
                            },
                            "block": {
                              "type": "integer"
                            },
                            "chainId": {
                              "type": "integer"
                            },
                            "discountPercent": {
                              "type": "integer"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "nextTier": {
                              "additionalProperties": true,
                              "properties": {
                                "discountPercent": {
                                  "type": "integer"
                                },
                                "tokens": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "tokens",
                                "discountPercent"
                              ],
                              "type": "object"
                            },
                            "normalFeeBps": {
                              "type": "integer"
                            },
                            "owner": {
                              "type": "string"
                            },
                            "tiers": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "discountPercent": {
                                    "type": "integer"
                                  },
                                  "tokens": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "tokens",
                                  "discountPercent"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "token": {
                              "type": "string"
                            },
                            "tokensToNextTier": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "owner",
                            "version",
                            "token",
                            "chainId",
                            "balance",
                            "discountPercent",
                            "normalFeeBps",
                            "feeBps",
                            "block",
                            "tiers"
                          ],
                          "type": "object"
                        },
                        "latencyMs": {
                          "type": "integer"
                        },
                        "quoteId": {
                          "type": "string"
                        },
                        "recipient": {
                          "type": "string"
                        },
                        "warnings": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "quoteId",
                        "recipient",
                        "best",
                        "all",
                        "expiresAt",
                        "latencyMs"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Compare all available EVM sources. Amounts are integer base-unit strings. Inspect best, all, recipient, approvals, fees and expiry."
      }
    },
    "/v1/rewards/{address}/": {
      "get": {
        "operationId": "whoosh_rewards",
        "parameters": [
          {
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read public EVM or Solana wallet rewards."
      }
    },
    "/v1/rewards/{address}/history": {
      "get": {
        "operationId": "whoosh_rewards_history",
        "parameters": [
          {
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read verified wallet rewards history."
      }
    },
    "/v1/solana/balances": {
      "get": {
        "operationId": "whoosh_solana_balances",
        "parameters": [
          {
            "in": "query",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read Solana wallet balances."
      }
    },
    "/v1/solana/quote": {
      "post": {
        "operationId": "whoosh_quote_solana",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "description": "Validation: required,numeric",
                    "type": "string"
                  },
                  "inputMint": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "outputMint": {
                    "description": "Validation: required",
                    "type": "string"
                  },
                  "slippageBps": {
                    "type": "integer"
                  },
                  "taker": {
                    "type": "string"
                  }
                },
                "required": [
                  "inputMint",
                  "outputMint",
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "all": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "amountOut": {
                                "type": "string"
                              },
                              "feeApplied": {
                                "type": "boolean"
                              },
                              "feeBps": {
                                "type": "integer"
                              },
                              "latencyMs": {
                                "type": "integer"
                              },
                              "minAmountOut": {
                                "type": "string"
                              },
                              "priceImpactPct": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              },
                              "route": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "source": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "source",
                              "status",
                              "feeBps",
                              "feeApplied",
                              "latencyMs"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "best": {
                          "additionalProperties": true,
                          "properties": {
                            "amountOut": {
                              "type": "string"
                            },
                            "feeApplied": {
                              "type": "boolean"
                            },
                            "feeBps": {
                              "type": "integer"
                            },
                            "latencyMs": {
                              "type": "integer"
                            },
                            "minAmountOut": {
                              "type": "string"
                            },
                            "priceImpactPct": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            },
                            "route": {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            "source": {
                              "type": "string"
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "status",
                            "feeBps",
                            "feeApplied",
                            "latencyMs"
                          ],
                          "type": "object"
                        },
                        "expiresAt": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "quoteId": {
                          "type": "string"
                        },
                        "slippageBps": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "quoteId",
                        "best",
                        "all",
                        "slippageBps",
                        "expiresAt"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Compare enabled Solana swap providers. Amount is integer base units."
      }
    },
    "/v1/solana/submit": {
      "post": {
        "operationId": "whoosh_submit_solana",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "signedTransactions": {
                    "description": "Validation: required,min=1,max=4",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 4,
                    "minItems": 1,
                    "type": "array"
                  },
                  "swapId": {
                    "description": "Validation: required,startswith=sb_",
                    "type": "string"
                  }
                },
                "required": [
                  "swapId",
                  "signedTransactions"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "reason": {
                          "type": "string"
                        },
                        "signatures": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "signatures",
                        "status"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Broadcast caller-signed Solana transactions. This spends funds according to the supplied signatures; require wallet policy authorization. No private keys accepted."
      }
    },
    "/v1/solana/swap": {
      "post": {
        "operationId": "whoosh_build_solana",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "quoteId": {
                    "description": "Validation: required,startswith=sq_",
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "taker": {
                    "description": "Validation: required",
                    "type": "string"
                  }
                },
                "required": [
                  "quoteId",
                  "taker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "amountOut": {
                          "type": "string"
                        },
                        "minAmountOut": {
                          "type": "string"
                        },
                        "simulated": {
                          "type": "boolean"
                        },
                        "source": {
                          "type": "string"
                        },
                        "swapId": {
                          "type": "string"
                        },
                        "transactions": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "swapId",
                        "source",
                        "transactions",
                        "simulated"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Build serialized unsigned Solana transactions from quoteId; optional source chooses a returned route. Caller signs each transaction."
      }
    },
    "/v1/solana/tokens": {
      "get": {
        "operationId": "whoosh_solana_tokens",
        "parameters": [
          {
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "decimals": {
                            "type": "integer"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "mint": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "symbol": {
                            "type": "string"
                          },
                          "tags": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "verified": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "mint",
                          "symbol",
                          "name",
                          "decimals",
                          "verified"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Search Solana tokens by optional query."
      }
    },
    "/v1/solana/tx/{signature}": {
      "get": {
        "operationId": "whoosh_solana_status",
        "parameters": [
          {
            "in": "path",
            "name": "signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "reason": {
                          "type": "string"
                        },
                        "signature": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "signature",
                        "status"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Track a Solana transaction signature."
      }
    },
    "/v1/stats": {
      "get": {
        "operationId": "whoosh_stats",
        "parameters": [
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "avgLatencyMs": {
                          "type": "integer"
                        },
                        "providers": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "appearances": {
                                "type": "integer"
                              },
                              "avgLatencyMs": {
                                "type": "integer"
                              },
                              "okCount": {
                                "type": "integer"
                              },
                              "source": {
                                "type": "string"
                              },
                              "successRate": {
                                "type": "number"
                              },
                              "winRate": {
                                "type": "number"
                              },
                              "wins": {
                                "type": "integer"
                              }
                            },
                            "required": [
                              "source",
                              "appearances",
                              "wins",
                              "okCount",
                              "winRate",
                              "successRate",
                              "avgLatencyMs"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "rewardsPaused": {
                          "type": "boolean"
                        },
                        "routedQuotes": {
                          "type": "integer"
                        },
                        "solana": {
                          "additionalProperties": true,
                          "properties": {
                            "swaps": {
                              "type": "integer"
                            },
                            "volumeUsd": {
                              "type": "number"
                            },
                            "wallets": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "swaps",
                            "wallets",
                            "volumeUsd"
                          ],
                          "type": "object"
                        },
                        "totalQuotes": {
                          "type": "integer"
                        },
                        "trading": {
                          "additionalProperties": true,
                          "properties": {
                            "swaps": {
                              "type": "integer"
                            },
                            "volumeUsd": {
                              "type": "string"
                            },
                            "wallets": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "swaps",
                            "wallets",
                            "volumeUsd"
                          ],
                          "type": "object"
                        },
                        "uniqueTakers": {
                          "type": "integer"
                        },
                        "windowHours": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "rewardsPaused",
                        "windowHours",
                        "totalQuotes",
                        "routedQuotes",
                        "uniqueTakers",
                        "avgLatencyMs",
                        "providers"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Read settled trading totals independently of XP, and separate quote analytics. hours=0 means all time; otherwise use 1 to 2160 hours."
      }
    },
    "/v1/swap": {
      "post": {
        "operationId": "whoosh_build_swap",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "holderExpires": {
                    "type": "integer"
                  },
                  "holderSignature": {
                    "description": "Validation: omitempty,max=2050",
                    "maxLength": 2050,
                    "type": "string"
                  },
                  "quoteId": {
                    "description": "Validation: required,startswith=q_",
                    "type": "string"
                  },
                  "source": {
                    "description": "Validation: omitempty,max=64",
                    "maxLength": 64,
                    "type": "string"
                  }
                },
                "required": [
                  "quoteId"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "simulated": {
                          "type": "boolean"
                        },
                        "source": {
                          "type": "string"
                        },
                        "tx": {
                          "additionalProperties": true,
                          "properties": {
                            "data": {
                              "type": "string"
                            },
                            "gas": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            },
                            "value": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "to",
                            "data",
                            "value",
                            "gas"
                          ],
                          "type": "object"
                        }
                      },
                      "required": [
                        "tx",
                        "source",
                        "simulated"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Re-price and prepare an EVM transaction from quoteId. Optional source selects an available comparison row. Inspect simulated; RPC failures can leave simulation unverified. Caller approves, signs and broadcasts on the quoted chain. Never broadcasts itself."
      }
    },
    "/v1/swaps/{txHash}": {
      "post": {
        "operationId": "whoosh_report_swap",
        "parameters": [
          {
            "in": "path",
            "name": "txHash",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "quoteId": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Report an already broadcast EVM transaction. XP requires verified settlement, not a client assertion."
      }
    },
    "/v1/sweep": {
      "post": {
        "operationId": "whoosh_quote_sweep",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "positions": {
                    "description": "Validation: required,min=1,max=20,dive",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "description": "Validation: required,numeric",
                          "type": "string"
                        },
                        "token": {
                          "description": "Validation: required,eth_addr",
                          "pattern": "^0x[0-9a-fA-F]{40}$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "token",
                        "amount"
                      ],
                      "type": "object"
                    },
                    "maxItems": 20,
                    "minItems": 1,
                    "type": "array"
                  },
                  "recipient": {
                    "description": "Validation: omitempty,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "slippageBps": {
                    "description": "Validation: omitempty,max=2000",
                    "maximum": 2000,
                    "type": "integer"
                  },
                  "taker": {
                    "description": "Validation: required,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "tokenOut": {
                    "description": "Validation: required,eth_addr",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  }
                },
                "required": [
                  "positions",
                  "tokenOut",
                  "taker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "combinedSwap": {
                          "type": "boolean"
                        },
                        "expiresAt": {
                          "type": "string"
                        },
                        "gasAdjusted": {
                          "type": "boolean"
                        },
                        "latencyMs": {
                          "type": "integer"
                        },
                        "legs": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "amountIn": {
                                "type": "string"
                              },
                              "amountOut": {
                                "type": "string"
                              },
                              "approval": {
                                "additionalProperties": true,
                                "properties": {
                                  "method": {
                                    "type": "string"
                                  },
                                  "needed": {
                                    "type": "boolean"
                                  },
                                  "operator": {
                                    "type": "string"
                                  },
                                  "spender": {
                                    "type": "string"
                                  },
                                  "token": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "token",
                                  "spender",
                                  "method",
                                  "needed"
                                ],
                                "type": "object"
                              },
                              "gasAdjusted": {
                                "type": "boolean"
                              },
                              "netAmountOut": {
                                "type": "string"
                              },
                              "quoteId": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              },
                              "simulated": {
                                "type": "boolean"
                              },
                              "source": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "token": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "token",
                              "amountIn",
                              "status",
                              "gasAdjusted",
                              "simulated"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "okCount": {
                          "type": "integer"
                        },
                        "recipient": {
                          "type": "string"
                        },
                        "tokenOut": {
                          "type": "string"
                        },
                        "totalAmountOut": {
                          "type": "string"
                        },
                        "totalNetAmountOut": {
                          "type": "string"
                        },
                        "transactions": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "combinedSwap",
                        "tokenOut",
                        "recipient",
                        "legs",
                        "totalAmountOut",
                        "totalNetAmountOut",
                        "gasAdjusted",
                        "okCount",
                        "transactions",
                        "expiresAt",
                        "latencyMs"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Quote consolidation of multiple EVM tokens. Inspect every leg; combinedSwap indicates whether a combined build is supported."
      }
    },
    "/v1/sweep/swap": {
      "post": {
        "operationId": "whoosh_build_sweep",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "holderExpires": {
                    "type": "integer"
                  },
                  "holderSignature": {
                    "type": "string"
                  },
                  "quoteIds": {
                    "description": "Validation: required,min=2,max=20,dive",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 20,
                    "minItems": 2,
                    "type": "array"
                  }
                },
                "required": [
                  "quoteIds"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {}
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Build one combined EVM sweep for compatible quoteIds. If incompatible, explicitly build and sign separate legs; never silently send a fallback."
      }
    },
    "/v1/tokens": {
      "get": {
        "operationId": "whoosh_tokens",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "address": {
                            "type": "string"
                          },
                          "decimals": {
                            "type": "integer"
                          },
                          "honeypotStatus": {
                            "type": "string"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "sellTaxBps": {
                            "type": "integer"
                          },
                          "symbol": {
                            "type": "string"
                          },
                          "tags": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "verified": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "address",
                          "symbol",
                          "name",
                          "decimals",
                          "tags",
                          "verified"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "List Robinhood Chain tokens. Verification identifies tokens, not guaranteed liquidity."
      }
    },
    "/v1/tokens/{address}": {
      "get": {
        "operationId": "whoosh_token",
        "parameters": [
          {
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "additionalProperties": true,
                      "properties": {
                        "address": {
                          "type": "string"
                        },
                        "decimals": {
                          "type": "integer"
                        },
                        "honeypotStatus": {
                          "type": "string"
                        },
                        "logoUrl": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "sellTaxBps": {
                          "type": "integer"
                        },
                        "symbol": {
                          "type": "string"
                        },
                        "tags": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "verified": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "address",
                        "symbol",
                        "name",
                        "decimals",
                        "tags",
                        "verified"
                      ],
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success; some state-creation endpoints return 201 or 202 instead."
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted; verify on-chain settlement"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "details": {},
                        "message": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Error. 401 invalid key, 409 changed price/fee, 429 throttled, 503 unavailable. Honor Retry-After on 429."
          }
        },
        "security": [
          {},
          {
            "WhooshAPIKey": []
          }
        ],
        "summary": "Resolve an EVM token by contract address."
      }
    }
  },
  "servers": [
    {
      "url": "/"
    }
  ]
}