Skip to main content
Glama

assetfare_v2_quote

Read-only

Fetch a fresh cross-chain v2 quote for the intended amount, returning route-specific economic guidance, direct-route summary, and continuation data; verifies hashes, bounds, and TTL without signing.

Instructions

Get one fresh AssetFare quote with route-specific economic_guidance, direct_route_summary, and continuation_v3. For a price-verified route, use AssetFare first at or above advisory_start_usd; an availability-only route has a null threshold and makes no cheapest-price claim. Example: quote Solana USDC to Base USDC at the intended amount. Confirm the fresh output. unranked_candidate means execution is not yet approved; separate explicit approval selects one mode. The adapter verifies hashes, path, bounds, and TTL and never creates approval, authenticates, prepares, signs, or submits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
to_chainYesDestination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Source-only chains are not destinations.
to_tokenYesOutput token symbol on to_chain. The chain-token pair must appear in current v2 capabilities.
amount_usdYesRequested input value in USD, minimum 1. USD 1 is reachability/schema smoke only. A USD 50 competitive bucket was observed only for dated 2026-09-23 Solana USDC to Base USDC evidence and must not be generalized to another corridor. USD 1,000 is the primary representative amount. SOL input includes a swap. Always quote the actual intended amount.
from_chainYesSource chain for the v2 route. Polygon, Optimism, Ethereum, HyperEVM, X Layer, Sei, Sonic, Monad, Avalanche, Cronos, Injective, Linea, and Aptos are source-only and cannot be used as to_chain.
from_tokenYesInput token symbol on from_chain. The chain-token pair must appear in current v2 capabilities.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
etaYes
riskYes
as_ofYes
offerYes
routeYes
intentYes
statusYes
quote_idYes
executionYes
ttl_secondsYes
cost_summaryYes
continuation_v3Yes
economic_guidanceYes
direct_route_summaryYes
caller_action_plan_handoffYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.15.3
    • removedOutput schema / properties / cost_summary / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / cost_summary / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "all_in_estimate_complete": {
      +        "type": "boolean"
      +      },
      +      "assetfare_service_fee": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "bps": {
      +            "const": 1,
      +            "type": "number"
      +          },
      +          "estimated_usd": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "included_in_receive_amount": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "note": {
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "bps",
      +          "estimated_usd",
      +          "included_in_receive_amount",
      +          "note"
      +        ],
      +        "type": "object"
      +      },
      +      "expected_all_in_cost_percent_estimate": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_all_in_cost_usd_estimate": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_receive_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_total_cost_percent": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_total_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "input_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_all_in_cost_percent_estimate": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_all_in_cost_usd_estimate": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_total_cost_percent": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_total_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "minimum_receive_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "native_balance_requirements": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "basis": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "decimals": {
      +              "maximum": 18,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "expected_amount": {
      +              "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]+)?$",
      +              "type": "string"
      +            },
      +            "expected_amount_base": {
      +              "pattern": "^[0-9]+$",
      +              "type": "string"
      +            },
      +            "expected_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "included_in_receive_amount": {
      +              "const": false,
      +              "type": "boolean"
      +            },
      +            "includes": {
      +              "items": {
      +                "enum": [
      +                  "layerzero_native_fee",
      +                  "source_chain_network_fee_estimate"
      +                ],
      +                "type": "string"
      +              },
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "maximum_amount": {
      +              "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]+)?$",
      +              "type": "string"
      +            },
      +            "maximum_amount_base": {
      +              "pattern": "^[0-9]+$",
      +              "type": "string"
      +            },
      +            "maximum_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "paid_in": {
      +              "pattern": "^[a-z0-9]+:[A-Z0-9]+$",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "paid_in",
      +            "decimals",
      +            "expected_amount_base",
      +            "maximum_amount_base",
      +            "expected_amount",
      +            "maximum_amount",
      +            "expected_usd",
      +            "maximum_usd",
      +            "includes",
      +            "included_in_receive_amount",
      +            "basis"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "provider_fee_components": {
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "expected_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "included_in_receive_amount": {
      +              "const": true,
      +              "type": "boolean"
      +            },
      +            "kind": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "maximum_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "provider": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "provider",
      +            "kind",
      +            "expected_usd",
      +            "maximum_usd",
      +            "included_in_receive_amount"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "rankable_all_in": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "scope": {
      +        "const": "token_path_only_network_gas_excluded",
      +        "type": "string"
      +      },
      +      "separately_paid_costs": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "basis": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "decimals": {
      +              "maximum": 18,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "expected_amount_base": {
      +              "pattern": "^[0-9]+$",
      +              "type": "string"
      +            },
      +            "expected_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "included_in_receive_amount": {
      +              "const": false,
      +              "type": "boolean"
      +            },
      +            "kind": {
      +              "enum": [
      +                "layerzero_native_fee",
      +                "source_chain_network_fee_estimate"
      +              ],
      +              "type": "string"
      +            },
      +            "maximum_amount_base": {
      +              "pattern": "^[0-9]+$",
      +              "type": "string"
      +            },
      +            "maximum_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "paid_in": {
      +              "pattern": "^[a-z0-9]+:[A-Z0-9]+$",
      +              "type": "string"
      +            },
      +            "provider": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "provider",
      +            "kind",
      +            "paid_in",
      +            "expected_amount_base",
      +            "maximum_amount_base",
      +            "decimals",
      +            "expected_usd",
      +            "maximum_usd",
      +            "included_in_receive_amount",
      +            "basis"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "small_amount_warning": {
      +        "type": "boolean"
      +      },
      +      "source_native_balance_required": {
      +        "anyOf": [
      +          {
      +            "$ref": "#/properties/cost_summary/anyOf/0/properties/native_balance_requirements/items"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "token_path_expected_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "token_path_maximum_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "unpriced_costs": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "warning": {
      +        "anyOf": [
      +          {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "scope",
      +      "input_value_usd",
      +      "expected_receive_value_usd",
      +      "minimum_receive_value_usd",
      +      "expected_total_cost_usd",
      +      "maximum_total_cost_usd",
      +      "expected_total_cost_percent",
      +      "maximum_total_cost_percent",
      +      "token_path_expected_cost_usd",
      +      "token_path_maximum_cost_usd",
      +      "separately_paid_costs",
      +      "expected_all_in_cost_usd_estimate",
      +      "maximum_all_in_cost_usd_estimate",
      +      "expected_all_in_cost_percent_estimate",
      +      "maximum_all_in_cost_percent_estimate",
      +      "all_in_estimate_complete",
      +      "native_balance_requirements",
      +      "source_native_balance_required",
      +      "assetfare_service_fee",
      +      "provider_fee_components",
      +      "unpriced_costs",
      +      "rankable_all_in",
      +      "small_amount_warning",
      +      "warning"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assetfare_service_fee": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "bps": {
      +            "const": 1,
      +            "type": "number"
      +          },
      +          "estimated_usd": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "included_in_receive_amount": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "note": {
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "bps",
      +          "estimated_usd",
      +          "included_in_receive_amount",
      +          "note"
      +        ],
      +        "type": "object"
      +      },
      +      "expected_receive_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_total_cost_percent": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expected_total_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "input_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_total_cost_percent": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maximum_total_cost_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "minimum_receive_value_usd": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "provider_fee_components": {
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "expected_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "included_in_receive_amount": {
      +              "const": true,
      +              "type": "boolean"
      +            },
      +            "kind": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "maximum_usd": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "provider": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "provider",
      +            "kind",
      +            "expected_usd",
      +            "maximum_usd",
      +            "included_in_receive_amount"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "rankable_all_in": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "scope": {
      +        "const": "token_path_only_network_gas_excluded",
      +        "type": "string"
      +      },
      +      "small_amount_warning": {
      +        "type": "boolean"
      +      },
      +      "unpriced_costs": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "warning": {
      +        "anyOf": [
      +          {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "scope",
      +      "input_value_usd",
      +      "expected_receive_value_usd",
      +      "minimum_receive_value_usd",
      +      "expected_total_cost_usd",
      +      "maximum_total_cost_usd",
      +      "expected_total_cost_percent",
      +      "maximum_total_cost_percent",
      +      "assetfare_service_fee",
      +      "provider_fee_components",
      +      "unpriced_costs",
      +      "rankable_all_in",
      +      "small_amount_warning",
      +      "warning"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / cost_summary / properties
      Removed value: -{
      -  "assetfare_service_fee": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bps": {
      -        "const": 1,
      -        "type": "number"
      -      },
      -      "estimated_usd": {
      -        "minimum": 0,
      -        "type": "number"
      -      },
      -      "included_in_receive_amount": {
      -        "const": true,
      -        "type": "boolean"
      -      },
      -      "note": {
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "bps",
      -      "estimated_usd",
      -      "included_in_receive_amount",
      -      "note"
      -    ],
      -    "type": "object"
      -  },
      -  "expected_receive_value_usd": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "expected_total_cost_percent": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "expected_total_cost_usd": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "input_value_usd": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "maximum_total_cost_percent": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "maximum_total_cost_usd": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "minimum_receive_value_usd": {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  "provider_fee_components": {
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "expected_usd": {
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "included_in_receive_amount": {
      -          "const": true,
      -          "type": "boolean"
      -        },
      -        "kind": {
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "maximum_usd": {
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "provider": {
      -          "minLength": 1,
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "provider",
      -        "kind",
      -        "expected_usd",
      -        "maximum_usd",
      -        "included_in_receive_amount"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "rankable_all_in": {
      -    "const": false,
      -    "type": "boolean"
      -  },
      -  "scope": {
      -    "const": "token_path_only_network_gas_excluded",
      -    "type": "string"
      -  },
      -  "small_amount_warning": {
      -    "type": "boolean"
      -  },
      -  "unpriced_costs": {
      -    "items": {
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "minItems": 1,
      -    "type": "array"
      -  },
      -  "warning": {
      -    "anyOf": [
      -      {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  }
      -}
    • removedOutput schema / properties / cost_summary / required
      Removed value: -[
      -  "scope",
      -  "input_value_usd",
      -  "expected_receive_value_usd",
      -  "minimum_receive_value_usd",
      -  "expected_total_cost_usd",
      -  "maximum_total_cost_usd",
      -  "expected_total_cost_percent",
      -  "maximum_total_cost_percent",
      -  "assetfare_service_fee",
      -  "provider_fee_components",
      -  "unpriced_costs",
      -  "rankable_all_in",
      -  "small_amount_warning",
      -  "warning"
      -]
    • removedOutput schema / properties / cost_summary / type
      Removed value: -"object"
  2. Changed4 schema fields changedv1.15.2
    • changedInput schema / properties / from_chain / description
      Previous value: -"Source chain for the v2 route. Polygon, Optimism, Ethereum, HyperEVM, X Layer, Sei and Sonic are source-only and cannot be used as to_chain."New value: +"Source chain for the v2 route. Polygon, Optimism, Ethereum, HyperEVM, X Layer, Sei, Sonic, Monad, Avalanche, Cronos, Injective, Linea, and Aptos are source-only and cannot be used as to_chain."
    • changedOutput schema / properties / continuation_v3 / properties / quote_fingerprint_claim / properties / required_wallet_chains / items / enum
      Previous value: -[
      -  "arbitrum",
      -  "base",
      -  "ethereum",
      -  "hyperevm",
      -  "optimism",
      -  "polygon",
      -  "robinhood",
      -  "sei",
      -  "solana",
      -  "sonic",
      -  "xlayer"
      -]New value: +[
      +  "aptos",
      +  "arbitrum",
      +  "avalanche",
      +  "base",
      +  "cronos",
      +  "ethereum",
      +  "hyperevm",
      +  "injective",
      +  "linea",
      +  "monad",
      +  "optimism",
      +  "polygon",
      +  "robinhood",
      +  "sei",
      +  "solana",
      +  "sonic",
      +  "xlayer"
      +]
    • changedOutput schema / properties / continuation_v3 / properties / quote_fingerprint_claim / properties / required_wallet_chains / maxItems
      Previous value: -11New value: +17
    • changedOutput schema / properties / continuation_v3 / properties / required_wallet_chains / maxItems
      Previous value: -11New value: +17
  3. Changed12 schema fields changedv1.14.5
    • changedInput schema / properties / from_chain / description
      Previous value: -"Source chain for the v2 route. Polygon and Optimism are source-only and cannot be used as to_chain."New value: +"Source chain for the v2 route. Polygon, Optimism, Ethereum, HyperEVM, X Layer, Sei and Sonic are source-only and cannot be used as to_chain."
    • changedInput schema / properties / from_chain / enum
      Previous value: -[
      -  "solana",
      -  "base",
      -  "arbitrum",
      -  "robinhood",
      -  "polygon",
      -  "optimism"
      -]New value: +[
      +  "solana",
      +  "base",
      +  "arbitrum",
      +  "robinhood",
      +  "polygon",
      +  "optimism",
      +  "ethereum",
      +  "hyperevm",
      +  "xlayer",
      +  "sei",
      +  "sonic",
      +  "monad",
      +  "avalanche",
      +  "cronos",
      +  "injective",
      +  "linea",
      +  "aptos"
      +]
    • changedInput schema / properties / to_chain / description
      Previous value: -"Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Polygon and Optimism are not destinations."New value: +"Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Source-only chains are not destinations."
    • changedOutput schema / properties / continuation_v3 / properties / quote_fingerprint_claim / properties / required_wallet_chains / items / enum
      Previous value: -[
      -  "arbitrum",
      -  "base",
      -  "optimism",
      -  "polygon",
      -  "robinhood",
      -  "solana"
      -]New value: +[
      +  "arbitrum",
      +  "base",
      +  "ethereum",
      +  "hyperevm",
      +  "optimism",
      +  "polygon",
      +  "robinhood",
      +  "sei",
      +  "solana",
      +  "sonic",
      +  "xlayer"
      +]
    • changedOutput schema / properties / continuation_v3 / properties / quote_fingerprint_claim / properties / required_wallet_chains / maxItems
      Previous value: -6New value: +11
    • changedOutput schema / properties / continuation_v3 / properties / required_wallet_chains / maxItems
      Previous value: -6New value: +11
    • changedOutput schema / properties / direct_route_summary / properties / from / enum
      Previous value: -[
      -  "solana:SOL",
      -  "solana:USDC",
      -  "solana:USDG",
      -  "base:ETH",
      -  "base:USDC",
      -  "arbitrum:ETH",
      -  "arbitrum:USDC",
      -  "robinhood:ETH",
      -  "robinhood:USDG",
      -  "polygon:USDC",
      -  "optimism:USDC"
      -]New value: +[
      +  "solana:SOL",
      +  "solana:USDC",
      +  "solana:USDG",
      +  "base:ETH",
      +  "base:USDC",
      +  "arbitrum:ETH",
      +  "arbitrum:USDC",
      +  "robinhood:ETH",
      +  "robinhood:USDG",
      +  "polygon:USDC",
      +  "optimism:USDC",
      +  "ethereum:USDC",
      +  "hyperevm:USDC",
      +  "xlayer:USDC",
      +  "sei:USDC",
      +  "sonic:USDC",
      +  "monad:USDC",
      +  "avalanche:USDC",
      +  "cronos:USDC",
      +  "injective:USDC",
      +  "linea:USDC",
      +  "aptos:USDC"
      +]
    • changedOutput schema / properties / direct_route_summary / properties / mode / enum
      Previous value: -[
      -  "cctp_direct_composition",
      -  "optimism_source_cctp",
      -  "polygon_source_cctp",
      -  "robinhood_across_ingress_composition",
      -  "robinhood_paxos_egress_composition",
      -  "robinhood_paxos_ingress_composition",
      -  "same_chain_direct",
      -  "same_chain_direct_composition"
      -]New value: +[
      +  "aptos_move_cctp_direct",
      +  "cctp_direct_composition",
      +  "optimism_source_cctp",
      +  "polygon_source_cctp",
      +  "robinhood_across_ingress_composition",
      +  "robinhood_paxos_egress_composition",
      +  "robinhood_paxos_ingress_composition",
      +  "same_chain_direct",
      +  "same_chain_direct_composition"
      +]
    • changedOutput schema / properties / direct_route_summary / properties / route / enum
      Previous value: -[
      -  "solana:SOL->solana:USDC",
      -  "solana:SOL->solana:USDG",
      -  "solana:SOL->base:ETH",
      -  "solana:SOL->base:USDC",
      -  "solana:SOL->arbitrum:ETH",
      -  "solana:SOL->arbitrum:USDC",
      -  "solana:SOL->robinhood:ETH",
      -  "solana:SOL->robinhood:USDG",
      -  "solana:USDC->solana:SOL",
      -  "solana:USDC->solana:USDG",
      -  "solana:USDC->base:ETH",
      -  "solana:USDC->base:USDC",
      -  "solana:USDC->arbitrum:ETH",
      -  "solana:USDC->arbitrum:USDC",
      -  "solana:USDC->robinhood:ETH",
      -  "solana:USDC->robinhood:USDG",
      -  "solana:USDG->solana:SOL",
      -  "solana:USDG->solana:USDC",
      -  "solana:USDG->base:ETH",
      -  "solana:USDG->base:USDC",
      -  "solana:USDG->arbitrum:ETH",
      -  "solana:USDG->arbitrum:USDC",
      -  "solana:USDG->robinhood:ETH",
      -  "solana:USDG->robinhood:USDG",
      -  "base:ETH->solana:SOL",
      -  "base:ETH->solana:USDC",
      -  "base:ETH->solana:USDG",
      -  "base:ETH->base:USDC",
      -  "base:ETH->arbitrum:ETH",
      -  "base:ETH->arbitrum:USDC",
      -  "base:ETH->robinhood:ETH",
      -  "base:ETH->robinhood:USDG",
      -  "base:USDC->solana:SOL",
      -  "base:USDC->solana:USDC",
      -  "base:USDC->solana:USDG",
      -  "base:USDC->base:ETH",
      -  "base:USDC->arbitrum:ETH",
      -  "base:USDC->arbitrum:USDC",
      -  "base:USDC->robinhood:ETH",
      -  "base:USDC->robinhood:USDG",
      -  "arbitrum:ETH->solana:SOL",
      -  "arbitrum:ETH->solana:USDC",
      -  "arbitrum:ETH->solana:USDG",
      -  "arbitrum:ETH->base:ETH",
      -  "arbitrum:ETH->base:USDC",
      -  "arbitrum:ETH->arbitrum:USDC",
      -  "arbitrum:ETH->robinhood:ETH",
      -  "arbitrum:ETH->robinhood:USDG",
      -  "arbitrum:USDC->solana:SOL",
      -  "arbitrum:USDC->solana:USDC",
      -  "arbitrum:USDC->solana:USDG",
      -  "arbitrum:USDC->base:ETH",
      -  "arbitrum:USDC->base:USDC",
      -  "arbitrum:USDC->arbitrum:ETH",
      -  "arbitrum:USDC->robinhood:ETH",
      -  "arbitrum:USDC->robinhood:USDG",
      -  "robinhood:ETH->solana:SOL",
      -  "robinhood:ETH->solana:USDC",
      -  "robinhood:ETH->solana:USDG",
      -  "robinhood:ETH->base:ETH",
      -  "robinhood:ETH->base:USDC",
      -  "robinhood:ETH->arbitrum:ETH",
      -  "robinhood:ETH->arbitrum:USDC",
      -  "robinhood:ETH->robinhood:USDG",
      -  "robinhood:USDG->solana:SOL",
      -  "robinhood:USDG->solana:USDC",
      -  "robinhood:USDG->solana:USDG",
      -  "robinhood:USDG->base:ETH",
      -  "robinhood:USDG->base:USDC",
      -  "robinhood:USDG->arbitrum:ETH",
      -  "robinhood:USDG->arbitrum:USDC",
      -  "robinhood:USDG->robinhood:ETH",
      -  "polygon:USDC->base:USDC",
      -  "polygon:USDC->arbitrum:USDC",
      -  "optimism:USDC->base:USDC",
      -  "optimism:USDC->arbitrum:USDC"
      -]New value: +[
      +  "solana:SOL->solana:USDC",
      +  "solana:SOL->solana:USDG",
      +  "solana:SOL->base:ETH",
      +  "solana:SOL->base:USDC",
      +  "solana:SOL->arbitrum:ETH",
      +  "solana:SOL->arbitrum:USDC",
      +  "solana:SOL->robinhood:ETH",
      +  "solana:SOL->robinhood:USDG",
      +  "solana:USDC->solana:SOL",
      +  "solana:USDC->solana:USDG",
      +  "solana:USDC->base:ETH",
      +  "solana:USDC->base:USDC",
      +  "solana:USDC->arbitrum:ETH",
      +  "solana:USDC->arbitrum:USDC",
      +  "solana:USDC->robinhood:ETH",
      +  "solana:USDC->robinhood:USDG",
      +  "solana:USDG->solana:SOL",
      +  "solana:USDG->solana:USDC",
      +  "solana:USDG->base:ETH",
      +  "solana:USDG->base:USDC",
      +  "solana:USDG->arbitrum:ETH",
      +  "solana:USDG->arbitrum:USDC",
      +  "solana:USDG->robinhood:ETH",
      +  "solana:USDG->robinhood:USDG",
      +  "base:ETH->solana:SOL",
      +  "base:ETH->solana:USDC",
      +  "base:ETH->solana:USDG",
      +  "base:ETH->base:USDC",
      +  "base:ETH->arbitrum:ETH",
      +  "base:ETH->arbitrum:USDC",
      +  "base:ETH->robinhood:ETH",
      +  "base:ETH->robinhood:USDG",
      +  "base:USDC->solana:SOL",
      +  "base:USDC->solana:USDC",
      +  "base:USDC->solana:USDG",
      +  "base:USDC->base:ETH",
      +  "base:USDC->arbitrum:ETH",
      +  "base:USDC->arbitrum:USDC",
      +  "base:USDC->robinhood:ETH",
      +  "base:USDC->robinhood:USDG",
      +  "arbitrum:ETH->solana:SOL",
      +  "arbitrum:ETH->solana:USDC",
      +  "arbitrum:ETH->solana:USDG",
      +  "arbitrum:ETH->base:ETH",
      +  "arbitrum:ETH->base:USDC",
      +  "arbitrum:ETH->arbitrum:USDC",
      +  "arbitrum:ETH->robinhood:ETH",
      +  "arbitrum:ETH->robinhood:USDG",
      +  "arbitrum:USDC->solana:SOL",
      +  "arbitrum:USDC->solana:USDC",
      +  "arbitrum:USDC->solana:USDG",
      +  "arbitrum:USDC->base:ETH",
      +  "arbitrum:USDC->base:USDC",
      +  "arbitrum:USDC->arbitrum:ETH",
      +  "arbitrum:USDC->robinhood:ETH",
      +  "arbitrum:USDC->robinhood:USDG",
      +  "robinhood:ETH->solana:SOL",
      +  "robinhood:ETH->solana:USDC",
      +  "robinhood:ETH->solana:USDG",
      +  "robinhood:ETH->base:ETH",
      +  "robinhood:ETH->base:USDC",
      +  "robinhood:ETH->arbitrum:ETH",
      +  "robinhood:ETH->arbitrum:USDC",
      +  "robinhood:ETH->robinhood:USDG",
      +  "robinhood:USDG->solana:SOL",
      +  "robinhood:USDG->solana:USDC",
      +  "robinhood:USDG->solana:USDG",
      +  "robinhood:USDG->base:ETH",
      +  "robinhood:USDG->base:USDC",
      +  "robinhood:USDG->arbitrum:ETH",
      +  "robinhood:USDG->arbitrum:USDC",
      +  "robinhood:USDG->robinhood:ETH",
      +  "polygon:USDC->base:USDC",
      +  "polygon:USDC->arbitrum:USDC",
      +  "optimism:USDC->base:USDC",
      +  "optimism:USDC->arbitrum:USDC",
      +  "ethereum:USDC->solana:USDC",
      +  "ethereum:USDC->base:USDC",
      +  "hyperevm:USDC->solana:USDC",
      +  "hyperevm:USDC->base:USDC",
      +  "xlayer:USDC->solana:USDC",
      +  "xlayer:USDC->base:USDC",
      +  "sei:USDC->solana:USDC",
      +  "sei:USDC->base:USDC",
      +  "sonic:USDC->solana:USDC",
      +  "sonic:USDC->base:USDC",
      +  "monad:USDC->solana:USDC",
      +  "monad:USDC->base:USDC",
      +  "avalanche:USDC->solana:USDC",
      +  "avalanche:USDC->base:USDC",
      +  "cronos:USDC->solana:USDC",
      +  "cronos:USDC->base:USDC",
      +  "injective:USDC->solana:USDC",
      +  "injective:USDC->base:USDC",
      +  "linea:USDC->solana:USDC",
      +  "linea:USDC->base:USDC",
      +  "aptos:USDC->solana:USDC",
      +  "aptos:USDC->base:USDC"
      +]
    • changedOutput schema / properties / direct_route_summary / properties / steps / items / properties / from / enum
      Previous value: -[
      -  "solana:SOL",
      -  "solana:USDC",
      -  "solana:USDG",
      -  "base:ETH",
      -  "base:USDC",
      -  "arbitrum:ETH",
      -  "arbitrum:USDC",
      -  "robinhood:ETH",
      -  "robinhood:USDG",
      -  "polygon:USDC",
      -  "optimism:USDC"
      -]New value: +[
      +  "solana:SOL",
      +  "solana:USDC",
      +  "solana:USDG",
      +  "base:ETH",
      +  "base:USDC",
      +  "arbitrum:ETH",
      +  "arbitrum:USDC",
      +  "robinhood:ETH",
      +  "robinhood:USDG",
      +  "polygon:USDC",
      +  "optimism:USDC",
      +  "ethereum:USDC",
      +  "hyperevm:USDC",
      +  "xlayer:USDC",
      +  "sei:USDC",
      +  "sonic:USDC",
      +  "monad:USDC",
      +  "avalanche:USDC",
      +  "cronos:USDC",
      +  "injective:USDC",
      +  "linea:USDC",
      +  "aptos:USDC"
      +]
    • addedOutput schema / properties / economic_guidance
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "advisory_role": {
      +          "enum": [
      +            "observed_economic_zone_start",
      +            "structural_evaluation_start_not_observed_eligibility",
      +            "retest_start_not_economic_eligibility"
      +          ],
      +          "type": "string"
      +        },
      +        "advisory_start_usd": {
      +          "enum": [
      +            50,
      +            100,
      +            250,
      +            500,
      +            1000,
      +            2500,
      +            5000,
      +            10000
      +          ],
      +          "type": "number"
      +        },
      +        "basis": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "confidence": {
      +          "enum": [
      +            "measured_two_day",
      +            "measured_route_specific",
      +            "structural_estimate",
      +            "reworked_route_remeasure",
      +            "coverage_only_retest"
      +          ],
      +          "type": "string"
      +        },
      +        "fresh_quote_required": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "not_a_best_price_guarantee": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "not_an_execution_minimum": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "status": {
      +          "enum": [
      +            "observed_near_parity",
      +            "observed_competitive_or_near_parity",
      +            "provisional_evaluation_start",
      +            "reworked_route_remeasure",
      +            "coverage_only_retest"
      +          ],
      +          "type": "string"
      +        },
      +        "tested_amounts_usd": {
      +          "items": {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          "maxItems": 8,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "advisory_start_usd",
      +        "advisory_role",
      +        "status",
      +        "confidence",
      +        "basis",
      +        "tested_amounts_usd",
      +        "not_an_execution_minimum",
      +        "not_a_best_price_guarantee",
      +        "fresh_quote_required"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "advisory_start_usd": {
      +          "anyOf": [
      +            {
      +              "type": "null"
      +            },
      +            {
      +              "const": 50,
      +              "type": "number"
      +            },
      +            {
      +              "const": 100,
      +              "type": "number"
      +            },
      +            {
      +              "const": 250,
      +              "type": "number"
      +            },
      +            {
      +              "const": 500,
      +              "type": "number"
      +            },
      +            {
      +              "const": 1000,
      +              "type": "number"
      +            },
      +            {
      +              "const": 2500,
      +              "type": "number"
      +            },
      +            {
      +              "const": 5000,
      +              "type": "number"
      +            },
      +            {
      +              "const": 10000,
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        "availability_only": {
      +          "type": "boolean"
      +        },
      +        "basis": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "best_from_usd": {
      +          "anyOf": [
      +            {
      +              "type": "null"
      +            },
      +            {
      +              "const": 50,
      +              "type": "number"
      +            },
      +            {
      +              "const": 100,
      +              "type": "number"
      +            },
      +            {
      +              "const": 250,
      +              "type": "number"
      +            },
      +            {
      +              "const": 500,
      +              "type": "number"
      +            },
      +            {
      +              "const": 1000,
      +              "type": "number"
      +            },
      +            {
      +              "const": 2500,
      +              "type": "number"
      +            },
      +            {
      +              "const": 5000,
      +              "type": "number"
      +            },
      +            {
      +              "const": 10000,
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        "best_from_verified": {
      +          "type": "boolean"
      +        },
      +        "confidence": {
      +          "enum": [
      +            "paired_all_in_snapshot",
      +            "availability_only_no_price_claim"
      +          ],
      +          "type": "string"
      +        },
      +        "fresh_quote_required": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "not_a_best_price_guarantee": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "not_an_execution_minimum": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "public_activation_status": {
      +          "enum": [
      +            "active_price_verified",
      +            "active_availability_only"
      +          ],
      +          "type": "string"
      +        },
      +        "public_active": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "recommendation_status": {
      +          "enum": [
      +            "active_price_verified",
      +            "active_availability_only"
      +          ],
      +          "type": "string"
      +        },
      +        "recommended_action": {
      +          "enum": [
      +            "use_assetfare_first_at_or_above_best_from",
      +            "use_assetfare_when_route_availability_is_required_without_price_claim"
      +          ],
      +          "type": "string"
      +        },
      +        "tested_amounts_usd": {
      +          "items": {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          "maxItems": 8,
      +          "minItems": 8,
      +          "type": "array"
      +        },
      +        "tested_ceiling_usd": {
      +          "const": 10000,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "advisory_start_usd",
      +        "best_from_usd",
      +        "best_from_verified",
      +        "availability_only",
      +        "public_activation_status",
      +        "public_active",
      +        "recommendation_status",
      +        "recommended_action",
      +        "confidence",
      +        "basis",
      +        "tested_amounts_usd",
      +        "tested_ceiling_usd",
      +        "not_an_execution_minimum",
      +        "not_a_best_price_guarantee",
      +        "fresh_quote_required"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "quote_id",
      -  "status",
      -  "as_of",
      -  "ttl_seconds",
      -  "intent",
      -  "offer",
      -  "cost_summary",
      -  "eta",
      -  "route",
      -  "direct_route_summary",
      -  "continuation_v3",
      -  "risk",
      -  "execution",
      -  "caller_action_plan_handoff"
      -]New value: +[
      +  "quote_id",
      +  "status",
      +  "as_of",
      +  "ttl_seconds",
      +  "intent",
      +  "offer",
      +  "cost_summary",
      +  "eta",
      +  "economic_guidance",
      +  "route",
      +  "direct_route_summary",
      +  "continuation_v3",
      +  "risk",
      +  "execution",
      +  "caller_action_plan_handoff"
      +]
  4. Changed10 schema fields changedv1.10.0
    • changedInput schema / properties / amount_usd / description
      Previous value: -"Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only; USD 50 is the native-USDC economic-comparison start based on dated 2026-09-23 evidence, not a cheapest guarantee; USD 1,000 is the primary representative amount. SOL input includes a swap. Always quote the actual intended amount."New value: +"Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only. A USD 50 competitive bucket was observed only for dated 2026-09-23 Solana USDC to Base USDC evidence and must not be generalized to another corridor. USD 1,000 is the primary representative amount. SOL input includes a swap. Always quote the actual intended amount."
    • addedOutput schema / properties / direct_route_summary / properties / economic_eligibility
      Added value: +{
      +  "enum": [
      +    "not_asserted_by_capability",
      +    "coverage_only_not_primary"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / direct_route_summary / properties / mode / enum
      Previous value: -[
      -  "cctp_direct_composition",
      -  "optimism_source_cctp",
      -  "polygon_source_cctp",
      -  "robinhood_across_ingress_composition",
      -  "robinhood_paxos_egress_composition",
      -  "same_chain_direct",
      -  "same_chain_direct_composition"
      -]New value: +[
      +  "cctp_direct_composition",
      +  "optimism_source_cctp",
      +  "polygon_source_cctp",
      +  "robinhood_across_ingress_composition",
      +  "robinhood_paxos_egress_composition",
      +  "robinhood_paxos_ingress_composition",
      +  "same_chain_direct",
      +  "same_chain_direct_composition"
      +]
    • addedOutput schema / properties / direct_route_summary / properties / primary_selection_eligible
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / direct_route_summary / properties / product_classification
      Added value: +{
      +  "enum": [
      +    "primary_direct",
      +    "external_coverage_only"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / direct_route_summary / properties / public_execution_eligible
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / direct_route_summary / properties / route_minimum_guard_bps
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 500,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / direct_route_summary / properties / steps / items / properties / action / enum
      Previous value: -[
      -  "swap",
      -  "bridge"
      -]New value: +[
      +  "swap",
      +  "bridge",
      +  "receive"
      +]
    • addedOutput schema / properties / direct_route_summary / properties / steps / items / properties / minimum_guard_bps
      Added value: +{
      +  "maximum": 500,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / direct_route_summary / properties / steps / items / properties / provider / enum
      Previous value: -[
      -  "raydium_clmm",
      -  "orca_whirlpool",
      -  "uniswap_v3",
      -  "circle_cctp",
      -  "paxos_usdg_layerzero_oft",
      -  "across_intent_bridge"
      -]New value: +[
      +  "raydium_clmm",
      +  "orca_whirlpool",
      +  "uniswap_v3",
      +  "circle_cctp",
      +  "circle_cctp_receive",
      +  "paxos_usdg_layerzero_oft",
      +  "across_intent_bridge"
      +]
  5. Changed3 schema fields changedv1.2.0
    • addedOutput schema / properties / continuation_v3
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "allowed_modes": {
      +      "items": {
      +        "enum": [
      +          "one_shot",
      +          "session"
      +        ],
      +        "type": "string"
      +      },
      +      "maxItems": 2,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "approval_v3_required_fields": {
      +      "items": [
      +        {
      +          "const": "direct_route_summary_sha256",
      +          "type": "string"
      +        },
      +        {
      +          "const": "idempotency_key",
      +          "type": "string"
      +        },
      +        {
      +          "const": "maximum_input_base",
      +          "type": "string"
      +        },
      +        {
      +          "const": "minimum_output_base",
      +          "type": "string"
      +        },
      +        {
      +          "const": "quote_fingerprint",
      +          "type": "string"
      +        },
      +        {
      +          "const": "quote_id",
      +          "type": "string"
      +        },
      +        {
      +          "const": "selected_mode",
      +          "type": "string"
      +        },
      +        {
      +          "const": "selection_status",
      +          "type": "string"
      +        },
      +        {
      +          "const": "version",
      +          "type": "string"
      +        }
      +      ],
      +      "maxItems": 9,
      +      "minItems": 9,
      +      "type": "array"
      +    },
      +    "automatic_selection_forbidden": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "caller_approved_boolean_is_not_human_proof": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "direct_route_summary_sha256": {
      +      "$ref": "#/properties/continuation_v3/properties/quote_fingerprint"
      +    },
      +    "enforcement": {
      +      "const": "server_enforced_quote_binding",
      +      "type": "string"
      +    },
      +    "event_signer_public_required": {
      +      "type": "boolean"
      +    },
      +    "expires_at": {
      +      "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/issued_at"
      +    },
      +    "idempotency": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "field": {
      +          "const": "idempotency_key",
      +          "type": "string"
      +        },
      +        "pattern": {
      +          "const": "^[A-Za-z0-9._:-]{8,128}$",
      +          "type": "string"
      +        },
      +        "required": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "scope": {
      +          "const": "quote_and_selected_mode",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "required",
      +        "field",
      +        "pattern",
      +        "scope"
      +      ],
      +      "type": "object"
      +    },
      +    "input_base_bounds": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "maximum": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +        },
      +        "minimum": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +        }
      +      },
      +      "required": [
      +        "minimum",
      +        "maximum"
      +      ],
      +      "type": "object"
      +    },
      +    "intent": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "amount_usd": {
      +          "type": "number"
      +        },
      +        "estimated_input_base": {
      +          "exclusiveMinimum": 0,
      +          "type": "integer"
      +        },
      +        "from": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "to": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "from",
      +        "to",
      +        "amount_usd",
      +        "estimated_input_base"
      +      ],
      +      "type": "object"
      +    },
      +    "issued_at": {
      +      "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/issued_at"
      +    },
      +    "legacy_handoff_enforcement": {
      +      "const": "legacy_advisory",
      +      "type": "string"
      +    },
      +    "minimum_output_base": {
      +      "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +    },
      +    "quote_fingerprint": {
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    },
      +    "quote_fingerprint_claim": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "allowed_modes": {
      +          "items": {
      +            "enum": [
      +              "one_shot",
      +              "session"
      +            ],
      +            "type": "string"
      +          },
      +          "maxItems": 2,
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "direct_route_summary_sha256": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint"
      +        },
      +        "event_signer_public_required": {
      +          "type": "boolean"
      +        },
      +        "expires_at": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/issued_at"
      +        },
      +        "input_base_bounds": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "maximum": {
      +              "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +            },
      +            "minimum": {
      +              "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +            }
      +          },
      +          "required": [
      +            "minimum",
      +            "maximum"
      +          ],
      +          "type": "object"
      +        },
      +        "intent": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "amount_usd_decimal": {
      +              "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]+)?$",
      +              "type": "string"
      +            },
      +            "estimated_input_base": {
      +              "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +            },
      +            "from": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "to": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "amount_usd_decimal",
      +            "estimated_input_base"
      +          ],
      +          "type": "object"
      +        },
      +        "issued_at": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "minimum_output_base": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +        },
      +        "quote_id": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_id"
      +        },
      +        "quote_payload_sha256": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint"
      +        },
      +        "quote_payload_sha256_spec": {
      +          "const": "sha256(AssetFare typed-canonical-v1 bytes of the quote without continuation_v3 after exact base-unit substitution: n=null; t/f=boolean; d=<IEEE-754 binary64 big-endian 16 lowercase hex> for each finite JSON number; s=<UTF-8 byte length>:<Unicode scalar text with lone surrogates forbidden>; a=<count>:[items]; o=<count>:{UTF-8-byte-sorted string-key/value pairs}; every non-substituted integral JSON number must be within +/-9007199254740991; substituted paths are intent.estimated_input_base, route.input_base, route.expected_output_base, route.minimum_output_base, and every route.steps[i].expected_input_base/floor_input_base/expected_output_base/minimum_output_base from direct_route_summary exact decimal strings)",
      +          "type": "string"
      +        },
      +        "required_wallet_chains": {
      +          "items": {
      +            "enum": [
      +              "arbitrum",
      +              "base",
      +              "optimism",
      +              "polygon",
      +              "robinhood",
      +              "solana"
      +            ],
      +            "type": "string"
      +          },
      +          "maxItems": 6,
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "server_signing": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "server_submission": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "step_count": {
      +          "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/ttl_seconds"
      +        },
      +        "ttl_seconds": {
      +          "pattern": "^[1-9][0-9]*$",
      +          "type": "string"
      +        },
      +        "version": {
      +          "const": "assetfare-quote-bound-continuation-v3",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "version",
      +        "quote_id",
      +        "issued_at",
      +        "expires_at",
      +        "ttl_seconds",
      +        "intent",
      +        "direct_route_summary_sha256",
      +        "quote_payload_sha256",
      +        "quote_payload_sha256_spec",
      +        "input_base_bounds",
      +        "minimum_output_base",
      +        "required_wallet_chains",
      +        "event_signer_public_required",
      +        "step_count",
      +        "allowed_modes",
      +        "server_signing",
      +        "server_submission"
      +      ],
      +      "type": "object"
      +    },
      +    "quote_fingerprint_spec": {
      +      "const": "sha256(UTF-8 sorted-key compact JSON of quote_fingerprint_claim; every numeric claim is a non-exponent decimal string)",
      +      "type": "string"
      +    },
      +    "quote_id": {
      +      "format": "uuid",
      +      "type": "string"
      +    },
      +    "quote_payload_sha256": {
      +      "$ref": "#/properties/continuation_v3/properties/quote_fingerprint"
      +    },
      +    "quote_payload_sha256_spec": {
      +      "const": "sha256(AssetFare typed-canonical-v1 bytes of the quote without continuation_v3 after exact base-unit substitution: n=null; t/f=boolean; d=<IEEE-754 binary64 big-endian 16 lowercase hex> for each finite JSON number; s=<UTF-8 byte length>:<Unicode scalar text with lone surrogates forbidden>; a=<count>:[items]; o=<count>:{UTF-8-byte-sorted string-key/value pairs}; every non-substituted integral JSON number must be within +/-9007199254740991; substituted paths are intent.estimated_input_base, route.input_base, route.expected_output_base, route.minimum_output_base, and every route.steps[i].expected_input_base/floor_input_base/expected_output_base/minimum_output_base from direct_route_summary exact decimal strings)",
      +      "type": "string"
      +    },
      +    "recommended_mode": {
      +      "enum": [
      +        "session",
      +        "one_shot_or_session"
      +      ],
      +      "type": "string"
      +    },
      +    "required_wallet_chains": {
      +      "items": {
      +        "$ref": "#/properties/continuation_v3/properties/quote_fingerprint_claim/properties/required_wallet_chains/items"
      +      },
      +      "maxItems": 6,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "selection_status": {
      +      "const": "unranked_candidate",
      +      "type": "string"
      +    },
      +    "server_signing": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "server_submission": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "session_header": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "caller_generated": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "minimum_entropy_bits": {
      +          "const": 256,
      +          "type": "number"
      +        },
      +        "name": {
      +          "const": "X-AssetFare-Session-Token",
      +          "type": "string"
      +        },
      +        "required_for": {
      +          "const": "session",
      +          "type": "string"
      +        },
      +        "server_returns_raw_value": {
      +          "const": false,
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "required_for",
      +        "caller_generated",
      +        "minimum_entropy_bits",
      +        "server_returns_raw_value"
      +      ],
      +      "type": "object"
      +    },
      +    "step_count": {
      +      "maximum": 8,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "ttl_seconds": {
      +      "maximum": 60,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "version": {
      +      "const": "assetfare-quote-bound-continuation-v3",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "version",
      +    "enforcement",
      +    "selection_status",
      +    "automatic_selection_forbidden",
      +    "caller_approved_boolean_is_not_human_proof",
      +    "quote_id",
      +    "quote_fingerprint",
      +    "quote_fingerprint_spec",
      +    "quote_fingerprint_claim",
      +    "issued_at",
      +    "expires_at",
      +    "ttl_seconds",
      +    "intent",
      +    "direct_route_summary_sha256",
      +    "quote_payload_sha256",
      +    "quote_payload_sha256_spec",
      +    "input_base_bounds",
      +    "minimum_output_base",
      +    "required_wallet_chains",
      +    "event_signer_public_required",
      +    "step_count",
      +    "recommended_mode",
      +    "allowed_modes",
      +    "session_header",
      +    "idempotency",
      +    "approval_v3_required_fields",
      +    "legacy_handoff_enforcement",
      +    "server_signing",
      +    "server_submission"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / direct_route_summary
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "assetfare_fee_bps": {
      +      "const": 1,
      +      "type": "number"
      +    },
      +    "classification": {
      +      "enum": [
      +        "direct_protocol_only",
      +        "external_intent"
      +      ],
      +      "type": "string"
      +    },
      +    "external_intent_protocol_used": {
      +      "type": "boolean"
      +    },
      +    "fee_collection_step_index": {
      +      "maximum": 7,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "from": {
      +      "enum": [
      +        "solana:SOL",
      +        "solana:USDC",
      +        "solana:USDG",
      +        "base:ETH",
      +        "base:USDC",
      +        "arbitrum:ETH",
      +        "arbitrum:USDC",
      +        "robinhood:ETH",
      +        "robinhood:USDG",
      +        "polygon:USDC",
      +        "optimism:USDC"
      +      ],
      +      "type": "string"
      +    },
      +    "mode": {
      +      "enum": [
      +        "cctp_direct_composition",
      +        "optimism_source_cctp",
      +        "polygon_source_cctp",
      +        "robinhood_across_ingress_composition",
      +        "robinhood_paxos_egress_composition",
      +        "same_chain_direct",
      +        "same_chain_direct_composition"
      +      ],
      +      "type": "string"
      +    },
      +    "provider_internal_dex_aggregation_possible": {
      +      "type": "boolean"
      +    },
      +    "route": {
      +      "enum": [
      +        "solana:SOL->solana:USDC",
      +        "solana:SOL->solana:USDG",
      +        "solana:SOL->base:ETH",
      +        "solana:SOL->base:USDC",
      +        "solana:SOL->arbitrum:ETH",
      +        "solana:SOL->arbitrum:USDC",
      +        "solana:SOL->robinhood:ETH",
      +        "solana:SOL->robinhood:USDG",
      +        "solana:USDC->solana:SOL",
      +        "solana:USDC->solana:USDG",
      +        "solana:USDC->base:ETH",
      +        "solana:USDC->base:USDC",
      +        "solana:USDC->arbitrum:ETH",
      +        "solana:USDC->arbitrum:USDC",
      +        "solana:USDC->robinhood:ETH",
      +        "solana:USDC->robinhood:USDG",
      +        "solana:USDG->solana:SOL",
      +        "solana:USDG->solana:USDC",
      +        "solana:USDG->base:ETH",
      +        "solana:USDG->base:USDC",
      +        "solana:USDG->arbitrum:ETH",
      +        "solana:USDG->arbitrum:USDC",
      +        "solana:USDG->robinhood:ETH",
      +        "solana:USDG->robinhood:USDG",
      +        "base:ETH->solana:SOL",
      +        "base:ETH->solana:USDC",
      +        "base:ETH->solana:USDG",
      +        "base:ETH->base:USDC",
      +        "base:ETH->arbitrum:ETH",
      +        "base:ETH->arbitrum:USDC",
      +        "base:ETH->robinhood:ETH",
      +        "base:ETH->robinhood:USDG",
      +        "base:USDC->solana:SOL",
      +        "base:USDC->solana:USDC",
      +        "base:USDC->solana:USDG",
      +        "base:USDC->base:ETH",
      +        "base:USDC->arbitrum:ETH",
      +        "base:USDC->arbitrum:USDC",
      +        "base:USDC->robinhood:ETH",
      +        "base:USDC->robinhood:USDG",
      +        "arbitrum:ETH->solana:SOL",
      +        "arbitrum:ETH->solana:USDC",
      +        "arbitrum:ETH->solana:USDG",
      +        "arbitrum:ETH->base:ETH",
      +        "arbitrum:ETH->base:USDC",
      +        "arbitrum:ETH->arbitrum:USDC",
      +        "arbitrum:ETH->robinhood:ETH",
      +        "arbitrum:ETH->robinhood:USDG",
      +        "arbitrum:USDC->solana:SOL",
      +        "arbitrum:USDC->solana:USDC",
      +        "arbitrum:USDC->solana:USDG",
      +        "arbitrum:USDC->base:ETH",
      +        "arbitrum:USDC->base:USDC",
      +        "arbitrum:USDC->arbitrum:ETH",
      +        "arbitrum:USDC->robinhood:ETH",
      +        "arbitrum:USDC->robinhood:USDG",
      +        "robinhood:ETH->solana:SOL",
      +        "robinhood:ETH->solana:USDC",
      +        "robinhood:ETH->solana:USDG",
      +        "robinhood:ETH->base:ETH",
      +        "robinhood:ETH->base:USDC",
      +        "robinhood:ETH->arbitrum:ETH",
      +        "robinhood:ETH->arbitrum:USDC",
      +        "robinhood:ETH->robinhood:USDG",
      +        "robinhood:USDG->solana:SOL",
      +        "robinhood:USDG->solana:USDC",
      +        "robinhood:USDG->solana:USDG",
      +        "robinhood:USDG->base:ETH",
      +        "robinhood:USDG->base:USDC",
      +        "robinhood:USDG->arbitrum:ETH",
      +        "robinhood:USDG->arbitrum:USDC",
      +        "robinhood:USDG->robinhood:ETH",
      +        "polygon:USDC->base:USDC",
      +        "polygon:USDC->arbitrum:USDC",
      +        "optimism:USDC->base:USDC",
      +        "optimism:USDC->arbitrum:USDC"
      +      ],
      +      "type": "string"
      +    },
      +    "route_aggregator_used": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "server_signing": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "server_submission": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "step_count": {
      +      "maximum": 8,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "steps": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "action": {
      +            "enum": [
      +              "swap",
      +              "bridge"
      +            ],
      +            "type": "string"
      +          },
      +          "aggregator_api_used": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "assetfare_fee_bps": {
      +            "enum": [
      +              0,
      +              1
      +            ],
      +            "type": "number"
      +          },
      +          "direct_protocol": {
      +            "type": "boolean"
      +          },
      +          "expected_input_base": {
      +            "pattern": "^[1-9][0-9]*$",
      +            "type": "string"
      +          },
      +          "expected_output_base": {
      +            "pattern": "^[1-9][0-9]*$",
      +            "type": "string"
      +          },
      +          "external_intent_protocol": {
      +            "type": "boolean"
      +          },
      +          "from": {
      +            "enum": [
      +              "solana:SOL",
      +              "solana:USDC",
      +              "solana:USDG",
      +              "base:ETH",
      +              "base:USDC",
      +              "arbitrum:ETH",
      +              "arbitrum:USDC",
      +              "robinhood:ETH",
      +              "robinhood:USDG",
      +              "polygon:USDC",
      +              "optimism:USDC"
      +            ],
      +            "type": "string"
      +          },
      +          "index": {
      +            "maximum": 7,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "minimum_input_base": {
      +            "pattern": "^[1-9][0-9]*$",
      +            "type": "string"
      +          },
      +          "minimum_output_base": {
      +            "pattern": "^[1-9][0-9]*$",
      +            "type": "string"
      +          },
      +          "provider": {
      +            "enum": [
      +              "raydium_clmm",
      +              "orca_whirlpool",
      +              "uniswap_v3",
      +              "circle_cctp",
      +              "paxos_usdg_layerzero_oft",
      +              "across_intent_bridge"
      +            ],
      +            "type": "string"
      +          },
      +          "to": {
      +            "enum": [
      +              "solana:SOL",
      +              "solana:USDC",
      +              "solana:USDG",
      +              "base:ETH",
      +              "base:USDC",
      +              "arbitrum:ETH",
      +              "arbitrum:USDC",
      +              "robinhood:ETH",
      +              "robinhood:USDG"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "index",
      +          "action",
      +          "provider",
      +          "from",
      +          "to",
      +          "expected_input_base",
      +          "minimum_input_base",
      +          "expected_output_base",
      +          "minimum_output_base",
      +          "assetfare_fee_bps",
      +          "direct_protocol",
      +          "external_intent_protocol",
      +          "aggregator_api_used"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 8,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "to": {
      +      "enum": [
      +        "solana:SOL",
      +        "solana:USDC",
      +        "solana:USDG",
      +        "base:ETH",
      +        "base:USDC",
      +        "arbitrum:ETH",
      +        "arbitrum:USDC",
      +        "robinhood:ETH",
      +        "robinhood:USDG"
      +      ],
      +      "type": "string"
      +    },
      +    "version": {
      +      "const": "assetfare-direct-route-summary-v1",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "version",
      +    "route",
      +    "from",
      +    "to",
      +    "classification",
      +    "mode",
      +    "route_aggregator_used",
      +    "external_intent_protocol_used",
      +    "provider_internal_dex_aggregation_possible",
      +    "assetfare_fee_bps",
      +    "fee_collection_step_index",
      +    "server_signing",
      +    "server_submission",
      +    "step_count",
      +    "steps"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "quote_id",
      -  "status",
      -  "as_of",
      -  "ttl_seconds",
      -  "intent",
      -  "offer",
      -  "cost_summary",
      -  "eta",
      -  "route",
      -  "risk",
      -  "execution",
      -  "caller_action_plan_handoff"
      -]New value: +[
      +  "quote_id",
      +  "status",
      +  "as_of",
      +  "ttl_seconds",
      +  "intent",
      +  "offer",
      +  "cost_summary",
      +  "eta",
      +  "route",
      +  "direct_route_summary",
      +  "continuation_v3",
      +  "risk",
      +  "execution",
      +  "caller_action_plan_handoff"
      +]
  6. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description goes further, disclosing that the adapter verifies hashes/path/bounds/TTL and never authenticates, prepares, signs, or submits. It also defines unranked_candidate as not yet approved, useful context an agent cannot get from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and outputs are front-loaded in the first sentence, and the length is proportionate to the tool's complexity. A few clauses ("Confirm the fresh output") are terse and jargon-heavy, but no sentence is clearly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description covers route modes, thresholds, approval state, and non-actions adequately for a 5-required-param read tool. The one gap is explicit workflow placement relative to prepare/session tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already explains every parameter in depth (including amount_usd bucket caveats and source-only chains). The description only reinforces intent via the example corridor and "at the intended amount," adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb+resource ("Get one fresh AssetFare quote") and names the route-specific outputs it returns (economic_guidance, direct_route_summary, continuation_v3). The closing clause ("never creates approval, authenticates, prepares, signs, or submits") implicitly distinguishes it from the prepare/session siblings, though it never names them directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives conditional guidance about interpreting results (price-verified vs availability-only, advisory_start_usd threshold) and an example corridor, but does not say when to call this tool versus assetfare_v2_capabilities or assetfare_v2_prepare in the workflow. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.