Kriptonianlabs Agent APIs

Read-only XRPL and Solana data for agents: fees, slippage, readiness. Free /mcp; x402 /mcp/pro.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
78%
Naming quality
80%
Poisoning risk
60%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin solana_transfer_readiness
  • MEDIUMTool description contains suspicious base64-like encoded stringin solana_token

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~15,549Tokens (tool definitions)
~8.3 KBTypical response size
Significant attention impact (12.15% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agent-apis": {
      "url": "https://api.kriptonianlabs.com/mcp"
    }
  }
}

Remote endpoints

https://api.kriptonianlabs.com/mcpstreamable-http
https://api.kriptonianlabs.com/mcp/prostreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢xrpl_fee

Current XRPL fee tiers in drops with a congestion score. When to use: Before submitting a transaction, to choose a `Fee` and to decide whether the network is congested. Prefer another tool: Not a price feed and not a historical series; it describes the latest validated ledger only. Example: xrpl_fee {}

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "fee": {
      "type": "object",
      "properties": {
        "economy": {
          "type": "string",
          "description": "Drops"
        },
        "standard": {
          "type": "string",
          "description": "Drops"
        },
        "priority": {
          "type": "string",
          "description": "Drops"
        }
      },
      "required": [
        "economy",
        "standard",
        "priority"
      ],
      "additionalProperties": false
    },
    "congestion": {
      "type": "object",
      "properties": {
        "score": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "band": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "load_factor_assumed": {
          "type": "boolean"
        }
      },
      "required": [
        "score",
        "band",
        "load_factor_assumed"
      ],
      "additionalProperties": false
    },
    "base_fee": {
      "type": "string",
      "description": "Decimal string"
    },
    "median_fee": {
      "type": "string",
      "description": "Decimal string"
    },
    "minimum_fee": {
      "type": "string",
      "description": "Decimal string"
    },
    "open_ledger_fee": {
      "type": "string",
      "description": "Decimal string"
    },
    "current_queue_size": {
      "type": "string",
      "description": "Decimal string"
    },
    "max_queue_size": {
      "type": "string",
      "description": "Decimal string"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "fee",
    "congestion",
    "base_fee",
    "median_fee",
    "minimum_fee",
    "open_ledger_fee",
    "current_queue_size",
    "max_queue_size",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_network_health

Overall and per-node health of the upstream XRPL nodes. When to use: To decide whether to trust or retry data, or to explain a 503 from another endpoint. Prefer another tool: Not a probe of your own connectivity; it reports the service's upstream nodes. Example: xrpl_network_health {}

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ok",
        "degraded",
        "down",
        "unknown"
      ]
    },
    "nodes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "member": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "up",
              "down"
            ]
          },
          "latency_ms": {
            "type": [
              "number",
              "null"
            ]
          },
          "ledger_index": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "ledger_age_s": {
            "type": [
              "number",
              "null"
            ]
          },
          "load_factor": {
            "type": [
              "number",
              "null"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "sampled_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          }
        },
        "required": [
          "member",
          "state",
          "latency_ms",
          "ledger_index",
          "ledger_age_s",
          "load_factor",
          "error",
          "sampled_at"
        ],
        "additionalProperties": false
      }
    },
    "ledger_index": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "last_probe_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "status",
    "nodes",
    "ledger_index",
    "last_probe_at",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_orderbook(base, quote, depth)

CLOB order book for a currency pair with unfunded offers removed. When to use: To read executable liquidity for a pair on the XRPL central limit order book (CLOB). Prefer another tool: Not for AMM liquidity (use the amm page) and not for a cost estimate (use the slippage page). Example: xrpl_orderbook {"base":"XRP","quote":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "base": {
      "type": "string",
      "description": "Base currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    },
    "quote": {
      "type": "string",
      "description": "Quote currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    },
    "depth": {
      "description": "Levels per side: a positive integer, rounded up to 10, 50, 100 or 200 (max 200)",
      "type": "string"
    }
  },
  "required": [
    "base",
    "quote"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "base": {
      "type": "string"
    },
    "quote": {
      "type": "string"
    },
    "depth": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "asks": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BookLevel"
      },
      "description": "Best (lowest) price first"
    },
    "bids": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BookLevel"
      },
      "description": "Best (highest) price first, from the base-asset side"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "base",
    "quote",
    "depth",
    "asks",
    "bids",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "BookLevel": {
      "type": "object",
      "properties": {
        "gets": {
          "type": "string",
          "description": "Decimal string"
        },
        "pays": {
          "type": "string",
          "description": "Decimal string"
        },
        "price": {
          "type": "string",
          "description": "Pays per gets, decimal string"
        }
      },
      "required": [
        "gets",
        "pays",
        "price"
      ],
      "additionalProperties": false
    },
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_slippage(base, quote, amount, depth)

Slippage and average price for buying an amount of base currency. When to use: Before placing a market-style trade, to size it against available depth and to see whether the CLOB or the AMM pool is the cheaper venue. Prefer another tool: It is an estimate, not a quote, and it does not split an amount across venues or route through other pairs. To read pool reserves, use the amm page. Example: xrpl_slippage {"base":"XRP","quote":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh","amount":"1000"}

Input Schema

{
  "type": "object",
  "properties": {
    "base": {
      "type": "string",
      "description": "Base currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    },
    "quote": {
      "type": "string",
      "description": "Quote currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    },
    "amount": {
      "type": "string",
      "description": "Positive decimal amount of base to buy"
    },
    "depth": {
      "description": "Levels per side: a positive integer, rounded up to 10, 50, 100 or 200 (max 200)",
      "type": "string"
    }
  },
  "required": [
    "base",
    "quote",
    "amount"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "base": {
      "type": "string"
    },
    "quote": {
      "type": "string"
    },
    "side": {
      "type": "string",
      "const": "buy"
    },
    "depth": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "amount": {
      "type": "string",
      "description": "Decimal string"
    },
    "filled": {
      "type": "string",
      "description": "Decimal string"
    },
    "partial": {
      "type": "boolean"
    },
    "insufficient_liquidity": {
      "type": "boolean"
    },
    "best_price": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ]
    },
    "avg_price": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ]
    },
    "slippage_pct": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Percent, null when liquidity is insufficient"
    },
    "transfer_fee_applied": {
      "type": "boolean"
    },
    "transfer_fee": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ]
    },
    "avg_price_after_fees": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ]
    },
    "venues": {
      "type": "object",
      "properties": {
        "best": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "clob",
                "amm"
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Cheaper venue by avg_price (ties go to the CLOB), null when neither can fill"
        },
        "amm_status": {
          "type": "string",
          "enum": [
            "ok",
            "stale",
            "no_pool",
            "unavailable"
          ],
          "description": "State of the AMM read: ok, stale (served past its fresh window), no_pool, unavailable"
        },
        "clob": {
          "type": "object",
          "properties": {
            "avg_price": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Decimal string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Quote paid per base received, null when it cannot fill"
            },
            "cost": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Decimal string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Total quote paid for `amount`, null when it cannot fill"
            },
            "slippage_pct": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Decimal string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Percent vs the best ask, null when it cannot fill"
            },
            "insufficient_liquidity": {
              "type": "boolean"
            },
            "avg_price_after_fees": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Decimal string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "avg_price x issuer TransferRate, null when the rate is unknown"
            }
          },
          "required": [
            "avg_price",
            "cost",
            "slippage_pct",
            "insufficient_liquidity",
            "avg_price_after_fees"
          ],
          "additionalProperties": false
        },
        "amm": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "avg_price": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Decimal string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Quote paid per base received, null when it cannot fill"
                },
                "cost": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Decimal string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Total quote paid for `amount`, null when it cannot fill"
                },
                "slippage_pct": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Decimal string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Percent vs the fee-free pool spot price (includes the trading fee), null when it cannot fill"
                },
                "insufficient_liquidity": {
                  "type": "boolean"
                },
                "avg_price_after_fees": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Decimal string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "avg_price x issuer TransferRate, null when the rate is unknown"
                },
                "spot_price": {
                  "type": "string",
                  "description": "Pool spot price, quote per base, excluding fee and impact"
                },
                "trading_fee": {
                  "type": "string",
                  "description": "Pool trading fee as a fraction, like /v1/xrpl/amm"
                }
              },
              "required": [
                "avg_price",
                "cost",
                "slippage_pct",
                "insufficient_liquidity",
                "avg_price_after_fees",
                "spot_price",
                "trading_fee"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Null when the pair has no pool or the pool could not be read (see amm_status)"
        }
      },
      "required": [
        "best",
        "amm_status",
        "clob",
        "amm"
      ],
      "additionalProperties": false,
      "description": "CLOB vs AMM comparison for the same amount; no routing split"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "base",
    "quote",
    "side",
    "depth",
    "amount",
    "filled",
    "partial",
    "insufficient_liquidity",
    "best_price",
    "avg_price",
    "slippage_pct",
    "transfer_fee_applied",
    "transfer_fee",
    "avg_price_after_fees",
    "venues",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_amm(a, b)

AMM pool reserves and trading fee for an asset pair. When to use: To read AMM pool depth and fee for a pair. Prefer another tool: It does not estimate slippage or compare venues (use the slippage page for the CLOB vs AMM comparison); a pair without a pool returns 404. Example: xrpl_amm {"a":"XRP","b":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "a": {
      "type": "string",
      "description": "First asset: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    },
    "b": {
      "type": "string",
      "description": "Second asset: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`)"
    }
  },
  "required": [
    "a",
    "b"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "asset_a": {
      "type": "string"
    },
    "asset_b": {
      "type": "string"
    },
    "reserve_a": {
      "type": "string",
      "description": "Decimal string"
    },
    "reserve_b": {
      "type": "string",
      "description": "Decimal string"
    },
    "trading_fee": {
      "type": "string",
      "description": "Decimal string"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "asset_a",
    "asset_b",
    "reserve_a",
    "reserve_b",
    "trading_fee",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_account_summary(address)

XRP balance, sequence, owner count, transfer rate and trust lines (capped) for an account. When to use: To inspect an account before building a transaction for it. Prefer another tool: Not for transaction history, reserves or account flags; it is a summary, not a full account dump. Example: xrpl_account_summary {"address":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Valid classic XRPL account address (r..., checksum verified)"
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "balance_xrp": {
      "type": "string",
      "description": "Decimal string"
    },
    "sequence": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_count": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "transfer_rate": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Issuer TransferRate, 1000000000 = no fee"
    },
    "trust_lines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "issuer": {
            "type": "string"
          },
          "balance": {
            "type": "string",
            "description": "Decimal string"
          },
          "limit": {
            "type": "string",
            "description": "Decimal string"
          }
        },
        "required": [
          "currency",
          "issuer",
          "balance",
          "limit"
        ],
        "additionalProperties": false
      }
    },
    "lines_truncated": {
      "type": "boolean"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "address",
    "balance_xrp",
    "sequence",
    "owner_count",
    "transfer_rate",
    "trust_lines",
    "lines_truncated",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_account_lines(address, limit, peer, marker)

One page of an account's trust lines, with an opaque cursor for the next page. When to use: To list every trust line of an account (balances, limits, freeze and authorization flags), page by page. Prefer another tool: For a quick capped overview with the XRP balance, use `/v1/xrpl/account/{address}/summary`; for issued totals of a token, use the token endpoint. Example: xrpl_account_lines {"address":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Valid classic XRPL account address (r..., checksum verified)"
    },
    "limit": {
      "description": "Lines per page: an integer from 10 to 400 (default 100)",
      "type": "string"
    },
    "peer": {
      "description": "Only lines with this counterparty (classic address)",
      "type": "string"
    },
    "marker": {
      "description": "Opaque cursor from the previous page's `marker`, for the same address",
      "type": "string"
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "peer": {
      "type": [
        "string",
        "null"
      ]
    },
    "lines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "peer": {
            "type": "string",
            "description": "Counterparty address"
          },
          "currency": {
            "type": "string",
            "description": "Canonical currency code (3 characters or 40 hex)"
          },
          "currency_ascii": {
            "description": "Readable text of a 40-hex currency code; null when not printable ASCII; absent for XRP and 3-character codes",
            "type": [
              "string",
              "null"
            ]
          },
          "balance": {
            "type": "string",
            "description": "Positive: the peer owes the account; negative: the account owes"
          },
          "limit": {
            "type": "string",
            "description": "Limit the account sets"
          },
          "peer_limit": {
            "type": "string",
            "description": "Limit the peer sets"
          },
          "no_ripple": {
            "type": "boolean"
          },
          "no_ripple_peer": {
            "type": "boolean"
          },
          "freeze": {
            "type": "boolean"
          },
          "freeze_peer": {
            "type": "boolean"
          },
          "authorized": {
            "type": "boolean"
          },
          "peer_authorized": {
            "type": "boolean"
          }
        },
        "required": [
          "peer",
          "currency",
          "balance",
          "limit",
          "peer_limit",
          "no_ripple",
          "no_ripple_peer",
          "freeze",
          "freeze_peer",
          "authorized",
          "peer_authorized"
        ],
        "additionalProperties": false
      }
    },
    "marker": {
      "description": "Opaque cursor for the next page (send as `marker`); null on the last page",
      "type": [
        "string",
        "null"
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "address",
    "limit",
    "peer",
    "lines",
    "marker",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_account_transactions(address, limit, marker)

One page of an account's most recent validated transactions, newest first. When to use: To check what an account did recently (payments sent or received, offers, trust line changes) and whether each transaction succeeded. Prefer another tool: For balances and trust lines, use `/v1/xrpl/account/{address}/summary` or `/v1/xrpl/account/{address}/lines`; for full archival history, use a full-history node or indexer: history depth depends on the serving node and older pages may be slower. Example: xrpl_account_transactions {"address":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Valid classic XRPL account address (r..., checksum verified)"
    },
    "limit": {
      "description": "Transactions per page: an integer from 1 to 50 (default 20)",
      "type": "string"
    },
    "marker": {
      "description": "Opaque cursor from the previous page's `marker`, for the same address",
      "type": "string"
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "transactions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "ledger_index": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "close_time": {
            "type": "string",
            "description": "Ledger close time, ISO-8601 UTC"
          },
          "type": {
            "type": "string",
            "description": "Transaction type, for example `Payment`"
          },
          "result": {
            "type": "string",
            "description": "Result code, for example `tesSUCCESS`"
          },
          "counterparty": {
            "description": "The other account, when the transaction names one",
            "type": [
              "string",
              "null"
            ]
          },
          "delivered": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "asset": {
                    "type": "string",
                    "description": "`XRP` or `CODE.issuer`"
                  },
                  "value": {
                    "type": "string",
                    "description": "Decimal string"
                  },
                  "currency_ascii": {
                    "description": "Readable text of a 40-hex currency code; null when not printable ASCII; absent for XRP and 3-character codes",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "asset",
                  "value"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Delivered amount, when the transaction reports one"
          }
        },
        "required": [
          "hash",
          "ledger_index",
          "close_time",
          "type",
          "result",
          "counterparty",
          "delivered"
        ],
        "additionalProperties": false
      },
      "description": "Validated transactions, newest first"
    },
    "marker": {
      "description": "Opaque cursor for the next (older) page (send as `marker`); null on the last page",
      "type": [
        "string",
        "null"
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "address",
    "limit",
    "transactions",
    "marker",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_token(asset)

Issuer data for an issued asset: flags, domain, transfer fee and total issued. When to use: Before accepting or sending an issued token: check that the issuer exists, is not frozen, whether holders need authorization, and the transfer fee charged on every transfer between non-issuer accounts. Prefer another tool: For XRP (not an issued asset; 400), for one account's own balances use `/v1/xrpl/account/{address}/lines`, and for prices use `/v1/xrpl/orderbook` or `/v1/xrpl/amm/{a}/{b}`. Example: xrpl_token {"asset":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "description": "Issued asset as CODE.issuer (3-character or 40-hex code, classic issuer address); not XRP"
    }
  },
  "required": [
    "asset"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "issuer": {
      "type": "string",
      "description": "Issuer address"
    },
    "currency": {
      "type": "string",
      "description": "Canonical currency code (3 characters or 40 hex)"
    },
    "currency_ascii": {
      "description": "Readable text of a 40-hex currency code; null when not printable ASCII; absent for XRP and 3-character codes",
      "type": [
        "string",
        "null"
      ]
    },
    "global_freeze": {
      "type": "boolean"
    },
    "no_freeze": {
      "type": "boolean"
    },
    "require_auth": {
      "type": "boolean"
    },
    "default_ripple": {
      "type": "boolean"
    },
    "domain": {
      "description": "Issuer domain decoded to text, when set",
      "type": [
        "string",
        "null"
      ]
    },
    "transfer_rate": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Issuer TransferRate, 1000000000 = no fee"
    },
    "transfer_fee_pct": {
      "type": "string",
      "description": "Transfer fee in percent"
    },
    "obligations": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Total issued of this currency; null when `obligations_status` is `unavailable`"
    },
    "obligations_status": {
      "type": "string",
      "enum": [
        "ok",
        "unavailable"
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "issuer",
    "currency",
    "global_freeze",
    "no_freeze",
    "require_auth",
    "default_ripple",
    "domain",
    "transfer_rate",
    "transfer_fee_pct",
    "obligations",
    "obligations_status",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_payment_readiness(source, destination, asset, amount, destination_tag)

Pre-payment check: can this payment from source to destination succeed now? When to use: Right before sending a payment: to catch a missing or unfunded destination, a required destination tag, deposit authorization, missing or frozen trust lines, insufficient balance and issuer freezes, in one call. Prefer another tool: To find a multi-hop route or the source amount needed for a cross-currency payment (use the paths endpoint), or to list balances (use `/v1/xrpl/account/{address}/summary`). Example: xrpl_payment_readiness {"source":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh","destination":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"}

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Sending account: valid classic XRPL address (r..., checksum verified)"
    },
    "destination": {
      "type": "string",
      "description": "Receiving account: valid classic XRPL address, different from source"
    },
    "asset": {
      "description": "XRP (default) or CODE.issuer (3-character or 40-hex code, classic issuer)",
      "type": "string"
    },
    "amount": {
      "description": "Positive decimal amount of asset; omit to skip amount-dependent checks",
      "type": "string"
    },
    "destination_tag": {
      "description": "Destination tag you will send: an integer from 0 to 4294967295",
      "type": "string"
    }
  },
  "required": [
    "source",
    "destination"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "enum": [
        "ready",
        "not_ready",
        "unknown"
      ],
      "description": "`not_ready` on any blocking reason; else `unknown` on any failed sub-check"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "source_not_found",
          "insufficient_xrp_balance",
          "source_line_missing",
          "insufficient_token_balance",
          "source_line_frozen",
          "destination_not_found",
          "amount_below_destination_reserve",
          "destination_tag_required",
          "deposit_not_authorized",
          "destination_line_missing",
          "destination_line_limit_exceeded",
          "destination_line_frozen",
          "issuer_not_found",
          "issuer_global_freeze"
        ]
      },
      "description": "Blocking reason codes"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "destination_will_be_created",
          "transfer_fee",
          "high_fee",
          "network_degraded"
        ]
      },
      "description": "Non-blocking warnings"
    },
    "checks_failed": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "source_account",
          "destination_account",
          "deposit_authorized",
          "source_line",
          "destination_line",
          "issuer",
          "fee",
          "network_health"
        ]
      },
      "description": "Sub-checks that could not run"
    },
    "spendable_xrp": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Source XRP above its live reserve and the standard fee; null when not computable"
    },
    "transfer_fee_pct": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Issuer transfer fee in percent, when it applies"
    },
    "source": {
      "type": "string"
    },
    "destination": {
      "type": "string"
    },
    "asset": {
      "type": "string",
      "description": "`XRP` or `CODE.issuer`"
    },
    "amount": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Amount checked; null when omitted (amount checks skipped)"
    },
    "destination_tag": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "verdict",
    "reasons",
    "warnings",
    "checks_failed",
    "spendable_xrp",
    "transfer_fee_pct",
    "source",
    "destination",
    "asset",
    "amount",
    "destination_tag",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_paths(source, destination, asset, amount, send_max_asset, ...)

Multi-hop payment paths and their source cost. When to use: Before a cross-currency or multi-hop payment: to see whether a route exists and how much the source would spend to deliver the amount. A call can take up to about 20 seconds and paths may be non-optimal. Prefer another tool: To check whether a direct payment can succeed (use `/v1/xrpl/payment-readiness`), or for the single-hop cost of a trade on one pair (use `/v1/xrpl/slippage`, which compares the order book and the AMM). Example: xrpl_paths {"source":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh","destination":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B","asset":"XRP","amount":"1"}

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Sending account: valid classic XRPL address (r..., checksum verified)"
    },
    "destination": {
      "type": "string",
      "description": "Receiving account: valid classic XRPL address"
    },
    "asset": {
      "type": "string",
      "description": "Asset delivered: XRP or CODE.issuer (3-character or 40-hex code, classic issuer)"
    },
    "amount": {
      "type": "string",
      "description": "Positive decimal amount of asset the destination receives"
    },
    "send_max_asset": {
      "description": "Asset of send_max: XRP or CODE.issuer; give it with send_max",
      "type": "string"
    },
    "send_max": {
      "description": "Most the source may spend, in send_max_asset; not with source_assets",
      "type": "string"
    },
    "source_assets": {
      "description": "Comma-separated assets the source may spend (1 to 4); not with send_max",
      "type": "string"
    }
  },
  "required": [
    "source",
    "destination",
    "asset",
    "amount"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "alternatives": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "source_amount": {
            "type": "object",
            "properties": {
              "asset": {
                "type": "string",
                "description": "`XRP` or `CODE.issuer`"
              },
              "value": {
                "type": "string",
                "description": "Decimal string"
              },
              "currency_ascii": {
                "description": "Readable text of a 40-hex currency code; null when not printable ASCII; absent for XRP and 3-character codes",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "asset",
              "value"
            ],
            "additionalProperties": false,
            "description": "Estimated amount the source spends"
          },
          "paths_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of computed paths"
          },
          "paths": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "account": {
                    "description": "Account the path rips through",
                    "type": "string"
                  },
                  "currency": {
                    "description": "Currency code of this step (3 characters or 40 hex)",
                    "type": "string"
                  },
                  "currency_ascii": {
                    "description": "Readable text of a 40-hex currency code; null when not printable ASCII; absent for XRP and 3-character codes",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "issuer": {
                    "description": "Issuer of the step currency",
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "description": "Computed paths, compact steps"
          }
        },
        "required": [
          "source_amount",
          "paths_count",
          "paths"
        ],
        "additionalProperties": false
      },
      "description": "Path alternatives; empty when none was found"
    },
    "paths_may_be_non_optimal": {
      "type": "boolean",
      "const": true,
      "description": "Path finding is best effort: a cheaper path may exist"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "destination_not_found"
        ]
      },
      "description": "Non-blocking warnings"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "alternatives",
    "paths_may_be_non_optimal",
    "warnings",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢xrpl_latest_ledger

Latest validated ledger index, hash and close time. When to use: To anchor other readings to a ledger or to check how current the network view is. Prefer another tool: Not for transaction data or account state; use the account endpoint for those. Example: xrpl_latest_ledger {}

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "ledger_index": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "close_time": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "ledger_hash": {
      "type": [
        "string",
        "null"
      ]
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "ledger_index",
    "close_time",
    "ledger_hash",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "Meta": {
      "type": "object",
      "properties": {
        "ledger_index": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Validated ledger the data comes from"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from the ledger"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "ledger_index",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢solana_transfer_readiness(source, destination, mint, amount)

Will this Solana transfer succeed? A verdict for SOL or an SPL or Token-2022 token. When to use: Before building or signing a Solana transfer, to learn whether it will fail and what it will cost in rent and fees. Prefer another tool: Not a simulation of the exact transaction (no priority fee, no program logic), not a token price or holder lookup, and not a way to read raw accounts. Example: solana_transfer_readiness {"source":"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri","destination":"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd","mint":"SOL","amount":"0.5"}

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Sending wallet: Solana wallet address: a base58 string that decodes to exactly 32 bytes"
    },
    "destination": {
      "type": "string",
      "description": "Receiving wallet (not its token account): Solana wallet address: a base58 string that decodes to exactly 32 bytes"
    },
    "mint": {
      "type": "string",
      "description": "`SOL` for native SOL, or the mint address of an SPL Token or Token-2022 token"
    },
    "amount": {
      "type": "string",
      "description": "Positive decimal amount in UI units (SOL or tokens, not lamports or raw units)"
    }
  },
  "required": [
    "source",
    "destination",
    "mint",
    "amount"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Sending wallet address"
    },
    "destination": {
      "type": "string",
      "description": "Receiving wallet address"
    },
    "mint": {
      "type": "string",
      "description": "`SOL` or the mint address"
    },
    "amount": {
      "type": "string",
      "description": "Amount checked, in the asset's UI units (as sent)"
    },
    "amount_raw": {
      "type": "string",
      "description": "Amount in raw units (lamports for SOL)"
    },
    "decimals": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Decimals of the asset (9 for SOL)"
    },
    "token_program": {
      "description": "Token program that owns the mint; null for SOL",
      "type": [
        "string",
        "null"
      ]
    },
    "ready": {
      "type": "boolean",
      "description": "True when no blocker applies"
    },
    "blockers": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "insufficient_balance",
          "insufficient_sol_for_fees",
          "source_below_rent_exempt",
          "destination_below_rent_exempt",
          "source_frozen",
          "destination_frozen",
          "non_transferable",
          "mint_paused"
        ]
      },
      "description": "Every blocking code that matched"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "destination_off_curve",
          "memo_required"
        ]
      },
      "description": "Every non-blocking warning that matched"
    },
    "requires_ata_creation": {
      "type": "boolean",
      "description": "True when the destination has no associated token account yet"
    },
    "ata_creation_lamports": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Rent-exempt lamports to create the destination token account; null when not needed"
    },
    "transfer_fee": {
      "anyOf": [
        {
          "type": "string",
          "description": "Decimal string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Token-2022 transfer fee in raw units; null without a fee config"
    },
    "net_amount": {
      "type": "string",
      "description": "Raw units the destination receives after any transfer fee"
    },
    "meta": {
      "$ref": "#/$defs/MetaSolana"
    }
  },
  "required": [
    "source",
    "destination",
    "mint",
    "amount",
    "amount_raw",
    "decimals",
    "token_program",
    "ready",
    "blockers",
    "warnings",
    "requires_ata_creation",
    "ata_creation_lamports",
    "transfer_fee",
    "net_amount",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "MetaSolana": {
      "type": "object",
      "properties": {
        "slot": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Context slot of the finalized read"
        },
        "commitment": {
          "type": "string",
          "const": "finalized",
          "description": "Every read is at finalized commitment"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from Solana"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "slot",
        "commitment",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢solana_token(mint)

Is this Solana token safe to hold or receive? A SAFE, WARN or DANGER verdict. When to use: Before accepting or swapping into an unfamiliar token, to see whether its mint can freeze, mint more, move or tax balances. Prefer another tool: Not a price, liquidity or holder lookup and not an audit of the token's project; it reads only the mint account. Example: solana_token {"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "description": "Mint address of an SPL Token or Token-2022 token (base58, 32 bytes)"
    }
  },
  "required": [
    "mint"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string"
    },
    "token_program": {
      "type": "string",
      "description": "SPL Token or Token-2022 program address"
    },
    "decimals": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "supply": {
      "type": "string",
      "description": "Total supply in raw units, exact"
    },
    "mint_authority": {
      "description": "Null when the mint authority is renounced",
      "type": [
        "string",
        "null"
      ]
    },
    "freeze_authority": {
      "description": "Null when the freeze authority is renounced",
      "type": [
        "string",
        "null"
      ]
    },
    "extensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Token-2022 mint extensions by name; empty for SPL Token"
    },
    "transfer_fee": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "basis_points": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "maximum_fee": {
              "type": "string",
              "description": "Maximum fee in raw units"
            }
          },
          "required": [
            "basis_points",
            "maximum_fee"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Transfer fee active at the current epoch; null without a fee config"
    },
    "verdict": {
      "type": "string",
      "enum": [
        "SAFE",
        "WARN",
        "DANGER"
      ],
      "description": "Highest level matched: DANGER > WARN > SAFE"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "permanent_delegate",
          "transfer_hook",
          "pausable",
          "default_account_frozen",
          "mint_authority_set",
          "freeze_authority_set",
          "transfer_fee",
          "mint_close_authority",
          "unknown_extension"
        ]
      },
      "description": "Every matched code of every level; empty for SAFE"
    },
    "meta": {
      "$ref": "#/$defs/MetaSolana"
    }
  },
  "required": [
    "mint",
    "token_program",
    "decimals",
    "supply",
    "mint_authority",
    "freeze_authority",
    "extensions",
    "transfer_fee",
    "verdict",
    "reasons",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "MetaSolana": {
      "type": "object",
      "properties": {
        "slot": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Context slot of the finalized read"
        },
        "commitment": {
          "type": "string",
          "const": "finalized",
          "description": "Every read is at finalized commitment"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from Solana"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "slot",
        "commitment",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢solana_latest_slot

Latest finalized Solana slot and its block time. When to use: To check how fresh the finalized view of Solana is, or to anchor a read to a slot. Prefer another tool: Not a tip-of-chain feed: it is finalized, not processed or confirmed, and it is cached for 2 seconds. Example: solana_latest_slot {}

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "slot": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Latest finalized slot"
    },
    "block_time": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "Block time of that slot; null when unavailable"
    },
    "meta": {
      "$ref": "#/$defs/MetaSolana"
    }
  },
  "required": [
    "slot",
    "block_time",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "MetaSolana": {
      "type": "object",
      "properties": {
        "slot": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Context slot of the finalized read"
        },
        "commitment": {
          "type": "string",
          "const": "finalized",
          "description": "Every read is at finalized commitment"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from Solana"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "slot",
        "commitment",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}
🟢solana_network_health

Whether Solana data is currently being served: latest probe status and finalized slot. When to use: Before relying on the Solana verdict endpoints, or to explain a 503 from them. Prefer another tool: Not a measure of the Solana network itself, only of this service's access to it; use the latest-slot endpoint to see chain progress. Example: solana_network_health {}

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "unknown",
        "unavailable"
      ],
      "description": "Latest probe result; `unavailable` while Solana data is not configured"
    },
    "slot": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Finalized slot of the latest successful probe"
    },
    "latency_ms": {
      "type": [
        "number",
        "null"
      ]
    },
    "last_probe_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "meta": {
      "$ref": "#/$defs/MetaSolana"
    }
  },
  "required": [
    "status",
    "slot",
    "latency_ms",
    "last_probe_at",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "$defs": {
    "MetaSolana": {
      "type": "object",
      "properties": {
        "slot": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Context slot of the finalized read"
        },
        "commitment": {
          "type": "string",
          "const": "finalized",
          "description": "Every read is at finalized commitment"
        },
        "as_of": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
          "description": "When the data was read from Solana"
        },
        "age_seconds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Age of the data at response time"
        },
        "cache": {
          "type": "string",
          "enum": [
            "hit",
            "miss",
            "stale"
          ]
        },
        "stale": {
          "type": "boolean",
          "description": "True when served past its fresh TTL (stale-on-error)"
        }
      },
      "required": [
        "slot",
        "commitment",
        "as_of",
        "age_seconds",
        "cache",
        "stale"
      ],
      "additionalProperties": false
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools
verifiedversion not recorded16 tools