Skip to main content
Glama

Check RAVN swap status

ravn_status
Read-only

Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — compose rebinds hop 1 onto hop 2's deposit. Status is authoritative where the venue exposes it; a swap the venue can't track reports 'unknown' rather than a guess.

Input Schema

NameRequiredDescriptionDefault
refYesstatusRef from ravn_execute when it returned one (always for DEPOSIT and SIGNATURE venues — it is the venue's own tracking key, which is not always the deposit address); otherwise the origin tx hash
apiKeyNoYour RAVN API key, if you have one — raises your rate limit
txHashNoThe transaction that paid a fee the swap carries, where RAVN can't find it otherwise: a two-hop route's hop-1 tx, or the on-chain transaction that carried an execution's fee.transaction (Rift and private swaps on DEPOSIT; Eco, Layerswap and Mayan routes paying no referrer on TRANSACTION) — on its own, or the batch or relay that included it (not an EIP-5792 batch id or a 4337 userOpHash). Not needed on an Eco or Mayan TRANSACTION with no statusRef when the fee rode in the swap's own transaction and you poll with that hash. Send it on every poll once confirmed; until RAVN can read it, a delivered swap reports 'processing' (up to 15 minutes after execute). Without it nothing is owed on that swap
quoteTokenYesThe quoteToken from ravn_quote — the venue is decoded from it

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / txHash / description
      Previous value: -"The transaction that paid a fee the swap carries, where RAVN can't find it otherwise: a two-hop route's hop-1 tx, or the on-chain transaction that carried an execution's fee.transaction (Rift and private swaps on DEPOSIT; Eco, Layerswap and Mayan routes paying no referrer on TRANSACTION) — on its own, or the batch or relay that included it (not an EIP-5792 batch id or a 4337 userOpHash). Not needed on an Eco or Mayan TRANSACTION with no statusRef when the fee rode in the swap's own transaction and you poll with that hash. Send it on every poll once confirmed; without it nothing is owed on that swap"New value: +"The transaction that paid a fee the swap carries, where RAVN can't find it otherwise: a two-hop route's hop-1 tx, or the on-chain transaction that carried an execution's fee.transaction (Rift and private swaps on DEPOSIT; Eco, Layerswap and Mayan routes paying no referrer on TRANSACTION) — on its own, or the batch or relay that included it (not an EIP-5792 batch id or a 4337 userOpHash). Not needed on an Eco or Mayan TRANSACTION with no statusRef when the fee rode in the swap's own transaction and you poll with that hash. Send it on every poll once confirmed; until RAVN can read it, a delivered swap reports 'processing' (up to 15 minutes after execute). Without it nothing is owed on that swap"
  2. Changed1 schema field changed
    • changedInput schema / properties / txHash / description
      Previous value: -"The transaction that paid a fee the swap carries: a two-hop route's hop-1 tx, or the fee payment a DEPOSIT's fee.transaction asked for (Rift, private swaps). Without it nothing is owed on that swap"New value: +"The transaction that paid a fee the swap carries, where RAVN can't find it otherwise: a two-hop route's hop-1 tx, or the on-chain transaction that carried an execution's fee.transaction (Rift and private swaps on DEPOSIT; Eco, Layerswap and Mayan routes paying no referrer on TRANSACTION) — on its own, or the batch or relay that included it (not an EIP-5792 batch id or a 4337 userOpHash). Not needed on an Eco or Mayan TRANSACTION with no statusRef when the fee rode in the swap's own transaction and you poll with that hash. Send it on every poll once confirmed; without it nothing is owed on that swap"
  3. Changed1 schema field changed
    • changedInput schema / properties / txHash / description
      Previous value: -"The transaction that paid a fee the swap carries: a two-hop route's hop-1 tx, or the fee payment a Rift DEPOSIT's fee.transaction asked for. Without it nothing is owed on that swap"New value: +"The transaction that paid a fee the swap carries: a two-hop route's hop-1 tx, or the fee payment a DEPOSIT's fee.transaction asked for (Rift, private swaps). Without it nothing is owed on that swap"
  4. Changed1 schema field changed
    • addedInput schema / properties / txHash
      Added value: +{
      +  "description": "The transaction that paid a fee the swap carries: a two-hop route's hop-1 tx, or the fee payment a Rift DEPOSIT's fee.transaction asked for. Without it nothing is owed on that swap",
      +  "pattern": "^0x[0-9a-fA-F]{64}$",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "deliveredAmount": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Actual delivered output, in the output token's smallest unit, when the venue exposes it"
      -          },
      -          "status": {
      -            "type": "string"
      -          },
      -          "tracking": {
      -            "const": "unavailable",
      -            "description": "Present instead of venueStatus when this venue has no live tracker yet",
      -            "type": "string"
      -          },
      -          "txHash": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The destination-chain tx that paid the user out, when the venue names one. Only populated once status is terminal (success/refunded/failed), never while still in flight"
      -          },
      -          "venue": {
      -            "type": "string"
      -          },
      -          "venueStatus": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status",
      -          "venue"
      -        ],
      -        "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": {
      +          "deliveredAmount": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Actual delivered output, in the output token's smallest unit, when the venue exposes it. Only populated once status is terminal"
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "tracking": {
      +            "const": "unavailable",
      +            "description": "Present instead of venueStatus when this venue has no live tracker yet",
      +            "type": "string"
      +          },
      +          "txHash": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The destination-chain tx that paid the user out, when the venue names one. Only populated once status is terminal (success/refunded/failed), never while still in flight"
      +          },
      +          "venue": {
      +            "type": "string"
      +          },
      +          "venueStatus": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status",
      +          "venue"
      +        ],
      +        "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
    • changedInput schema / properties / ref / description
      Previous value: -"deposit address (DEPOSIT venues) or statusRef (SIGNATURE venues) from ravn_execute"New value: +"statusRef from ravn_execute when it returned one (always for DEPOSIT and SIGNATURE venues — it is the venue's own tracking key, which is not always the deposit address); otherwise the origin tx hash"
  7. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          },
      -          "tracking": {
      -            "const": "unavailable",
      -            "description": "Present instead of venueStatus when this venue has no live tracker yet",
      -            "type": "string"
      -          },
      -          "venue": {
      -            "type": "string"
      -          },
      -          "venueStatus": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status",
      -          "venue"
      -        ],
      -        "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": {
      +          "deliveredAmount": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Actual delivered output, in the output token's smallest unit, when the venue exposes it"
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "tracking": {
      +            "const": "unavailable",
      +            "description": "Present instead of venueStatus when this venue has no live tracker yet",
      +            "type": "string"
      +          },
      +          "txHash": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The destination-chain tx that paid the user out, when the venue names one. Only populated once status is terminal (success/refunded/failed), never while still in flight"
      +          },
      +          "venue": {
      +            "type": "string"
      +          },
      +          "venueStatus": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status",
      +          "venue"
      +        ],
      +        "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"
      +  }
      +]
  8. Changed3 schema fields changed
    • addedInput schema / properties / apiKey / description
      Added value: +"Your RAVN API key, if you have one — raises your rate limit"
    • addedInput schema / properties / quoteToken / description
      Added value: +"The quoteToken from ravn_quote — the venue is decoded from it"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "data": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "status": {
      +              "type": "string"
      +            },
      +            "tracking": {
      +              "const": "unavailable",
      +              "description": "Present instead of venueStatus when this venue has no live tracker yet",
      +              "type": "string"
      +            },
      +            "venue": {
      +              "type": "string"
      +            },
      +            "venueStatus": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "venue"
      +          ],
      +          "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"
      +}
  9. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, so the description carries real weight: status is authoritative, untracked swaps return 'unknown' rather than a guess, a delivered swap reports 'processing' for up to 15 minutes until the txHash is readable, and apiKey raises the rate limit. These are behavioral traits the agent cannot infer from annotations.

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

Conciseness4/5

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

Front-loads the core action and the required inputs in the first sentence, then adds reinforcing context. The later sentences are dense but each earns its place by pinning down the ref/txHash semantics.

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

Completeness5/5

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

An output schema exists, so return values need not be explained, and the description covers the relevant failure modes, tracking-key selection, and the timing caveat. What an agent needs to poll correctly is present.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3, but the description adds non-schema meaning: quoteToken carries the rebinding of hop 1 onto hop 2's deposit, and ref may be a statusRef, deposit address, or origin tx hash rather than only the form the schema lists.

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?

States a specific verb and resource ('Poll the status of a swap') and identifies the exact inputs it keys on (quoteToken and ref from ravn_execute). This clearly separates it from ravn_execute and ravn_quote, which only create or price the swap.

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?

Tells the agent when to use it (after ravn_execute, to poll) and how to source the ref depending on venue, plus the txHash polling condition. It gives clear context but does not state explicit when-not conditions or boundaries against all sibling tools.

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.