Skip to main content
Glama

Get a RAVN swap quote

ravn_quote
Read-only

Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no API key or payment required. Returns a quoteToken; pass it to ravn_execute to get a signable/broadcastable execution payload.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
apiKeyNoYour RAVN API key, if you have one — raises your rate limit
inputTokenYesToken contract address, or 0xEeeeeEeeeEeEeeEeEeEeeeEEeeeeEeeeeeeeEEeE for the chain's native coin
inputAmountYesPositive integer string, in the input token's smallest unit (no decimals)
outputTokenYesToken contract address, or 0xEeeeeEeeeEeEeeEeEeEeeeEEeeeeEeeeeeeeEEeE for the chain's native coin
rankingModeNobest_output (default) picks the highest net output; fastest picks the quickest-settling quote within slippageBps
slippageBpsNoMax acceptable slippage in basis points
userAddressYesAddress the input asset will be sent from
confidentialNoSettle privately via NEAR Intents' Confidential Intents so the deposit and payout can't be linked on-chain. Through this MCP server only NEAR quotes it (NO_LIQUIDITY if it can't, never a public fallback): RAVN's second private venue, Houdini Swap, needs the end user's IP, user-agent and country for its compliance rules, which an MCP call doesn't carry — use POST /api/v1/quote for it. ~0.3 bps extra on EVM-to-EVM, ~5-8 bps extra when Bitcoin or Solana is a leg, and it can settle slower than a public swap (Bitcoin-source: 13 min public vs 43 min confidential) — read estimatedTimeSeconds before executing
inputChainIdYesNumeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_chains for the full list, or ravn_health for live venue status
excludeVenuesNoDrop specific venues from this race, e.g. a risk objection to one of them or ravn_health showing it degraded. Naming a venue that was never eligible for this pair is a no-op, not an error
outputChainIdYesNumeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_chains for the full list, or ravn_health for live venue status
refundAddressNoWhere to refund the input asset if the swap fails. Required here, at quote time, for a Bitcoin-source Relay or THORChain quote — neither has an execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, Chainflip, Rift) support binding this at execute time instead. Validated against the INPUT chain (refunds are paid back on the origin), with the same non-wallet-address check as destinationAddress
destinationAddressNoWhere output should land, if different from userAddress. Required here, at quote time, to get an executable quote from Relay (Bitcoin as the source), THORChain (Bitcoin either direction), Across (a Solana-touching route), or Eco (a cross-ecosystem route) — omit it there and you get back a priced-but-unexecutable preview instead (see ravn_quote's executable), not an error. A malformed address, one from the wrong ecosystem, or a known non-wallet address (a RAVN-listed token's mint/contract, this swap's own tokens, the native-coin sentinel, burn addresses, Solana core programs, and via an on-chain lookup a Solana token account or program — the token-account error names the owning wallet, which is the address to use) IS an error here — funds sent there are unrecoverable. Omit the field rather than passing an empty string; an empty string is treated as omitted

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alternatives": {
      -            "description": "Every other venue that raced and produced a usable quote, best expected net output first (a quote with slippage.noMinimum counts 0.3% under its outputAmount, the shortfall such a venue typically delivers). Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "hops": {
      -            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "name"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "inputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "outputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  },
      -                  "noMinimum": {
      -                    "description": "True when the venue enforces no minimum output (Rift fills at its own rate once the deposit lands); bps is then not a protection",
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin",
      -                  "noMinimum"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "inputUsd",
      -          "outputUsd",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt",
      -          "alternatives"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best expected net output first (a quote with slippage.noMinimum counts 0.3% under its outputAmount, the shortfall such a venue typically delivers). Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "hops": {
      +            "description": "RAVN routes (venue.name \"RAVN\": two-hop, or Relay with a DEX on arrival): the venues it runs through, in order. Sign hop 1; hop 2 is a unique deposit",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  },
      +                  "noMinimum": {
      +                    "description": "True when the venue enforces no minimum output (Rift fills at its own rate once the deposit lands); bps is then not a protection",
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin",
      +                  "noMinimum"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alternatives": {
      -            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "hops": {
      -            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "name"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "inputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "outputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  },
      -                  "noMinimum": {
      -                    "description": "True when the venue enforces no minimum output (Rift fills at its own rate once the deposit lands); bps is then not a protection",
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin",
      -                  "noMinimum"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "inputUsd",
      -          "outputUsd",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt",
      -          "alternatives"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best expected net output first (a quote with slippage.noMinimum counts 0.3% under its outputAmount, the shortfall such a venue typically delivers). Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "hops": {
      +            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  },
      +                  "noMinimum": {
      +                    "description": "True when the venue enforces no minimum output (Rift fills at its own rate once the deposit lands); bps is then not a protection",
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin",
      +                  "noMinimum"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alternatives": {
      -            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "hops": {
      -            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "name"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "inputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "outputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "inputUsd",
      -          "outputUsd",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt",
      -          "alternatives"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "hops": {
      +            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  },
      +                  "noMinimum": {
      +                    "description": "True when the venue enforces no minimum output (Rift fills at its own rate once the deposit lands); bps is then not a protection",
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin",
      +                  "noMinimum"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / confidential / description
      Previous value: -"Settle privately via NEAR Intents' Confidential Intents so the deposit and payout can't be linked on-chain. Only NEAR quotes it (NO_LIQUIDITY if it can't, never a public fallback). ~0.3 bps extra on EVM-to-EVM, ~5-8 bps extra when Bitcoin or Solana is a leg, and it can settle slower than a public swap (Bitcoin-source: 13 min public vs 43 min confidential) — read estimatedTimeSeconds before executing"New value: +"Settle privately via NEAR Intents' Confidential Intents so the deposit and payout can't be linked on-chain. Through this MCP server only NEAR quotes it (NO_LIQUIDITY if it can't, never a public fallback): RAVN's second private venue, Houdini Swap, needs the end user's IP, user-agent and country for its compliance rules, which an MCP call doesn't carry — use POST /api/v1/quote for it. ~0.3 bps extra on EVM-to-EVM, ~5-8 bps extra when Bitcoin or Solana is a leg, and it can settle slower than a public swap (Bitcoin-source: 13 min public vs 43 min confidential) — read estimatedTimeSeconds before executing"
  5. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alternatives": {
      -            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the venue didn't report a time for this quote",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "hops": {
      -            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "name"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "inputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "outputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "inputUsd",
      -          "outputUsd",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt",
      -          "alternatives"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the time is RAVN's estimate, not the venue's own figure",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "hops": {
      +            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. Changed1 schema field changed
    • addedInput schema / properties / confidential
      Added value: +{
      +  "description": "Settle privately via NEAR Intents' Confidential Intents so the deposit and payout can't be linked on-chain. Only NEAR quotes it (NO_LIQUIDITY if it can't, never a public fallback). ~0.3 bps extra on EVM-to-EVM, ~5-8 bps extra when Bitcoin or Solana is a leg, and it can settle slower than a public swap (Bitcoin-source: 13 min public vs 43 min confidential) — read estimatedTimeSeconds before executing",
      +  "type": "boolean"
      +}
  7. Changed2 schema fields changed
    • changedInput schema / properties / destinationAddress / description
      Previous value: -"Where output should land, if different from userAddress. Required here, at quote time, to get an executable quote from Relay (Bitcoin as the source), THORChain (Bitcoin either direction), Across (a Solana-touching route), or Eco (a cross-ecosystem route) — omit it there and you get back a priced-but-unexecutable preview instead (see ravn_quote's executable), not an error"New value: +"Where output should land, if different from userAddress. Required here, at quote time, to get an executable quote from Relay (Bitcoin as the source), THORChain (Bitcoin either direction), Across (a Solana-touching route), or Eco (a cross-ecosystem route) — omit it there and you get back a priced-but-unexecutable preview instead (see ravn_quote's executable), not an error. A malformed address, one from the wrong ecosystem, or a known non-wallet address (a RAVN-listed token's mint/contract, this swap's own tokens, the native-coin sentinel, burn addresses, Solana core programs, and via an on-chain lookup a Solana token account or program — the token-account error names the owning wallet, which is the address to use) IS an error here — funds sent there are unrecoverable. Omit the field rather than passing an empty string; an empty string is treated as omitted"
    • changedInput schema / properties / refundAddress / description
      Previous value: -"Where to refund the input asset if the swap fails. Required here, at quote time, for a Bitcoin-source Relay or THORChain quote — neither has an execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, Chainflip, Rift) support binding this at execute time instead"New value: +"Where to refund the input asset if the swap fails. Required here, at quote time, for a Bitcoin-source Relay or THORChain quote — neither has an execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, Chainflip, Rift) support binding this at execute time instead. Validated against the INPUT chain (refunds are paid back on the origin), with the same non-wallet-address check as destinationAddress"
  8. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alternatives": {
      -            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the venue didn't report a time for this quote",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "inputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "outputUsd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "inputUsd",
      -          "outputUsd",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt",
      -          "alternatives"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the venue didn't report a time for this quote",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "hops": {
      +            "description": "2-hop / dest-call: the venues actually used. Sign hop 1; hop 2 is a unique deposit",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  9. Changed4 schema fields changed
    • addedInput schema / properties / excludeVenues
      Added value: +{
      +  "description": "Drop specific venues from this race, e.g. a risk objection to one of them or ravn_health showing it degraded. Naming a venue that was never eligible for this pair is a no-op, not an error",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / inputChainId / description
      Previous value: -"Numeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_health for the live venue list"New value: +"Numeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_chains for the full list, or ravn_health for live venue status"
    • changedInput schema / properties / outputChainId / description
      Previous value: -"Numeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_health for the live venue list"New value: +"Numeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_chains for the full list, or ravn_health for live venue status"
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "approval": {
      -            "additionalProperties": {},
      -            "description": "Present when the input token needs an ERC-20 approval before executing",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the venue didn't report a time for this quote",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "executable": {
      -            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      -            "type": "boolean"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "executable",
      -          "slippage",
      -          "gas",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alternatives": {
      +            "description": "Every other venue that raced and produced a usable quote, best output first. Each has its own quoteToken to pass to ravn_execute instead. Empty when no other venue could serve this pair, or when a route was excluded via excludeVenues",
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the venue didn't report a time for this quote",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "inputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the input amount, same price source as gas.usd. Null when the token can't be priced"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "outputUsd": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "USD value of the output amount. Compare against inputUsd for price impact"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "inputUsd",
      +          "outputUsd",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt",
      +          "alternatives"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / destinationAddress / description
      Previous value: -"Where output should land, if different from userAddress. For a Solana-touching Across quote or a cross-ecosystem Eco quote, this must be supplied here, at quote time — omitting it returns a priced-but-unexecutable preview (see ravn_quote's executable), since neither venue supports fixing the destination after quoting"New value: +"Where output should land, if different from userAddress. Required here, at quote time, to get an executable quote from Relay (Bitcoin as the source), THORChain (Bitcoin either direction), Across (a Solana-touching route), or Eco (a cross-ecosystem route) — omit it there and you get back a priced-but-unexecutable preview instead (see ravn_quote's executable), not an error"
    • changedInput schema / properties / refundAddress / description
      Previous value: -"Where to refund the input asset if the swap fails. For a Bitcoin-source Relay quote specifically, this must be supplied here, at quote time — Relay has no execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, THORChain, Chainflip, Rift) support binding this at execute time instead"New value: +"Where to refund the input asset if the swap fails. Required here, at quote time, for a Bitcoin-source Relay or THORChain quote — neither has an execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, Chainflip, Rift) support binding this at execute time instead"
  11. Changed3 schema fields changed
    • changedInput schema / properties / destinationAddress / description
      Previous value: -"Where output should land, if different from userAddress"New value: +"Where output should land, if different from userAddress. For a Solana-touching Across quote or a cross-ecosystem Eco quote, this must be supplied here, at quote time — omitting it returns a priced-but-unexecutable preview (see ravn_quote's executable), since neither venue supports fixing the destination after quoting"
    • changedInput schema / properties / refundAddress / description
      Previous value: -"Where to refund the input asset if the swap fails. For a Bitcoin-source quote this must be supplied here, at quote time — omitting it returns a priced-but-unexecutable preview, and supplying it later on ravn_execute instead has no effect (see ravn_execute's refundAddress)"New value: +"Where to refund the input asset if the swap fails. For a Bitcoin-source Relay quote specifically, this must be supplied here, at quote time — Relay has no execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on ravn_execute has no effect. Other BTC-source venues (Garden, THORChain, Chainflip, Rift) support binding this at execute time instead"
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "approval": {
      -            "additionalProperties": {},
      -            "description": "Present when the input token needs an ERC-20 approval before executing",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "estimatedTimeIsGuess": {
      -            "description": "True when the venue didn't report a time for this quote",
      -            "type": "boolean"
      -          },
      -          "estimatedTimeSeconds": {
      -            "type": "number"
      -          },
      -          "expiresAt": {
      -            "type": "number"
      -          },
      -          "fee": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "gas": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "estimated": {
      -                    "type": "boolean"
      -                  },
      -                  "native": {
      -                    "type": "string"
      -                  },
      -                  "nativeSymbol": {
      -                    "type": "string"
      -                  },
      -                  "usd": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "native",
      -                  "nativeSymbol",
      -                  "usd",
      -                  "estimated"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The native gas the user must hold; null on gasless venues"
      -          },
      -          "input": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "output": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "quoteToken": {
      -            "description": "Opaque token — pass to ravn_execute",
      -            "type": "string"
      -          },
      -          "routeType": {
      -            "type": "string"
      -          },
      -          "slippage": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "bps": {
      -                    "type": "number"
      -                  },
      -                  "guaranteedMin": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "isFirm": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "bps",
      -                  "isFirm",
      -                  "guaranteedMin"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Null when the venue reports no slippage bound"
      -          },
      -          "venue": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "quoteToken",
      -          "venue",
      -          "routeType",
      -          "input",
      -          "output",
      -          "fee",
      -          "slippage",
      -          "gas",
      -          "estimatedTimeSeconds",
      -          "estimatedTimeIsGuess",
      -          "expiresAt"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "data",
      -      "meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {},
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "meta": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "requestId": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "requestId",
      -          "version"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "approval": {
      +            "additionalProperties": {},
      +            "description": "Present when the input token needs an ERC-20 approval before executing",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "estimatedTimeIsGuess": {
      +            "description": "True when the venue didn't report a time for this quote",
      +            "type": "boolean"
      +          },
      +          "estimatedTimeSeconds": {
      +            "type": "number"
      +          },
      +          "executable": {
      +            "description": "False = preview-only price, priced against a placeholder destination/refund address. ravn_execute will fail with QUOTE_NOT_EXECUTABLE — request a fresh quote with destinationAddress/refundAddress supplied instead",
      +            "type": "boolean"
      +          },
      +          "expiresAt": {
      +            "type": "number"
      +          },
      +          "fee": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "gas": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "estimated": {
      +                    "type": "boolean"
      +                  },
      +                  "native": {
      +                    "type": "string"
      +                  },
      +                  "nativeSymbol": {
      +                    "type": "string"
      +                  },
      +                  "usd": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "native",
      +                  "nativeSymbol",
      +                  "usd",
      +                  "estimated"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The native gas the user must hold; null on gasless venues"
      +          },
      +          "input": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "output": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "quoteToken": {
      +            "description": "Opaque token — pass to ravn_execute",
      +            "type": "string"
      +          },
      +          "routeType": {
      +            "type": "string"
      +          },
      +          "slippage": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bps": {
      +                    "type": "number"
      +                  },
      +                  "guaranteedMin": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "isFirm": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "bps",
      +                  "isFirm",
      +                  "guaranteedMin"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Null when the venue reports no slippage bound"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "quoteToken",
      +          "venue",
      +          "routeType",
      +          "input",
      +          "output",
      +          "fee",
      +          "executable",
      +          "slippage",
      +          "gas",
      +          "estimatedTimeSeconds",
      +          "estimatedTimeIsGuess",
      +          "expiresAt"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "data",
      +      "meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "requestId": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "requestId",
      +          "version"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  12. Changed1 schema field changed
    • changedInput schema / properties / refundAddress / description
      Previous value: -"Where to refund the input asset if the swap fails — defaults to userAddress"New value: +"Where to refund the input asset if the swap fails. For a Bitcoin-source quote this must be supplied here, at quote time — omitting it returns a priced-but-unexecutable preview, and supplying it later on ravn_execute instead has no effect (see ravn_execute's refundAddress)"
  13. Changed4 schema fields changed
    • addedInput schema / properties / rankingMode / description
      Added value: +"best_output (default) picks the highest net output; fastest picks the quickest-settling quote within slippageBps"
    • addedInput schema / properties / refundAddress / description
      Added value: +"Where to refund the input asset if the swap fails — defaults to userAddress"
    • addedInput schema / properties / slippageBps / description
      Added value: +"Max acceptable slippage in basis points"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "data": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "approval": {
      +              "additionalProperties": {},
      +              "description": "Present when the input token needs an ERC-20 approval before executing",
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "estimatedTimeIsGuess": {
      +              "description": "True when the venue didn't report a time for this quote",
      +              "type": "boolean"
      +            },
      +            "estimatedTimeSeconds": {
      +              "type": "number"
      +            },
      +            "expiresAt": {
      +              "type": "number"
      +            },
      +            "fee": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "gas": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "estimated": {
      +                      "type": "boolean"
      +                    },
      +                    "native": {
      +                      "type": "string"
      +                    },
      +                    "nativeSymbol": {
      +                      "type": "string"
      +                    },
      +                    "usd": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "native",
      +                    "nativeSymbol",
      +                    "usd",
      +                    "estimated"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The native gas the user must hold; null on gasless venues"
      +            },
      +            "input": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "output": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "quoteToken": {
      +              "description": "Opaque token — pass to ravn_execute",
      +              "type": "string"
      +            },
      +            "routeType": {
      +              "type": "string"
      +            },
      +            "slippage": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "bps": {
      +                      "type": "number"
      +                    },
      +                    "guaranteedMin": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "isFirm": {
      +                      "type": "boolean"
      +                    }
      +                  },
      +                  "required": [
      +                    "bps",
      +                    "isFirm",
      +                    "guaranteedMin"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Null when the venue reports no slippage bound"
      +            },
      +            "venue": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            }
      +          },
      +          "required": [
      +            "quoteToken",
      +            "venue",
      +            "routeType",
      +            "input",
      +            "output",
      +            "fee",
      +            "slippage",
      +            "gas",
      +            "estimatedTimeSeconds",
      +            "estimatedTimeIsGuess",
      +            "expiresAt"
      +          ],
      +          "type": "object"
      +        },
      +        "meta": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "requestId": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "requestId",
      +            "version"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "data",
      +        "meta"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "error": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "code": {
      +              "type": "string"
      +            },
      +            "details": {},
      +            "message": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "code",
      +            "message"
      +          ],
      +          "type": "object"
      +        },
      +        "meta": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "requestId": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "requestId",
      +            "version"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "error",
      +        "meta"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  14. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely non-structured facts: it is free, no API key or payment is required (the apiKey param only raises a rate limit), and the returned quoteToken is the handoff to ravn_execute, making clear this call never moves funds.

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

Conciseness5/5

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

Three tight sentences with no waste: capability and chain scope first, cost/auth second, return-value handoff last. Nothing redundant and nothing buried.

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?

With a rich output schema present, the description does not need to explain return values and correctly focuses on the quoteToken handoff. Given the 13-parameter, multi-venue complexity, it is nearly complete, though a note on quote validity/expiry would round it out.

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?

Schema description coverage is 100%, so the schema already documents all 13 parameters, including the deep conditional rules for destinationAddress and refundAddress. The description adds no parameter-level meaning of its own, so the baseline 3 applies.

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

Purpose5/5

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

A specific verb and resource (get a swap quote), scoped to same-chain/cross-chain and 17 chains with native BTC/Solana support. It also names ravn_execute as the downstream consumer, so an agent can separate quoting from execution without opening either schema.

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

Usage Guidelines4/5

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

Clear context for when to call it (any quote, free, no key needed) and it routes the agent to ravn_execute for the actual swap, plus points at ravn_chains/ravn_health for chain and venue data. It stops short of stating exclusions or preconditions, so it is not a full when/when-not treatment.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.