Cross-network DeFi API data, AMM analytics, and SDK docs for 17+ networks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check SDK documentation availability. Call this first if docs tools seem unavailable.
This tool takes no arguments.
Check SDK documentation availability. Call this first if docs tools seem unavailable.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}List all SDK documentation tools with parameters. Essential for discovering what's available.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Reconnect to SDK documentation and refresh available tools. Use if docs seem stale or unavailable.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Get all borrowers across all money market assets with pagination
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of borrowers to return (1-100) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Number of borrowers to skip for pagination |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of borrowers to return (1-100)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Number of borrowers to skip for pagination"
}
},
"additionalProperties": false
}Get detailed configuration for all spoke chains including contract addresses, RPCs, and token configs
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get full SODAX configuration including all supported chains, swap tokens, and protocol settings in one call
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get OHLCV candlestick chart data for an AMM pool
| Argument | Type | Description |
|---|---|---|
| to* | number | REQUIRED: End timestamp (unix seconds) |
| from* | number | REQUIRED: Start timestamp (unix seconds) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| poolId* | string | The pool contract address or ID |
| chainId* | string | Chain ID where the pool is deployed (e.g., 'sonic') |
| interval* | string | REQUIRED: Candle interval |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chainId",
"poolId",
"interval",
"from",
"to"
],
"properties": {
"to": {
"type": "number",
"description": "REQUIRED: End timestamp (unix seconds)"
},
"from": {
"type": "number",
"description": "REQUIRED: Start timestamp (unix seconds)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"poolId": {
"type": "string",
"description": "The pool contract address or ID"
},
"chainId": {
"type": "string",
"description": "Chain ID where the pool is deployed (e.g., 'sonic')"
},
"interval": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"description": "REQUIRED: Candle interval"
}
},
"additionalProperties": false
}Get AMM liquidity provider NFT positions, optionally filtered by owner address
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of positions to return |
| owner | string | Filter by owner wallet address |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Number of positions to skip for pagination |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Maximum number of positions to return"
},
"owner": {
"type": "string",
"description": "Filter by owner wallet address"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of positions to skip for pagination"
}
},
"additionalProperties": false
}Get borrowers for a specific money market asset by its reserve address
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of borrowers to return (1-100) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Number of borrowers to skip for pagination |
| reserveAddress* | string | The reserve contract address of the asset |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reserveAddress"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of borrowers to return (1-100)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Number of borrowers to skip for pagination"
},
"reserveAddress": {
"type": "string",
"description": "The reserve contract address of the asset"
}
},
"additionalProperties": false
}Get suppliers (lenders) for a specific money market asset by its reserve address
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of suppliers to return (1-100) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Number of suppliers to skip for pagination |
| reserveAddress* | string | The reserve contract address of the asset |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reserveAddress"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of suppliers to return (1-100)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Number of suppliers to skip for pagination"
},
"reserveAddress": {
"type": "string",
"description": "The reserve contract address of the asset"
}
},
"additionalProperties": false
}Get SODA token circulating supply as a plain number
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get assets representing spoke tokens on the hub (Sonic) chain, optionally filtered by source chain
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | string | Filter by source spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic'). Call sodax_get_supported_chains for the full list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "string",
"description": "Filter by source spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic'). Call sodax_get_supported_chains for the full list."
}
},
"additionalProperties": false
}Look up a specific intent by its intent hash (different from transaction hash)
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| intentHash* | string | The intent hash to look up (66 character hex string starting with 0x) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentHash"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"intentHash": {
"type": "string",
"description": "The intent hash to look up (66 character hex string starting with 0x)"
}
},
"additionalProperties": false
}Get detailed information for a specific money market asset by its reserve address
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| reserveAddress* | string | The reserve contract address of the asset |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reserveAddress"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"reserveAddress": {
"type": "string",
"description": "The reserve contract address of the asset"
}
},
"additionalProperties": false
}List all assets available for lending and borrowing in the SODAX money market
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | string | Filter by chain ID |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "string",
"description": "Filter by chain ID"
}
},
"additionalProperties": false
}Get money market reserve assets used as collateral backing
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get tokens supported for money market lending/borrowing, optionally filtered by chain
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | string | Filter by chain ID |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "string",
"description": "Filter by chain ID"
}
},
"additionalProperties": false
}Get current orderbook entries showing pending/open intents
| Argument | Type | Description |
|---|---|---|
| limit | number | Max results (default server-side, cap 500) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Offset for simple pagination |
| creator | string | Filter by creator address |
| dstChain | number | Filter by destination chain id |
| srcChain | number | Filter by source chain id |
| inputToken | string | Filter by input token address |
| outputToken | string | Filter by output token address |
| deadlineAfter | number | Only return intents with deadline > value (Unix seconds) |
| deadlineBefore | number |
Get volume and activity summary for a specific integration partner by their receiver address
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | string | Filter by chain ID |
| receiver* | string | The partner receiver address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"receiver"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "string",
"description": "Filter by chain ID"
},
"receiver": {
"type": "string",
"description": "The partner receiver address"
}
},
"additionalProperties": false
}List all SODAX integration partners including wallets, DEXs, and other protocols
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | integer | Filter partners by numeric chain ID (e.g. 146 for Sonic) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "integer",
"description": "Filter partners by numeric chain ID (e.g. 146 for Sonic)"
}
},
"additionalProperties": false
}Get mapping between chain IDs and intent relay chain IDs used by the SODAX relay network
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get solver-side details for an intent including fill history. Use includeAll to see all solver documents.
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| includeAll | boolean | Include all intent documents (history) instead of just the latest |
| intentHash* | string | The intent hash to look up |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentHash"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"includeAll": {
"type": "boolean",
"default": false,
"description": "Include all intent documents (history) instead of just the latest"
},
"intentHash": {
"type": "string",
"description": "The intent hash to look up"
}
},
"additionalProperties": false
}Get the solver's oracle USD prices per (chain, token). For quoting with sodax_get_solver_quote, filter chainId='146': chainId-146 addresses pass the quote service's compatibility check, while spoke-chain (non-146) addresses are rejected with 'not compatible with the quote service'. Caveat: passing that check (being listed/priced) does NOT guarantee a swap route — canonical bridged *_ASSET hub tokens and major stablecoins route most reliably, while many wrapped/derivative/money-market entries (e.g. WBTC, waLocBTC, SONIC_SODA_ASSET) are priced but frequently return 'No path was found', and routability is pair/amount/liquidity-dependent. Also useful for sanity-checking quote amounts against the USD prices the solver uses.
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| symbol | string | Filter by token symbol (case-insensitive exact match, e.g. 'SODA', 'bnUSD') |
| chainId | string | Filter results to a single intent-relay chain ID (decimal string, e.g. '146' for Sonic). Call sodax_get_relay_chain_id_map to translate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"symbol": {
"type": "string",
"description": "Filter by token symbol (case-insensitive exact match, e.g. 'SODA', 'bnUSD')"
},
"chainId": {
"type": "string",
"description": "Filter results to a single intent-relay chain ID (decimal string, e.g. '146' for Sonic). Call sodax_get_relay_chain_id_map to translate."
}
},
"additionalProperties": false
}Get a swap quote from the SODAX solver. tokenSrc/tokenDst MUST be hub-chain (Sonic, chainId 146) asset addresses — look them up with sodax_get_solver_oracle (chainId='146'). Working example: tokenSrc='0xeb0393893b5bf98a50073d6740738b08e575058b' (BTC_BTC_ASSET) → tokenDst='0xaeafa26e43f46cd83efe89b1e57c858eb5685a24' (ETH_ASSET), amount='99800', quoteType='exact_input' returns a quoted_amount. exact_input quotes the destination amount you'd receive; exact_output quotes the source amount you'd need. There are two distinct HTTP-400 failures, both naming the two addresses: (1) 'not compatible with the quote service' = an address isn't a recognized hub asset (a spoke-chain or otherwise non-chainId-146 address was passed) → use a chainId-146 address from sodax_get_solver_oracle, and for a reliable pick prefer a canonical bridged *_ASSET hub token or major stablecoin (chainId 146 alone doesn't guarantee a route). (2) 'No path was found between X and Y' = both tokens are valid hub assets but the solver couldn't route this pair for this amount → routing is pair/amount/liquidity-dependent, so retry with a smaller amount or a more liquid counterparty (a canonical bridged *_ASSET token, or a major stablecoin like SONIC_USDC_ASSET). Many wrapped/derivative entries (e.g. WBTC, waLocBTC, SONIC_SODA_ASSET) are oracle-priced but frequently have no route — prefer canonical bridged *_ASSET hub tokens.
| Argument | Type | Description |
|---|---|---|
| amount* | string | REQUIRED: Amount in the smallest unit of the input token (for exact_input) or output token (for exact_output). String to preserve precision. Note: a very large amount can exceed available liquidity and return 'No path was found' even for an otherwise-valid pair — reduce it if that happens. |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
List all blockchain networks supported by SODAX for cross-chain swaps and DeFi operations
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get available tokens for swapping on SODAX, optionally filtered by chain
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| chainId | string | Filter tokens by spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic', '0x1.icon', '0xa.optimism'). Call sodax_get_supported_chains for the full list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"chainId": {
"type": "string",
"description": "Filter tokens by spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic', '0x1.icon', '0xa.optimism'). Call sodax_get_supported_chains for the full list."
}
},
"additionalProperties": false
}Get SODA token supply information including total, circulating, and burned amounts
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Get SODA token total supply as a plain number
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Look up a specific transaction by its hash to see status, amounts, and details
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| txHash* | string | The transaction hash to look up (e.g., '0x...') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"txHash"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"txHash": {
"type": "string",
"description": "The transaction hash to look up (e.g., '0x...')"
}
},
"additionalProperties": false
}Get a user's lending and borrowing position in the money market
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| userAddress* | string | The wallet address to look up |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"userAddress"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"userAddress": {
"type": "string",
"description": "The wallet address to look up"
}
},
"additionalProperties": false
}Get intent/transaction history for a specific wallet address
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of transactions to return (1-100) |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| offset | number | Number of transactions to skip for pagination |
| toBlock | number | Inclusive upper bound on blockNumber (chain-native ordering) |
| fromBlock | number | Inclusive lower bound on blockNumber (chain-native ordering) |
| userAddress* | string | The wallet address to look up (e.g., '0x...') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"userAddress"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of transactions to return (1-100)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Number of transactions to skip for pagination"
},
"toBlock": {
"type": "number",
"description": "Inclusive upper bound on blockNumber (chain-native ordering)"
},
"fromBlock": {
"type": "number",
"description": "Inclusive lower bound on blockNumber (chain-native ordering)"
},
"userAddress": {
"type": "string",
"description": "The wallet address to look up (e.g., '0x...')"
}
},
"additionalProperties": false
}Get solver volume data showing filled intents with filtering and pagination. Requires inputToken and outputToken. Optional filters: chain, solver, block range OR time range (don't mix both).
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order by block number |
| toTs | number | End timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock. |
| limit | number | Maximum number of filled intents to return (1-100) |
| since | string | Start time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs) |
| until | string | End time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs) |
| cursor | string | Pagination cursor from previous response's nextCursor |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| fromTs | number | Start timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock. |
| solver |
Get aggregate solver volume stats: the approximate total number of filled-intent records (fill documents, not distinct intents). Cached ~60s upstream.
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
}
},
"additionalProperties": false
}Clear both the backend API cache and the solver oracle cache to force fresh fetches on next requests. Reports the number of entries cleared per cache.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Fetch a single relay packet by its connection serial number (conn_sn). Returns the packet data on success or a `{success:false, message}` shape if the packet isn't found.
| Argument | Type | Description |
|---|---|---|
| connSn | string | REQUIRED: Connection serial number identifying the packet within the tx. Accepts string or number (numeric values are coerced — convenient for piping back a previously-fetched packet's `conn_sn` field). |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| txHash* | string | REQUIRED: The source-chain transaction hash |
| chainId* | string | REQUIRED: Intent-relay chain ID of the source chain (decimal string) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chainId",
"txHash"
],
"properties": {
"connSn": {
"type": "string",
"description": "REQUIRED: Connection serial number identifying the packet within the tx. Accepts string or number (numeric values are coerced — convenient for piping back a previously-fetched packet's `conn_sn` field)."
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"txHash": {
"type": "string",
"description": "REQUIRED: The source-chain transaction hash"
},
"chainId": {
"type": "string",
"description": "REQUIRED: Intent-relay chain ID of the source chain (decimal string)"
}
},
"additionalProperties": false
}List every cross-chain packet emitted by a given source transaction. Use this to track relay status — a packet is complete when status='executed' and dst_tx_hash is populated.
| Argument | Type | Description |
|---|---|---|
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| txHash* | string | REQUIRED: The source-chain transaction hash whose packets you want to inspect |
| chainId* | string | REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146'). Call sodax_get_relay_chain_id_map to translate from a chain key. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chainId",
"txHash"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"txHash": {
"type": "string",
"description": "REQUIRED: The source-chain transaction hash whose packets you want to inspect"
},
"chainId": {
"type": "string",
"description": "REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146'). Call sodax_get_relay_chain_id_map to translate from a chain key."
}
},
"additionalProperties": false
}Submit a confirmed spoke-chain transaction to the SODAX intent relay so it can be delivered to the destination chain. The tx must already be finalized on the source chain. Re-submitting the same tx is a no-op. For split-tx chains (Solana, Bitcoin) supply the optional `data` argument.
| Argument | Type | Description |
|---|---|---|
| data | object | Required only for split-tx chains (Solana, Bitcoin). Omit for EVM chains. |
| format | string | Response format: 'json' for raw data or 'markdown' for formatted text |
| txHash* | string | REQUIRED: The confirmed transaction hash on the source chain |
| chainId* | string | REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146' for Sonic, '2' for Ethereum). Call sodax_get_relay_chain_id_map to translate from a chain key. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chainId",
"txHash"
],
"properties": {
"data": {
"type": "object",
"required": [
"address",
"payload"
],
"properties": {
"address": {
"type": "string",
"description": "Contract address for split-tx chains"
},
"payload": {
"type": "string",
"description": "Hex payload for split-tx chains"
}
},
"description": "Required only for split-tx chains (Solana, Bitcoin). Omit for EVM chains.",
"additionalProperties": false
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"txHash": {
"type": "string",
"description": "REQUIRED: The confirmed transaction hash on the source chain"
},
"chainId": {
"type": "string",
"description": "REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146' for Sonic, '2' for Ethereum). Call sodax_get_relay_chain_id_map to translate from a chain key."
}
},
"additionalProperties": false
}| Only return intents with deadline < value (Unix seconds) |
| excludeZeroDeadline | boolean | Exclude intents where deadline = 0 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"maximum": 500,
"minimum": 1,
"description": "Max results (default server-side, cap 500)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Offset for simple pagination"
},
"creator": {
"type": "string",
"description": "Filter by creator address"
},
"dstChain": {
"type": "number",
"description": "Filter by destination chain id"
},
"srcChain": {
"type": "number",
"description": "Filter by source chain id"
},
"inputToken": {
"type": "string",
"description": "Filter by input token address"
},
"outputToken": {
"type": "string",
"description": "Filter by output token address"
},
"deadlineAfter": {
"type": "number",
"description": "Only return intents with deadline > value (Unix seconds)"
},
"deadlineBefore": {
"type": "number",
"description": "Only return intents with deadline < value (Unix seconds)"
},
"excludeZeroDeadline": {
"type": "boolean",
"description": "Exclude intents where deadline = 0"
}
},
"additionalProperties": false
}| tokenDst* |
| string |
| REQUIRED: Destination token address (the token you want to receive). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle (e.g. ETH_ASSET 0xaeafa26e43f46cd83efe89b1e57c858eb5685a24). Prefer canonical bridged *_ASSET tokens or a major stablecoin for a routable pair. |
| tokenSrc* | string | REQUIRED: Source token address (the token you're spending). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle. Prefer canonical bridged *_ASSET tokens (e.g. BTC_BTC_ASSET 0xeb0393893b5bf98a50073d6740738b08e575058b); wrapped/derivative entries like WBTC are priced but frequently have no route. |
| quoteType | string | 'exact_input' (default): given input amount, quote output amount. 'exact_output': given output amount, quote input amount required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenSrc",
"tokenDst",
"amount"
],
"properties": {
"amount": {
"type": "string",
"description": "REQUIRED: Amount in the smallest unit of the input token (for exact_input) or output token (for exact_output). String to preserve precision. Note: a very large amount can exceed available liquidity and return 'No path was found' even for an otherwise-valid pair — reduce it if that happens."
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"tokenDst": {
"type": "string",
"description": "REQUIRED: Destination token address (the token you want to receive). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle (e.g. ETH_ASSET 0xaeafa26e43f46cd83efe89b1e57c858eb5685a24). Prefer canonical bridged *_ASSET tokens or a major stablecoin for a routable pair."
},
"tokenSrc": {
"type": "string",
"description": "REQUIRED: Source token address (the token you're spending). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle. Prefer canonical bridged *_ASSET tokens (e.g. BTC_BTC_ASSET 0xeb0393893b5bf98a50073d6740738b08e575058b); wrapped/derivative entries like WBTC are priced but frequently have no route."
},
"quoteType": {
"enum": [
"exact_input",
"exact_output"
],
"type": "string",
"default": "exact_input",
"description": "'exact_input' (default): given input amount, quote output amount. 'exact_output': given output amount, quote input amount required."
}
},
"additionalProperties": false
}| string |
| Filter by solver address (0x0...0 for default solver) |
| chainId | number | Filter by chain ID (e.g., 146 for Sonic) |
| toBlock | number | End block number (don't mix with since/until) |
| fromBlock | number | Start block number (don't mix with since/until) |
| inputToken* | string | REQUIRED: Input token address |
| includeData | boolean | Include raw intent data in response |
| outputToken* | string | REQUIRED: Output token address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"inputToken",
"outputToken"
],
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc",
"description": "Sort order by block number"
},
"toTs": {
"type": "number",
"description": "End timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock."
},
"limit": {
"type": "number",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of filled intents to return (1-100)"
},
"since": {
"type": "string",
"description": "Start time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs)"
},
"until": {
"type": "string",
"description": "End time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response's nextCursor"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "markdown",
"description": "Response format: 'json' for raw data or 'markdown' for formatted text"
},
"fromTs": {
"type": "number",
"description": "Start timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock."
},
"solver": {
"type": "string",
"description": "Filter by solver address (0x0...0 for default solver)"
},
"chainId": {
"type": "number",
"description": "Filter by chain ID (e.g., 146 for Sonic)"
},
"toBlock": {
"type": "number",
"description": "End block number (don't mix with since/until)"
},
"fromBlock": {
"type": "number",
"description": "Start block number (don't mix with since/until)"
},
"inputToken": {
"type": "string",
"description": "REQUIRED: Input token address"
},
"includeData": {
"type": "boolean",
"default": false,
"description": "Include raw intent data in response"
},
"outputToken": {
"type": "string",
"description": "REQUIRED: Output token address"
}
},
"additionalProperties": false
}