AgentFeed
Server Details
Liquidation tape, exit liquidity, derivatives and Solana data. Per-call USDC over x402 or MPP.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- seekdaseek/agentfeed
- GitHub Stars
- 0
- Server Listing
- io.github.seekdaseek/agentfeed
TDQS
Scored across 59 tools
Many tools overlap in purpose, especially around funding rates, liquidations, cascades, and spot prices. Descriptions do provide distinctions like NOW vs history vs forecast or majors vs full universe, but an agent still faces several near-equivalent choices such as get_funding_rate vs get_funding_cross or get_spot vs get_sol_price/get_btc_price/get_eth_price.
Almost every tool follows a consistent get_ + snake_case noun phrase pattern, e.g. get_base_balance, get_cascade_alert, get_wallet_holdings. The only notable deviation is the free pricing tool named simply pricing rather than get_pricing.
With 59 tools, the set is far larger than a typical well-scoped MCP server and includes many overlapping or redundant endpoints. While the domain is broad crypto data, the count creates discoverability and selection costs that outweigh the benefit of each additional tool.
Coverage is very broad across prices, funding, liquidations, on-chain Solana data, DeFi TVL, stablecoins, orderbooks, and execution-adjacent metrics. Gaps remain for common needs like OHLCV/candle history, options data, and alerting/subscription workflows, but most core crypto data workflows are represented.
Available Tools
59 toolsget_base_balanceBase wallet balanceARead-onlyIdempotentInspect
ERC20 and native ETH wallet balance on Base or Ethereum mainnet, for a 0x address or an ENS name. decimals() and symbol() are read from the contract at request time rather than assumed, because assuming 18 reports a USDC balance a trillion times too large. ENS is resolved through two independent resolvers and the answer is used only when they agree, so a wrong address can never produce a confident balance for the wrong wallet. An unsupported chain is refused rather than silently answered from the wrong one. Costs 0.002 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base (default) or ethereum | |
| token | No | ERC20 contract address, or a known ticker: USDC, WETH, DAI, CBBTC, USDBC, CBETH, AERO, EURC. Omit for the native ETH balance | |
| address | Yes | 0x address (40 hex) or an ENS name ending .eth |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_base_balance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_balance |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior, and the description adds valuable behavioral details beyond that: decimals/symbol are read live from the contract to avoid magnitude errors, ENS is only trusted with two-resolver agreement, unsupported chains are refused, and the call costs 0.002 USDC. This gives an agent confidence in correctness and cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then each sentence adds distinct value: decimal correctness, ENS safety, chain safety, and cost. There is no filler or repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only tool with a full input schema and an output schema, the description covers chains, address resolution, token selection, native ETH behavior, error handling, and cost. Nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: omitting token returns native ETH balance, known tickers are accepted, and contract decimals are not assumed. This clarifies token behavior beyond the schema's bare descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence identifies a specific action and resource: returning ERC20 or native ETH wallet balances for a 0x address or ENS name on Base or Ethereum mainnet. This is more specific than the title and distinguishes it from related wallet tools like get_wallet_activity or get_wallet_holdings by focusing on balance and chain scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through address formats, supported chains, and token options, but it never explicitly says when to choose this tool over an alternative. With a long sibling list, explicit routing would strengthen this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_base_gasBase gas priceARead-onlyIdempotentInspect
Base gas price (chain 8453) in BOTH gwei and wei, with base fee, priority fee and block number when the node supplies them. Both units are returned because a caller asking in wei and a caller asking in gwei are asking the same question. Served from keyless public RPC with three-node fallback, so there is no API key to rotate or expire. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_base_gas payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_gas |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, openWorld, idempotent, non-destructive), the description adds substantial behavioral detail: returns both units, optional fields (base fee, priority fee, block number) dependent on node availability, three-node fallback, keyless access, and the exact cost of 0.001 USDC per call via x402. These are meaningful operational facts that affect how an agent plans and budgets the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the essential payload, then gives a brief rationale for dual units, followed by infrastructure and cost. Each sentence contributes distinct value – no filler. The length is justified by the need to communicate fallback behavior and metering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with a rich output schema, the description covers all relevant non-schema information: chain, units, optional fields, source reliability, keyless nature, and cost. The output schema handles return-value details, so nothing an agent needs to decide whether to call this tool and what to expect is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters)Skip, so the schema is trivially fully covered and there is nothing to document. Per the baseline for 0 params, a score of 4 is appropriate; the description adds no parameter semantics because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Base gas price on chain 8453) and specifies the returned fields (gwei, wei, base fee, priority fee, block number). It does not explicitly name a sibling tool to distinguish from, but the chain ID and unit duality make its purpose concrete. A 5 would require an explicit sibling contrast such as 'use get_priority_fees for priority fee breakdowns.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when needing base gas price in either gwei or wei. It explicitly explains that both units are returned because they are the same question, discouraging redundant calls for the other unit. It also provides operational context (keyless RPC, no key rotation, cost per call) but does not mention alternative tools or exclusion conditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_basisPerp spot basisARead-onlyIdempotentInspect
Perp-vs-spot basis for any USDT pair: the premium or discount in %, a contango or backwardation read, and the funding context that goes with it. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_basis payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_basis |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds a genuinely non-obvious behavioral fact: it costs 0.01 USDC per call via x402 on Solana or Base, and it enumerates the three things returned. That payment requirement is material context an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is computed and followed by the cost. No filler; every clause (premium/discount, contango/backwardation, funding context, price) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description still summarizes them plus the payment requirement. The remaining gap is routing guidance versus the funding/perp siblings, but for a single-optional-param paid tool it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single optional symbol parameter and an inline example plus default, so the schema does the heavy lifting. The description only adds that the pair is a 'USDT pair', which lightly reinforces valid input but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation on a specific resource: perp-vs-spot basis for USDT pairs, returning premium/discount %, contango/backwardation, and funding context. It is clearly distinct from generic price tools, but it does not explicitly differentiate itself from funding-oriented siblings like get_funding_rate despite referencing 'funding context'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no alternatives named among the many siblings (get_funding_rate, get_spread_arb, get_perp/get_spot). The only directive is implicit in the cost note, which tells the agent a payment is required but not when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_priceBTC spot priceARead-onlyIdempotentInspect
Live BTC/USD spot price (multi-source: Coinbase, Kraken, Pyth Hermes fallback). The confidence and publish_time fields are null unless Pyth Hermes served the request; Coinbase and Kraken publish neither. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_btc_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_btc_price |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description adds critical behavioral context: the multi-source fallback mechanism, the null confidence/publish_time behavior depending on the serving source, and the 0.001 USDC per-call cost. These are not covered by annotations and significantly inform an agent's invocation decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core purpose front-loaded in the first clause. The second sentence packs the fallback/null behavior and cost into a compact, information-dense statement with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an existing output schema, the description covers the essential non-schema context: what the null fields mean, the source fallback, and the per-call monetary cost. An agent has everything needed to decide whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and 100% schema description coverage, so the input schema fully documents the parameter surface. The baseline of 4 applies; the description adds no parameter-related meaning, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Live BTC/USD spot price' and names the exact data sources (Coinbase, Kraken, Pyth Hermes fallback). This clearly distinguishes it from sibling tools like get_eth_price or get_spot, leaving no ambiguity about the asset or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the asset name and description, but there is no explicit guidance on when to choose this tool over alternatives. The cost and multi-source nature provide context, but no alternatives or exclusions are mentioned, so the guidance remains inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cascade_alertLiquidation cascade alertARead-onlyIdempotentInspect
Liquidation cascade detector for the 5 majors (SOL, BTC, ETH, XRP, DOGE): returns cascades active NOW - clustered same-side liquidations with symbol, side, USD total, prints, duration, severity (minor/major/extreme). Empty cascades array = no cascade in window. For every USDT perp we record across 3 exchanges, use get_cascade_scan. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | lookback window seconds, 30-300, default 90 | |
| min_usd | No | min summed USD, default 50000 | |
| min_events | No | min prints to qualify, default 4 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_cascade_alert payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_alert |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, and the description adds meaningful behavioral context: it costs 0.01 USDC per call payable via x402, is time-sensitive ('active NOW'), and returns a structured cascade summary with severity levels. This goes well beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences carry the full scope, output shape, empty-case behavior, sibling routing, and cost. It is front-loaded with what the tool does and contains no filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only detector with three optional parameters, an output schema, and safe annotations, the description is complete: it covers the target symbols, the returned fields, the no-result case, the cost, and the correct alternative tool. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with descriptions and defaults, so schema coverage is 100%. The description does not need to restate parameter semantics, but it also does not add extra detail about how the parameters affect cascade detection beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-plus-resource purpose: it detects and returns currently active liquidation cascades for exactly five majors. It clearly distinguishes itself from get_cascade_scan by naming the broader perp universe as the alternative, so an agent can tell the tools apart without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is explicit: this tool is for the 5 majors, and if the agent needs every USDT perp across 3 exchanges it should use get_cascade_scan. It also clarifies the empty-array meaning, so an agent knows how to interpret a no-cascade result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cascade_forecastLiquidation cascade forecastARead-onlyIdempotentInspect
Liquidation forecast, FORWARD-LOOKING and not a description of what already happened. Returns the probability that a symbol will liquidate more in the NEXT 15 minutes than its own 90th-percentile 15-minute window. Calibrated on a 28-day tape of 1.4M Bybit liquidations across 799 symbols, which cannot be reconstructed by anyone starting today because no exchange publishes liquidation history. Every answer carries the exact question, the threshold in USD, the window it read, the number of historical occurrences behind the number, and instructions for settling it yourself from the public feed. When a state has too little history the tool DECLINES rather than guessing, and says why. The settled record is free at /api/forecast-record. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | SOL, BTC, ETH or any USDT perp e.g. SXTUSDT (default SOL) | |
| symbols | No | comma separated for a batch, max 20, e.g. SOL,BTC,ETH |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_cascade_forecast payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_forecast |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds substantial behavioral context beyond them: the tool DECLINES when history is too thin rather than guessing (and says why), every answer embeds self-settling instructions, the calibration provenance (28-day tape, 1.4M liquidations, 799 symbols) that cannot be reconstructed, the 0.02 USDC cost, and the free record location. These are exactly the behavioral traits an agent needs and the annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the defining trait ('FORWARD-LOOKING and not a description of what already happened') and the core return value. Every subsequent sentence earns its place: calibration provenance, self-settling transparency, declination behavior, record URL, and cost. Despite its length, there is no filler — each clause adds information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety (read-only, idempotent), the description covers everything else an agent needs: what the probability means, when it declines, how to settle/verify, where the settled record lives, and how much it costs. The pricing and declination behavior are critical operational details that would otherwise be entirely absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — both 'symbol' (with default SOL) and 'symbols' (comma-separated, max 20) are fully documented in the input schema. The description adds no parameter-specific semantics beyond that, so the baseline of 3 for high schema coverage applies. This is acceptable since the schema already carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise, specific computation: 'the probability that a symbol will liquidate more in the NEXT 15 minutes than its own 90th-percentile 15-minute window.' It explicitly distinguishes itself as FORWARD-LOOKING 'and not a description of what already happened,' which separates it from history siblings like get_cascade_history and get_liq_history. An agent can tell this tool apart from its siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is for forward-looking liquidation probability, not historical reconstruction, and it explains the declination behavior ('DECLINES rather than guessing') and the per-call cost, which informs when it should be invoked. However, it never explicitly names alternatives — notably get_cascade_forecast_free, which is presumably the no-cost route — so it stops short of 5, which would require explicit when-not/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cascade_forecast_freeFree cascade forecastARead-onlyIdempotentInspect
FREE taster: the full-quality liquidation forecast for SOL, no delay and nothing withheld. Use it to check the calibration before paying for coverage of the other ~345 symbols. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_cascade_forecast_free payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds value by explaining the free nature, the scope (SOL only), and the purpose of calibration checking, which goes beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the key facts: 'FREE taster' and 'full-quality liquidation forecast for SOL.' No filler, every word contributes to understanding the tool's scope and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for an agent to select and invoke correctly. It explains what, scope, and why to use it. The output schema exists, so return format details are not required. It fully covers the free vs. paid distinction and the use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage (empty schema), the description has no need to explain parameters. The baseline for 0-param tools is 4, and the description appropriately omits any param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a free liquidation forecast for SOL, explicitly noting it is the 'full-quality' version with 'no delay and nothing withheld.' It distinguishes itself from the paid sibling get_cascade_forecast by being free and limited to SOL, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use: 'Use it to check the calibration before paying for coverage of the other ~345 symbols.' This implies the alternative (get_cascade_forecast) for broader coverage and provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cascade_historyCascade historyARead-onlyIdempotentInspect
Liquidation cascade history: past clustered same-side flush events reconstructed from our own tape, with start and end, prints, USD total and peak print, up to 72h back. /api/cascade tells you what is happening NOW; this tells you what already happened. Costs 0.03 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| gap_s | No | max gap seconds within an event, default 60 | |
| hours | No | 1-72, default 24 | |
| scope | No | symbol = just this symbol (default), all = every recorded USDT perp | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) | |
| min_usd | No | min event USD, default 100k (250k for scope=all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_cascade_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_history |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description's added value comes from disclosing the paid nature: 'Costs 0.03 USDC per call (x402, USDC on Solana or Base)' — critical operational knowledge an agent needs before invocation. It also adds the data-origin detail ('reconstructed from our own tape') and the 72h lookback cap, neither of which is in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with each earning its place: the first states purpose and output shape, the second provides the temporal contrast with the live endpoint, and the third discloses cost and payment rails. Critical payoff information (pricing, scope) is front-loaded early in the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, 100% parameter coverage, and safety annotations, the description need not explain return shapes or idempotency. It covers purpose, data source, time bounds, cost, and the main alternative. The one gap is that it does not clarify how it differs from other historical liquidation tools in the sibling set, which is a plausible source of agent confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (gap_s, hours, scope, symbol, min_usd) is already documented with defaults and examples in the schema. The description adds conceptual framing (clustered same-side flush events, peak print) that helps interpret gap_s and min_usd, but provides no per-parameter guidance beyond schema parity, matching the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and operation: 'Liquidation cascade history: past clustered same-side flush events reconstructed from our own tape,' and specifies output contents (start/end, prints, USD total, peak print) and temporal bounds (up to 72h back). It also distinguishes itself from the live endpoint by contrasting 'what is happening NOW' with 'what already happened,' which separates it from real-time cascade tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when/when-not: use /api/cascade for current activity and this tool for historical events. However, it only contrasts against one live endpoint and does not route among the many historical liquidation siblings (get_liq_history, get_recent_liquidations, get_cascade_scan), leaving some selection ambiguity in the broader sibling family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cascade_scanFull universe cascade scanARead-onlyIdempotentInspect
FULL-UNIVERSE cascade scan: detects liquidation cascades across every USDT perp we record on Bybit, OKX and Binance simultaneously - not just majors. Bybit is the only complete unthrottled liquidation tape in crypto and no exchange publishes history of it, so this coverage is not available anywhere else. Returns symbol, side, USD total, prints, duration, severity. Costs 0.05 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | lookback window seconds, 30-300, default 90 | |
| min_usd | No | min summed USD, default 50000 | |
| min_events | No | min prints to qualify, default 4 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_cascade_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_scan |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the paid nature (0.05 USDC via x402), the unique data provenance (Bybit unthrottled tape), and the returned fields. It does not discuss rate limits or pagination, but those are not critical given the output schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first defines the scan scope, the second justifies the data uniqueness, and the third lists outputs and cost. The key qualifier 'FULL-UNIVERSE' is front-loaded, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only scan with three optional, well-documented parameters and an output schema, the description is complete: it states scope, output fields, cost, and data provenance. The only minor gap is explicit sibling routing, but that is not necessary for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (window, min_usd, min_events) with descriptions, so the baseline is 3. The tool description adds no parameter-specific meaning beyond the schema, but it does not need to because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'FULL-UNIVERSE cascade scan' and immediately specifies the verb ('detects liquidation cascades'), resource ('every USDT perp we record on Bybit, OKX and Binance'), and scope ('not just majors'). This clearly separates it from narrower liquidation tools like get_last_liquidation or get_cascade_alert, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool – when a full-universe cascade scan is needed rather than a major-only or single-symbol view – but it never explicitly states when to prefer a sibling or when not to use it. It provides clear context but no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dex_quoteJupiter DEX quoteARead-onlyIdempotentInspect
Solana DEX quote from Jupiter for any SPL pair: output amount, price impact %, the route taken and the slippage assumed. The real executable price on Solana, not an index price. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | amount in raw base units of input mint | |
| input_mint | Yes | input mint (base58) | |
| output_mint | Yes | output mint (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_dex_quote payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_dex_quote |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond the annotations by disclosing the per-call cost of 0.005 USDC, the x402 payment mechanism, and the fact that the quote reflects a real executable price rather than an index price.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose and outputs, and the second sentence adds the important cost and network details. Every sentence earns its place, with no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only quote tool with full schema coverage and an output schema, this description is complete. It covers what the quote returns, the key distinction from index prices, the cost, and the payment rail, which is everything an agent needs to decide whether and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so input_mint, output_mint, and amount are already documented with meaningful descriptions such as 'raw base units' and 'base58'. The description reinforces that any SPL pair is supported but does not add substantial parameter-level semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb-resource pair: retrieving a Solana DEX quote from Jupiter for any SPL pair, and enumerates the key outputs (output amount, price impact, route, slippage). It distinguishes itself from index-price tools by explicitly stating this is the real executable price, though it does not name a specific sibling tool to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this tool is appropriate: when an executable on-chain DEX price, rather than an index price, is needed for an SPL pair. However, it provides no explicit when-not-to-use guidance and does not mention alternatives like get_exit_quote or get_spot, leaving the routing decision mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eth_priceETH spot priceARead-onlyIdempotentInspect
ETH spot price in USD, aggregated across seven independent venues (CoinGecko, Coinbase, Kraken, Binance, OKX, Gemini, DefiLlama). Returns the lead figure plus every venue quote that answered, so a caller can see the spread rather than trust one exchange. Venues are ranked in a fixed declared order, not completion order, so identical market state always returns the same lead price. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_eth_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_eth_price |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations. It discloses the aggregation across seven venues, the return structure (lead figure plus all answering venue quotes), the deterministic ordering rule, and the per-call cost and payment rails. These are critical behavioral details that the annotations (readOnly, idempotent, openWorld) do not capture. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but every sentence carries essential information: the core price, the venue list, the return format, the deterministic ordering, and the cost. It is front-loaded with the primary purpose and then adds critical operational details. Slightly more compact than ideal, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter nature and the presence of an output schema, the description fully covers what an agent needs: what the tool returns, how venues are aggregated, determinism, and cost. There is no ambiguity about invocation or expected behavior. The description is complete for a zero-param query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing for the description to explain. The baseline for zero parameters is 4, and the description appropriately omits any parameter discussion since none exist. No additional semantic burden is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'ETH spot price in USD', and explicitly details the aggregation across seven named venues. It distinguishes itself from siblings like get_btc_price and get_sol_price by focusing on ETH and its multi-venue nature. The purpose is unambiguous and immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it doesn't explicitly name alternative tools or say 'use this when...', the description makes the use case self-evident: obtaining a robust, multi-venue ETH spot price. It implies usage when a single-exchange quote is insufficient, but it doesn't explicitly contrast with get_spot or get_market_snapshot. Clear context, though no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exit_methodExit liquidity methodARead-onlyIdempotentInspect
FREE: how overhang measures exit liquidity on lending collateral, and the counts behind every paid answer - computed from the tape at request time, nothing hardcoded. Returns what is measured (the protocol's own live-refetched mark vs realisable value from sell-direction quotes at real clip sizes), the corroboration rule in plain terms (a terminal verdict needs six consecutive agreeing floor observations from the symbol's own tape; one sample is never enough; a contradicted floor buys a fresh probe rather than writing a hole), the full status vocabulary including why a router refusal and an empty book are different facts, the size-matched control design and its results, the gated sweep and row counts, covered symbols and markets, and the measured cadence. Read this before paying for get_exit_quote, and to check the claim rather than trust it. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_exit_method payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnly/openWorld/idempotent. The description goes well beyond them by disclosing that data is 'computed from the tape at request time, nothing hardcoded,' that it is free, and that the status vocabulary distinguishes events like 'a router refusal and an empty book' as different facts. These are behavioral specifics not derivable from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense single paragraph covering many distinct aspects (measurement methodology, corroboration rule, status vocabulary, control design, row counts, covered symbols, cadence) with no filler. It is front-loaded with 'FREE' and the core question about overhang, though a bulleted structure would slightly improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only informational tool with an output schema, the description is complete: it explains what is returned, why the tool exists, how the data is computed, and when to use it relative to the paid sibling. Nothing an agent needs to correctly select and invoke the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is trivially 100%, so the baseline of 4 applies. The description correctly contains no parameter information because none is needed for invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as returning the methodology and live-computed data behind exit liquidity measurements, with specific phrases like 'Returns what is measured' and 'the corroboration rule in plain terms.' It distinguishes itself from the paid sibling get_exit_quote by being explicitly 'FREE' and framed as the precursor, so an agent can tell it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to use it: 'Read this before paying for get_exit_quote, and to check the claim rather than trust it.' This both identifies the alternative tool and the condition that selects this one, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exit_quoteCollateral exit liquidityARead-onlyIdempotentInspect
EXIT LIQUIDITY on seized collateral: what a liquidator ACTUALLY realises selling a Kamino reserve into live routing, versus the oracle price the protocol marks it at. Returns max_exitable_usd (largest clip whose liquidator margin is still positive, found by bisection, with its resolution width), the exitable fraction, the conservative bound at the 2% penalty floor, and for the nearest clip actually probed: realised USD, haircut bps and liquidator margin bps. Distinguishes a router that REFUSES to quote a token (permissioning, not illiquidity) from a book with no route (a real liquidity finding) - they are different facts and were one status until this split. A terminal verdict requires six consecutive agreeing observations from the symbol's own tape, so a single bad quote cannot produce a finding; withheld verdicts fall back to the last corroborated measurement with its age rather than returning null. Zero bad debt today does not disprove any of this - it means nobody has been forced to test it at size. Method, corroboration rules and row counts are free via get_exit_method. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | reserve symbol e.g. SPYx, cbBTC, FWDI, CRCLx (get_exit_method lists all covered) | |
| size_usd | No | clip size in USD you would need to exit; the nearest MEASURED clip is returned, never interpolated |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_exit_quote payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_exit_quote |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the readOnlyHint annotation, revealing the bisection method, six-consecutive-observation rule, fallback behavior, distinction between router refusal and missing route, zero bad debt caveat, and the 0.02 USDC cost. This is exceptional behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, with core purpose front-loaded. It is somewhat long, but each clause adds critical context about methodology, edge cases, or cost. The structure could be slightly improved with paragraph breaks, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers all necessary contextual elements: methodology, interpretation caveats, fallback behavior, cost, and the distinction between routing failures. Nothing critical is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The description adds extra meaning about size_usd (nearest measured clip, never interpolated) and implies symbol must be from covered list by referencing get_exit_method. This supplements the schema meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool measures actual exit liquidity for seized collateral versus oracle price, with a specific verb and resource. It distinguishes itself from generic liquidation or quote tools, but doesn't explicitly name the sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is relevant: when a liquidator needs to know realizable value on Kamino reserves. It also references get_exit_method for methodology, showing awareness of related tools, though it doesn't explicitly state when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fear_greedFear and Greed indexARead-onlyIdempotentInspect
Crypto Fear & Greed index (0-100) with classification. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_fear_greed payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds minimal extra behavioral context: it is free and includes a classification. It does not contradict annotations, but it does not disclose rate limits, update frequency, or other operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: it states the data source, scale, output characteristic, and cost in two short sentences. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema and comprehensive annotations, the description is sufficient for an agent to understand what the tool provides and to invoke it correctly. Missing usage guidance is captured under usage_guidelines, not completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters)Skip, and schema coverage is 100% with an empty properties object. There are no parameters requiring additional semantic explanation, so the baseline of 4 applies; the description need not add parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific resource (Crypto Fear & Greed index) and adds the scale (0-100) and classification aspect, making the purpose clear. It lacks an explicit verb like 'returns' or 'retrieves', and it does not explicitly differentiate itself from sibling tools, though the resource is unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. The word 'Free' hints at a cost advantage but does not state a use case, prerequisites, or exclusions. An agent would not know when this is preferred over other data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecast_questionForecast question specARead-onlyIdempotentInspect
FREE: the exact question the forecast answers, machine readable, plus how to settle it yourself from the public exchange feed and the full list of covered symbols. Read this before building on the forecast. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_forecast_question payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the description only needs to add extra context. It adds useful behavioral detail: the data is free, machine-readable, from the public exchange feed, and includes self-settlement instructions and covered symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences with the key 'FREE' fact and main content front-loaded. The repetition of 'Free' at the end is a minor redundancy, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with an output schema, the description is sufficiently complete. It states what is returned, the data source, the free nature, and the correct usage order, with no important gap for an agent selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so the baseline of 4 applies. There are no parameters for the description to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning the exact question a forecast answers, including machine-readable settlement details and the list of covered symbols. It lacks an explicit verb like 'returns' and doesn't name a differentiating sibling, but the purpose is unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Read this before building on the forecast' explicitly gives a precondition for using this tool, and the 'FREE' marker signals a no-cost entry point. It doesn't discuss when not to use the tool or point to alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecast_recordForecast track recordARead-onlyIdempotentInspect
FREE: the live track record of this miner. Every forecast was written down BEFORE its 15-minute window opened and settled afterwards from the exchange public feed, and the raw rows are returned alongside the score so you can recompute it yourself rather than take it on trust. Returns settled count, base rate, Brier skill against climatology, coverage, calibration error and a reliability curve. A backtest is a claim about the past that its author also chose how to compute; this is not that. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | how many raw rows to return, max 500, default 50 | |
| symbol | No | restrict the record to one symbol |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_forecast_record payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses valuable behavioral details: forecasts are written before the window opens, settled from the exchange public feed afterward, and raw rows are returned for independent recomputation. It also notes the output fields and that the tool is free, giving agents a strong safety and trust profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key fact ('FREE: the live track record of this miner') and contains useful details, but it is slightly wordy with the repeated 'Free' at the end and a somewhat rhetorical backtest sentence. It earns a high score but loses a point for minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the read-only annotations, optional parameters, and existing output schema, the description covers what an agent needs: what the record is, how it was produced, what metrics are returned, and why it can be trusted. No critical call-invocation information appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions. The tool description adds general context about raw rows being returned, but it does not contribute meaningfully beyond the schema's own parameter documentation, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair ('get the live track record of this miner') and clearly states what is returned: settled count, Brier skill, coverage, calibration error, and reliability curve. It also distinguishes the tool from a backtest, so an agent can understand what this record is and is not without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: when you need a verifiable live track record rather than an author-computed backtest. It explicitly contrasts it with backtests ('this is not that') but does not name specific sibling tools or provide a full when-to-use vs alternatives matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_crossCross venue fundingARead-onlyIdempotentInspect
Funding rate for ANY USDT perp across Bybit, OKX and Hyperliquid in one call, with the cross-venue spread and a crowding read. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_funding_cross payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_cross |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld/no-destructive, so the safety profile is set. The description adds genuinely new behavioral context: a per-call cost of 0.01 USDC via x402 on Solana or Base, which is important for an agent deciding whether to invoke it. It does not mention rate limits or latency, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the capability and venues before the billing detail. No filler; every clause carries distinct information (coverage, outputs, cost, payment rails).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return shape need not be explained, and the one parameter is fully covered by the schema. Purpose, venues, and cost are all stated, so the definition is essentially complete; only the routing against sibling funding tools is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single well-documented 'symbol' parameter including an example and default. The description adds nothing about symbol handling, so the baseline of 3 applies — the schema does the work and the description neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('funding rate for ANY USDT perp') and a precise scope: three named venues (Bybit, OKX, Hyperliquid) plus the derived outputs (cross-venue spread, crowding read). This implicitly distinguishes it from the many single-venue funding siblings, but it never names an alternative, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies the multi-venue use case versus per-venue calls, and the price note signals it is a paid convenience tool. However, there is no explicit when-to-use/when-not and no sibling is named, leaving the choice against get_funding_rate, get_funding_extremes, etc. to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_extremesFunding extremesARead-onlyIdempotentInspect
Funding rate extremes across every Bybit USDT perp: the most positive and most negative funding with annualized %, 24h price move and open interest. The most crowded trades in the market — crowded shorts are squeeze candidates. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N each side, 1-25, default 10 | |
| min_turnover_usd | No | liquidity floor, default 1M |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_funding_extremes payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_extremes |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond annotations by disclosing the 0.02 USDC cost, x402 payment mechanism, and that USDC is accepted on Solana or Base. This is meaningful behavioral information the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each earning its place: scope and return fields, interpretation/use case, and cost. The most decision-relevant information is front-loaded with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 required parameters) and the presence of an output schema, the description covers the essential context: what is returned, what it means, and the cost. It does not explicitly route to sibling tools, but nothing an agent needs to correctly invoke it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both 'limit' and 'min_turnover_usd' are already fully described in the schema with defaults and ranges. The description does not add parameter-specific meaning beyond that, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a concrete action and resource: 'Funding rate extremes across every Bybit USDT perp'. It explicitly lists the returned metrics (annualized %, 24h price move, open interest), making the tool's scope and output unmistakable and distinct from generic funding-rate tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the intended use case: surfacing the most crowded trades, with 'crowded shorts are squeeze candidates'. This gives an agent strong context for when to use it, though it does not explicitly name sibling alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_historyFunding historyBRead-onlyIdempotentInspect
Funding rate history for any USDT perp, up to 200 intervals: the average rate, its annualized %, the share of intervals that were positive, and the raw series. What the carry has actually been. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | intervals, 1-200, default 30 | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_funding_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_history |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world and idempotent traits, so the description earns credit for adding what they cannot: a per-call price (0.005 USDC via x402 on Solana or Base). That payment/cost disclosure is genuinely useful behavioral context an agent needs before calling. It stops short of mentioning rate limits or history depth beyond 200.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose and result fields, then cost. 'What the carry has actually been' is slightly decorative but reinforces intent rather than wasting a slot.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 pricing is covered. What is missing is sibling differentiation and any statement of history boundaries beyond the 200-interval cap, leaving the agent under-equipped to choose this over get_funding_rate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents limit (1-200, default 30) and symbol (default SOLUSDT). The description's 'up to 200 intervals' and 'any USDT perp' merely echo that, adding no syntax or format meaning. Baseline 3 applies when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('funding rate history for any USDT perp') and even enumerates the returned quantities, so the purpose is unambiguous. However, it never distinguishes itself from the several funding-named siblings (get_funding_rate, get_funding_pulse, get_funding_extremes, get_funding_cross), which is where an agent is most likely to misfire.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not, or alternative named. The 'history' framing implies a retrospective use case, but with four sibling funding tools the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_pulseFunding pulseARead-onlyIdempotentInspect
Use when an agent needs the most extreme funding rates right now. Returns the 5 largest absolute annualised rates across the whole Bybit USDT perp universe, each with venue, 8h rate, open interest and 24h price move. One call, not a full screen. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_funding_pulse payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_pulse |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive; the description adds the critical behavioral fact that each call costs 0.001 USDC via x402, which matters for agent cost decisions. It also clarifies the return shape (5 largest rates with venue, 8h rate, OI, price move), going beyond annotation coverage. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, with the trigger condition front-loaded, the output contract in the middle, and the cost warning at the end. Every sentence contributes new information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema, the description covers trigger, output fields, scope universe, and cost. Nothing an agent needs to decide whether to call it or understand its result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, giving 100% coverage by definition. With zero parameters, the description cannot add parameter meaning, but it doesn't need to, so the baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('get') and a specific resource ('most extreme funding rates right now'), then precisely defines the return: the 5 largest absolute annualised rates across Bybit USDT perps with venue, 8h rate, OI, and 24h move. This clearly differentiates it from sibling funding tools like get_funding_rate or get_funding_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger: 'Use when an agent needs the most extreme funding rates right now.' The phrase 'One call, not a full screen' implies alternatives exist for broader analysis without naming them, and the Bybit USDT perp universe scoping prevents misuse for other venues. It lacks explicit 'use X instead' exclusions but the condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_ratePerp funding rateARead-onlyIdempotentInspect
Funding rate for any USDT perp on Bybit, OKX and Hyperliquid, each at its own interval: raw rate, interval hours, 8h equivalent, annualised rate, next funding time and mark price per venue. Without a symbol, SOL and BTC from Hyperliquid with open interest. Costs 0.002 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. ETHUSDT, ONDOUSDT (omit for SOL and BTC from Hyperliquid) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_funding_rate payload (without symbol: {sol, btc} from Hyperliquid; with symbol: {symbol, venues: {bybit, okx, hyperliquid}}); a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new operational context: a per-call charge of 0.002 USDC settled via x402 on Solana or Base, plus the per-venue interval normalization. It does not cover rate limits or failure modes, but the paid-call disclosure is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then the no-symbol fallback, then pricing. The field enumeration in the middle is dense but each item is informative; nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with an output schema and full annotation coverage, the description supplies what structured fields cannot: venue coverage, default-symbol behavior, and the payment model. Return values need not be explained given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'symbol' parameter's format and omission behavior are documented in the schema itself. The description's field list describes outputs rather than the parameter, so it adds little semantic value to the parameter beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('funding rate for any USDT perp') with the exact venue scope (Bybit, OKX, Hyperliquid) and enumerates the returned fields. It does not, however, distinguish itself from the many funding siblings (get_funding_cross, get_funding_history, get_funding_pulse, get_funding_extremes), so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives fallback behavior ('Without a symbol, SOL and BTC from Hyperliquid with open interest') and a cost signal, which implies usage but never states when to choose this over the other funding tools. No explicit when-not or alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jito_tipsJito tip floorARead-onlyIdempotentInspect
Jito tips: bundle tip floor percentiles from p25 to p99 in SOL — what landed bundles are actually paying — with an EMA p50 and a landing recommendation. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_jito_tips payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_jito_tips |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, open-world, idempotent, and non-destructive; the description adds valuable operational context: a hard cost of 0.005 USDC per call, payment via x402, and accepted USDC networks (Solana or Base). It also clarifies the payload shape (percentiles plus EMA and recommendation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both load-bearing. The data content is front-loaded, and the cost/payment details are tucked into a single compact second sentence. There is no filler or repetition of the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-input, read-only tool with an output schema, the description covers what is returned, in what unit (SOL), and the key operational constraint (cost and payment rails). No other parameter, prerequisite, or return-value detail is necessary for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter semantics, but none are needed; instead it clarifies the data scope and units an agent can expect without any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool returns: Jito bundle tip floor percentiles p25–p99 in SOL, an EMA p50, and a landing recommendation. This goes well beyond the title 'Jito tip floor' and distinguishes it from the many other market-data getters in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to call this tool versus alternatives such as get_priority_fees or pricing. The phrase 'what landed bundles are actually paying' implies a use case, but the description never states the intended context or conditions that should select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_liquidationLast liquidationARead-onlyIdempotentInspect
FREE taster: last liquidation for SOL, BTC, ETH, XRP and DOGE (15-min delayed). Real-time via get_recent_liquidations. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_last_liquidation payload |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond annotations: the 15-minute delay, the limited asset universe, and the free/taster nature of the data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key facts. The word 'Free' appears twice, which is slightly redundant, but the overall structure is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a rich output schema, and strong annotations, the description covers the essential context: what data is returned, for which assets, with what delay, and when to use the real-time alternative. It is complete for a no-argument read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%, so the baseline is 4. The description appropriately focuses on scope and data freshness rather than parameter details, since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('last liquidation'), the specific assets covered (SOL, BTC, ETH, XRP, DOGE), and the data delay. It also distinguishes itself from get_recent_liquidations by explicitly pointing to that sibling for real-time data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative tool (get_recent_liquidations) and the condition for choosing it ('Real-time'). The 'FREE taster' phrasing implies this is for a free, delayed sample, though it does not explicitly state 'use this when you need delayed data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liq_heatmapLiquidation heatmapARead-onlyIdempotentInspect
Liquidation heatmap by PRICE LEVEL: where leverage actually got flushed in the last N hours — USD, prints and long/short split per price zone, with the hottest zone flagged. Built from real liquidation prints, not entry-price estimates. Costs 0.05 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | lookback 1-168, default 24 | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) | |
| buckets | No | price buckets 5-50, default 20 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_liq_heatmap payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_heatmap |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the bar is lower, and the description adds genuinely useful context beyond them: a per-call cost (0.05 USDC, x402 on Solana or Base) and the data provenance ('real liquidation prints, not entry-price estimates'). This tells the agent about payment and data quality, which annotations do not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then provenance and cost in separate short clauses; every sentence carries information. Slightly dense but no wasted phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover the safety profile; the description still contributes cost and data-source context. Only the lack of sibling routing keeps it from fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents hours, symbol, and buckets, making 3 the baseline. The description only loosely echoes 'last N hours' and 'price zone' without adding syntax, units, or range guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and the exact dimension it aggregates on ('Liquidation heatmap by PRICE LEVEL'), which cleanly separates it from the many sibling liquidation tools that report history, pulse, leaders, or stats. The output content is spelled out (USD, prints, long/short split per zone, hottest zone flagged).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'last N hours' framing implies when the tool is relevant (recent leverage flushes), but there is no explicit when-to-use/when-not or routing to alternatives like get_liq_history or get_liquidation_leaders. Usage is left to inference given the crowded liquidation-tool family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liq_historyLiquidation historyARead-onlyIdempotentInspect
Liquidation history, time-bucketed: total, long and short USD, prints and biggest print per bucket, for any USDT perp or the whole recorded universe, up to 7 days back. Bybit is the only complete liq tape in crypto and no exchange publishes history of it. Costs 0.05 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | lookback 1-168, default 24 | |
| scope | No | all = whole universe | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) | |
| bucket_min | No | bucket minutes 5-1440, default 60 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_liq_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_history |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, which already cover safety. The description adds valuable context: cost per call (0.05 USDC via x402), the claim about Bybit being the only complete liq tape (implying data source), and the 7-day lookback limit. These go beyond annotations and help set expectations for cost and data availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core output (time-bucketed liquidation history) before adding scope and time constraints. It then provides valuable context on data uniqueness and cost. Every clause earns its place, though it could be slightly more structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple parameters, scoping options, output schema) and the rich annotations, the description covers the key operational facts: time window, scope, cost, and data source uniqueness. The output schema handles return structure, and annotations cover safety. Missing minor things like example usage or authentication specifics, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter (hours, scope, symbol, bucket_min). The description adds no extra parameter-level details beyond what's in the schema, but the schema's descriptions are sufficient. It clarifies the 'all' scope and default symbol, but that's already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('get') and resource ('liquidation history') with detailed output contents: time-bucketed totals, long and short USD, prints, biggest print per bucket, for a symbol or whole universe. It clearly distinguishes from siblings like get_last_liquidation (single print) and get_recent_liquidations (recent trades), making it unique among the many liquidation-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: for historical liquidation data up to 7 days back, as opposed to real-time or single-liquidation tools. It mentions the whole-universe option and the 7-day limit. However, it doesn't explicitly say 'when not to use' or name alternative tools for other liquidation needs, but the context is clear enough for an agent to pick this for historical analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liq_pulseLiquidation pulseARead-onlyIdempotentInspect
Use when an agent needs to know what is being liquidated right now. Returns the last 60 minutes across every USDT perp we record: total USD, long/short split, prints and the top 5 symbols. Declines with the tape age if our recording is stale. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_liq_pulse payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_pulse |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond that: the response covers only the last 60 minutes, 'declines with the tape age if our recording is stale', and the call costs 0.001 USDC via x402 on Solana or Base. This cost and staleness disclosure is exactly the kind of operational behavior an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no redundant filler. The most important usage signal is front-loaded, and every remaining clause (output contents, staleness behavior, cost) adds distinct value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with an output schema, the description is fully sufficient: it states when to call, what the response will contain, the time window, the staleness caveat, and the cost. No critical operational detail is missing for an agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is complete, so there is nothing semantically ambiguous. Per the baseline for parameterless tools, the description does not need to add parameter detail; it already communicates the time window and output scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear trigger ('Use when an agent needs to know what is being liquidated right now') and specifies the resource: the last 60 minutes of USDT perp liquidations across every recorded symbol. It also differentiates from siblings by naming the response contents (total USD, long/short split, prints, top 5 symbols), so an agent can distinguish it from get_last_liquidation, get_liq_history, or get_liq_heatmap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when' phrasing gives explicit context for when to call this tool, and the 60-minute window plus USDT perp scope clarifies its boundary. It does not explicitly name alternatives or state when not to use it, but the context is clear enough to route an agent correctly among the many liquidation-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquidation_leadersLiquidation leaderboardARead-onlyIdempotentInspect
What is blowing up RIGHT NOW: top symbols ranked by liquidation USD across every USDT perp we record on Bybit, OKX and Binance. Per symbol: total liquidated, long vs short split, biggest single print, venue count, dominant side. The fastest read on where leverage is being flushed. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N symbols, 1-50, default 10 | |
| window_min | No | lookback minutes, 5-1440, default 60 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_liquidation_leaders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_leaders |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable context beyond annotations: cross-venue data sources, the aggregation fields returned, and the 0.02 USDC fee with settlement rails. No contradictory behavioral claims are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the core purpose, then listing output fields, positioning, and cost. The rhetorical phrases like 'blowing up RIGHT NOW' and 'fastest read' add tone but not hard information, which keeps it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only tool with an output schema and two optional, well-documented parameters, the description provides everything needed: source venues, per-symbol result dimensions, and the fee. Nothing an agent needs to call it correctly is clearly missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (limit, window_min) already have clear descriptions in the schema. The tool description does not add further parameter nuance, but the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: top symbols ranked by liquidation USD across USDT perps on Bybit, OKX, and Binance, with per-symbol breakdown fields. It is unambiguous about what the tool returns, though it does not explicitly contrast itself with closely related siblings like get_liquidation_stats or get_recent_liquidations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'fastest read on where leverage is being flushed' gives an agent a clear context for when to use this tool: quick liquidation-pulse monitoring. It does not spell out exclusions or alternatives, but for a simple read-only snapshot tool the implied usage is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquidation_statsLiquidation statsARead-onlyIdempotentInspect
Liquidation aggregates for the 5 majors (SOL, BTC, ETH, XRP, DOGE): 1h and 24h totals, longs vs shorts USD split, biggest print, broken out per exchange. Costs 0.004 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_liquidation_stats payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_stats |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds a critical non-obvious trait: the call costs 0.004 USDC via x402 on Solana or Base. This is essential for an agent to know before invoking, as it involves a payment. It also details the output composition, which goes beyond the empty input schema, giving the agent context about the returned data structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, with the first sentence front-loading the core resource and its contents, and the second adding the cost and execution details. Every word carries information—no fluff, no repetition. It is tightly structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with an output schema (which presumably details the structure), the description already lists the major output components: timeframes, long/short split, largest liquidation, and exchange breakdown. It also discloses the fee and payment method. The only minor omission is nuance about x402 itself, but that is not essential to calling the tool correctly. The description is complete for an agent to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no meaning to clarify. The baseline for a zero-parameter tool is 4. The description effectively explains what the tool returns, which is the only relevant semantic information. It does not need to add parameter-specific details since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns liquidation aggregates for exactly 5 specified cryptocurrencies (SOL, BTC, ETH, XRP, DOGE) with concrete breakdowns (1h/24h totals, longs vs shorts, biggest print, per exchange). This distinguishes it from sibling tools like get_last_liquidation or get_liq_history, which focus on individual liquidations or historical data. The verb is implied by the name, but the resource and content are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear information about what the tool returns, which implies it should be used when an agent needs aggregated liquidation statistics for these five majors. However, it does not explicitly state when not to use it or mention alternatives. No exclusion criteria are given, so the agent must infer usage from the content. This is adequate but lacks explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_long_shortLong short ratioARead-onlyIdempotentInspect
Long/short ratio for ANY USDT perp: the retail long and short account percentages from Bybit with 1h and 24h trend. The crowding gauge. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_long_short payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_long_short |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, non-destructive behavior. The description contributes beyond them by disclosing the data source (Bybit), the specific payload (retail long/short account percentages with 1h/24h trend), and the cost/access model (0.01 USDC via x402 on Solana or Base), which is genuinely useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core resource and scope, then a punchy functional tag, then the cost. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 1-param read tool with an output schema and full annotation coverage, the description covers purpose, source, payload shape, and payment model. Return values need not be explained given the output schema, leaving little missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single symbol parameter and its default are already fully documented. The description reinforces the 'USDT perp' constraint but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (long/short ratio) with the source (Bybit retail account percentages) and the trend granularity (1h and 24h), plus the scope (ANY USDT perp). 'The crowding gauge' adds a functional framing, but it does not explicitly distinguish itself from a nearby sibling like get_positioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via 'The crowding gauge,' which hints at sentiment/crowding analysis, and the cost note signals a paid, deliberate call. There is no explicit when-to-use, when-not, or named alternative among the many funding/positioning siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_snapshotMarket snapshotARead-onlyIdempotentInspect
SOL+BTC prices, funding rates, and Fear & Greed in one call. Costs 0.003 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_market_snapshot payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_market_snapshot |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, so the description's job is to add operational context. It discloses a non-obvious cost of 0.003 USDC per call and the x402/USDC settlement network, which is valuable beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence communicates the data scope and the cost constraint without any redundancy. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only snapshot with an output schema, the description covers the data scope and the only operational concern (cost). The output schema can handle structural return details, so nothing needed for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema fully covers that, so there is no parameter detail for the description to add. The zero-parameter baseline applies and is met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the aggregated resource (SOL+BTC prices, funding rates, Fear & Greed) and the verb is implicit in the tool name. It distinguishes this snapshot from single-metric siblings like get_btc_price, get_sol_price, get_funding_rate, and get_fear_greed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'In one call' conveys that this is the consolidated choice when multiple market signals are needed, and the cost note adds a decision-relevant tradeoff. It does not explicitly name alternatives or exclusion conditions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oi_spike_scanOpen interest spikesARead-onlyIdempotentInspect
Open interest spikes across every Bybit USDT perp: abnormal OI jumps against an earlier snapshot of the same universe, at least 30 minutes old and with its exact age returned as baseline_min_ago, plus funding and 24h price context. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N, 1-25, default 10 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_oi_spike_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_oi_spike_scan |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive traits. The description adds valuable behavioral context: a cost of 0.02 USDC per call (x402, USDC on Solana/Base) and that it returns baseline_min_ago (exact age of the snapshot) plus funding and 24h price context. This goes beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose and scope, then adds details on the baseline, context, and cost. It's efficient but slightly dense; splitting into two sentences would improve readability without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description provides sufficient context: the universe, spike definition, cost, and what the response includes (baseline age, funding, price context). No major gaps for a tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single 'limit' parameter, including a full description ('top N, 1-25, default 10'). The tool description doesn't add any parameter-specific meaning beyond the schema, so it stays at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scans for open interest spikes across all Bybit USDT perps, defining 'spikes' as abnormal OI jumps against an earlier snapshot. This distinguishes it from siblings like get_open_interest (raw OI levels) and get_funding_* (funding rates) by focusing on anomaly detection with additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when the agent needs a universe-wide scan for OI anomalies with baseline and context. The scope ('across every Bybit USDT perp') and emphasis on 'spikes' differentiate it from single-symbol or raw OI tools, though it doesn't explicitly name alternatives or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_interestOpen interestARead-onlyIdempotentInspect
Open interest for ANY USDT perp: Bybit OI in base units and in USD with 1h and 24h change, plus OKX open interest and the mark price. /api/positioning covers SOL and BTC only. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_open_interest payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_open_interest |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the bar is lower, yet the description adds high-value context: the call costs 0.01 USDC via x402 and payment is settled in USDC on Solana or Base. It also discloses the underlying data venues (Bybit, OKX) and the metric set. It stops short of describing rate limits or failure/payment-rejection behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with the payload/scope first, the sibling distinction second, and the cost last. No filler, and the most decision-relevant information (what you get, when to prefer it) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary, and the description still summarizes contents plus payment and scope, which is sufficient for correct invocation. Minor gaps: no mention of rate limits, symbol casing expectations, or what happens on payment failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single parameter, so the schema already documents 'symbol' with an example and the SOLUSDT default. The description's 'ANY USDT perp' phrasing broadens the symbol scope slightly, but adds no syntax, formatting, or casing guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Open interest for ANY USDT perp') and enumerates exactly what is returned: Bybit OI in base units and USD with 1h/24h change, OKX open interest, and mark price. It also carves out sibling get_positioning by noting it 'covers SOL and BTC only', so an agent can discriminate without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear routing rule against one sibling (get_positioning is SOL/BTC only, so this tool is for any USDT perp) and flags the paid nature of the call. It does not address other plausible alternatives such as get_oi_spike_scan or get_market_snapshot, so coverage is good but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbook_imbalanceOrderbook imbalanceARead-onlyIdempotentInspect
Orderbook imbalance for any USDT perp: resting bid and ask liquidity in USD within ±N bps of mid, the ratio between the two sides, and a skew read. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| bps | No | window ±bps around mid, 5-500, default 50 | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_orderbook_imbalance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_imbalance |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new behavioral context the annotations cannot express: a per-call cost of 0.01 USDC settled via x402 on Solana or Base, which tells the agent this is a paid call and what payment rail it uses. It stops short of describing rate limits or latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: the metric definition leads, the pricing disclosure follows. Every clause carries information and nothing is padded, though the first sentence is dense enough that a reader may need a second pass.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value shape need not be explained, and both optional parameters are fully covered by the schema with defaults. The description supplies the metric definition and the payment cost, which are the two things structured fields cannot convey; only the relative-positioning guidance versus sibling tools is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both bps (window ±bps around mid, 5-500, default 50) and symbol (USDT perp, default SOLUSDT) are fully documented in the schema. The description's '±N bps of mid' restates the schema rather than adding format or boundary guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (orderbook imbalance) and scopes it precisely to USDT perps, then defines the metric itself: resting bid/ask liquidity in USD within ±N bps of mid plus the ratio and a skew read. This is clearly distinguishable from the neighboring get_orderbook_walls, which surfaces resting wall sizes rather than the imbalance ratio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the metric is useful (gauging two-sided liquidity pressure within a mid window) but never states when to prefer it over get_orderbook_walls, get_spread_arb, or get_long_short. No prerequisites or exclusions are given; usage must be inferred from the metric definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbook_wallsOrderbook wallsARead-onlyIdempotentInspect
Orderbook walls for any USDT perp: the largest resting orders on each side of the book, with USD size and distance from mid. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | walls per side, 1-15, default 5 | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_orderbook_walls payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_walls |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds important non-annotation behavior by stating the 0.01 USDC per-call cost and the x402 payment options on Solana or Base, though it omits rate limits, error handling, and pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's data content and followed by a compact cost note. There is no filler or repetition, and every sentence contributes to selecting or invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read-only paid query with a fully documented schema and an output schema, so the description need not explain return fields. It covers what is returned and the payment requirement, but it stops short of usage routing against the sibling orderbook-imbalance tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters, top and symbol, are fully documented in the schema. The description adds only general scope, 'any USDT perp,' and does not provide format, defaults, or constraints beyond what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource, orderbook walls for USDT perps, and defines them as the largest resting orders per side with USD size and distance from mid. That is more than a restatement of the name, but it does not explicitly differentiate this tool from the sibling get_orderbook_imbalance, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no named alternatives, and no exclusions. The only conditional information is the per-call price and payment chain, which is cost disclosure rather than usage guidance, leaving the agent to infer whether this or get_orderbook_imbalance is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peg_deviationTokenized stock pegARead-onlyIdempotentInspect
Tokenized stock peg deviation on Solana: the on-chain DEX price of a tokenized US equity versus the underlying's last real trade, in bps, with 24h stats split into market-open and off-hours. Sampled every 5 minutes by our own collector. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | lookback 1-168, default 24 | |
| symbol | Yes | Tokenized equity symbol e.g. CRCLx, MSTRx, COINx |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_peg_deviation payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_deviation |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral details beyond annotations, including the 0.02 USDC per call cost, the x402 payment mechanism, and the 5-minute sampling cadence. These are important operational traits an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the core definition, then add sampling and cost details. Every sentence contributes useful information with little or no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the metric, chain, asset class, statistical breakdown, sampling frequency, and cost. Given that an output schema exists and annotations describe safety, this is complete enough for an agent to select and invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents symbol and hours fully. The description adds useful context about the metric and output stats, but it does not substantially clarify individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (tokenized stock peg deviation on Solana) and the metric (DEX price vs underlying last trade in bps). It is specific enough to understand what the tool returns, though it does not explicitly differentiate itself from sibling tools like get_peg_sessions or get_peg_universe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context about when this tool could be relevant: measuring the peg deviation of tokenized US equities on Solana. However, it does not state when to prefer it over alternatives, mention exclusions, or provide selection criteria relative to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peg_sessionsPeg by sessionARead-onlyIdempotentInspect
Tokenized stock peg by trading session: deviation broken out across open, premarket, afterhours, overnight and weekend — mean, p95, max bps and median liquidity each, with the worst off-hours window flagged. Market-open acts as the control. Costs 0.03 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | lookback 1-30, default 7 | |
| symbol | Yes | Tokenized equity symbol e.g. CRCLx, MSTRx, COINx |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_peg_sessions payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_sessions |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, openWorld, idempotent, non-destructive), so no caveats are needed there. The description adds important supplementary behavior: a 0.03 USDC per-call cost paid via x402 on Solana or Base, and the flagging of the worst off-hours window. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core session breakdown appears first, followed by the control definition and pricing in a few short sentences. Every sentence adds distinct value with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, fully covered schema descriptions, and an output schema present, the description supplies the remaining essential context: session categories, metric types, the market-open control, and paid-call behavior. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: symbol and days are already documented with format, range, and default. The tool description adds no extra parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing tokenized-equity peg deviation statistics broken out by trading session (open, premarket, afterhours, overnight, weekend), with specific metrics enumerated. This distinguishes it from sibling tools like get_peg_deviation and get_peg_universe, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use this tool: when session-level peg deviation, off-hours comparison, and the worst off-hours window are needed, with market-open as the control. It does not explicitly name alternatives or state when not to use it, so it falls short of a 5 but is well beyond no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peg_universeTokenized stock rankingsARead-onlyIdempotentInspect
Tokenized stocks ranked by off-hours peg risk: every tokenized US equity we track, with p95 and max deviation bps, market-open deviation as the control, and median liquidity. Dead pools are excluded rather than reported as perfect pegs. Costs 0.05 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | lookback 1-30, default 7 | |
| min_liquidity_usd | No | filter out thinner pools |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_peg_universe payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_universe |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive. The description adds meaningful context by disclosing the per-call cost (0.05 USDC via x402) and the important exclusion rule that dead pools are not reported as perfect pegs. These are behavioral details beyond what the annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the core ranking and metric set is front-loaded, the dead-pool exclusion is a critical caveat, and the payment requirement is included. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only universe listing with zero required parameters, an output schema, and complete annotations, the description covers what the tool returns, how it is priced, and an edge-case behavior. Nothing essential for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (days, min_liquidity_usd) already documented in the input schema. The description adds context around liquidity and lookback, but it does not need to compensate for any schema gap. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what the tool does: it returns every tracked tokenized US equity ranked by off-hours peg risk, with specific metrics (p95/max deviation bps, market-open control, median liquidity). This is a specific resource and operation, clearly distinct in scope from single-asset sibling tools like get_peg_deviation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the title and first sentence: use this when you want a broad universe-level ranking of tokenized stocks by off-hours peg risk. However, there is no explicit guidance about when not to use it or which sibling alternative to prefer, such as get_peg_deviation for a specific asset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_perpPerp snapshotARead-onlyIdempotentInspect
Use when an agent needs one perp market in a single call. Returns cross-venue funding (Bybit, OKX, Hyperliquid), open interest with 1h/24h change, long/short ratio, and 24h liquidations with long/short split and biggest print from our own tape. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_perp payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_perp |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds valuable non-obvious behavioral context: the per-call fee of 0.001 USDC paid via x402, the cross-venue data sources, and the use of proprietary tape data for liquidations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: when to use, what data is returned, and the cost/fee mechanism. The most important usage guidance is front-loaded, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single optional parameter and the presence of an output schema, the description is complete. It names the key data fields, cost, venues, and data provenance, so an agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as the symbol parameter is fully documented with examples and default value. The tool description itself adds no extra parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving one perp market in a single call, and enumerates the specific data returned (funding, open interest, long/short ratio, liquidations). This distinguishes it from narrow siblings like get_funding_cross or get_open_interest, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase 'Use when an agent needs one perp market in a single call' gives a clear usage context. It does not explicitly mention when not to use it or name alternative tools, but the context is specific enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positioningSOL and BTC positioningARead-onlyIdempotentInspect
SOL+BTC positioning: long/short account ratio (retail crowding) + open interest with 1h/24h change (Bybit). Costs 0.004 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_positioning payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_positioning |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond this: the exact data mix, the 1h/24h change windows, the Bybit venue, and a transparent cost of 0.004 USDC per call via x402 on Solana or Base. This is useful operational information an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no filler. The core data and venue are front-loaded, and the cost/payment detail is added as a final, clearly separable clause. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, this description is complete. It names the assets, metrics, timeframes, venue, and cost. Since the output schema exists, the description does not need to explain return values, and no additional selection criteria or prerequisites are required to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics for the description to clarify. The baseline of 4 applies because no parameter documentation burden exists; the description instead focuses on what data is returned and at what cost.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is specific about what the tool returns: SOL and BTC long/short account ratio and open interest with 1h/24h changes on Bybit. It does not use an explicit verb like 'retrieves' or 'returns', but the resource, venue, and metrics are unambiguous. It is distinguishable from siblings like get_open_interest and get_long_short mostly by its combined scope, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. Sibling tools such as get_long_short, get_open_interest, get_oi_spike_scan, and get_funding_rate cover overlapping concepts, and the description does not state when positioning is preferable or how it differs. Usage is only implied by the tool name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priority_feesSolana priority feesARead-onlyIdempotentInspect
Solana priority fees right now: the fee estimate at every level from min to unsafeMax in micro-lamports per compute unit, with a recommended tip. For bots that need their transactions to land. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_priority_fees payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_priority_fees |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds valuable context beyond annotations: the real-time nature ('right now'), the specific fee levels returned, and the cost of 0.005 USDC per call via x402. This is meaningful behavioral and operational transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the core output, the intended use case, and the cost. The most important information is front-loaded, and there is no fluff or repetition of schema/annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema and rich annotations, the description is complete. It tells the agent what the tool returns, why to use it, and what it costs. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%, so the baseline is 4. The description adds no parameter-specific semantics because none are needed; it correctly focuses on the output and usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Solana priority fees) and what the tool provides: a fee estimate at every level from min to unsafeMax in micro-lamports per compute unit, plus a recommended tip. It does not explicitly differentiate from the sibling get_jito_tips, which likely covers a related but distinct concept, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For bots that need their transactions to land' gives a clear use case and implies this is for transaction inclusion. It does not explicitly state when not to use it or name alternatives, but the context is sufficient for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_liquidationsRecent liquidationsARead-onlyIdempotentInspect
Recent perp liquidations across Bybit (complete unthrottled tape), OKX and Binance: timestamp, long/short, size, price, USD value. Any USDT perp we record, not just majors. Costs 0.003 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max rows, 1-100, default 25 | |
| scope | No | core = the 5 majors (default), all = every recorded USDT perp | |
| symbol | No | SOL, BTC, ETH, XRP, DOGE, or any USDT perp e.g. SXTUSDT (omit for majors) | |
| min_usd | No | only prints >= this USD size |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_recent_liquidations payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_recent_liquidations |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds important behavioral context beyond annotations: the call costs 0.003 USDC via x402 on Solana or Base, and the data is described as a 'complete unthrottled tape' covering all recorded USDT perps. This is genuinely useful operational information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: data sources and output fields, full perp coverage, and cost/payment rail. No filler or redundancy; the most important distinguishing detail—complete unthrottled tape across venues—is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering the safety profile, and all parameters documented in the input schema, the description is complete enough. It adds the critical missing operational detail (cost and payment method) and clearly states the tool's scope relative to the broader tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all four parameters with 100% coverage, so the description does not need to add much. It reinforces the 'not just majors' concept that maps to the scope and symbol parameters, but it does not add meaningful detail beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource—recent perp liquidations across Bybit, OKX, and Binance—and specifies the exact fields returned. It also differentiates itself from sibling liquidation tools by emphasizing the 'complete unthrottled tape' and coverage of 'any USDT perp, not just majors.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: when the user needs a full, unthrottled recent liquidation tape across multiple venues, including non-major perps. It does not explicitly name alternatives or state when not to use it, but the scope is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sol_networkSolana network healthARead-onlyIdempotentInspect
Solana network health: recent average TPS, the current slot, the current epoch and epoch progress in %. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_sol_network payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_network |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive operation. The description adds meaningful behavioral context beyond that: each call costs 0.005 USDC and requires x402 payment using USDC on Solana or Base. This is useful cost and payment-rail information not captured by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences. The first defines the returned data and the second discloses the cost and payment rail, so every sentence adds value without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only health endpoint, the description is complete. It names the returned metrics, states the cost/payment expectation, and the annotations and output schema cover safety and return formatting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so no parameter semantics are needed. The baseline for a parameterless tool applies, and the description appropriately does not invent unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Solana network health) and enumerates the exact data an agent will receive: average TPS, current slot, current epoch, and epoch progress. This clearly distinguishes it from the many pricing, liquidation, and balance siblings in the tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose 'Solana network health' implies when to use it, and the cost note gives a practical consideration, but there is no explicit guidance about when to prefer this tool over alternatives or when not to use it. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sol_priceSOL spot priceARead-onlyIdempotentInspect
Live SOL/USD spot price (multi-source: Coinbase, Kraken, Pyth Hermes fallback). The confidence and publish_time fields are null unless Pyth Hermes served the request; Coinbase and Kraken publish neither. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_sol_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_price |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses the multi-source fallback chain, when confidence/publish_time will be null, and the per-call cost of 0.001 USDC. This is rich behavioral context that materially informs invocation decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with no filler. The key purpose is front-loaded, and every clause adds either source behavior, field semantics, or cost information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only price feed with an output schema present, the description covers the essential operational details: sources, fallback, nullable fields, and cost. Nothing critical is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4; there is no parameter surface for the description to clarify. The description still adds useful context about pricing and source behavior, though no parameter-specific semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('get'), resource ('SOL/USD spot price'), and scope ('multi-source: Coinbase, Kraken, Pyth Hermes fallback'). It distinguishes itself from sibling price tools like get_btc_price and get_eth_price by asset, and from generic get_spot/pricing tools by naming the exact instrument.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is the tool for a live SOL/USD spot price, with source and fallback behavior and a cost. It does not explicitly name alternatives or exclusions, so it stops short of a 5, but an agent can infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spotSpot priceARead-onlyIdempotentInspect
Use when an agent needs a spot price without choosing a venue. Returns the price, the venue that actually served it, and a Pyth confidence when Pyth served. Coinbase, then Kraken, then Pyth Hermes. Serves SOL, BTC and ETH; anything else is declined. Costs 0.001 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | SOL, BTC or ETH (default SOL). Anything else is declined with the supported list |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_spot payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_spot |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true and idempotentHint=true annotations, the description reveals the fallback order (Coinbase, Kraken, Pyth Hermes), the fact that the serving venue is returned, that Pyth confidence is provided when applicable, and the cost (0.001 USDC per call). No contradiction exists; the description enriches the agent's understanding of side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero fluff. The primary use case is front-loaded, followed by return details, fallback mechanism, supported assets, and cost—all in a logical, compact flow. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter with full schema coverage, the presence of an output schema, and annotations covering safety, the description is complete. It tells the agent when to use it, what it returns, the cost, and edge cases (declined for unsupported symbols). No additional information is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for 'symbol' already covers the accepted values (SOL, BTC, ETH) and the default. Since schema coverage is 100%, the description adds no additional parameter-level detail. The baseline for full coverage is 3; there is no extra value to push it higher.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('returns a spot price'), a clear resource (spot price), and explicitly notes it avoids venue selection. It names the assets served (SOL, BTC, ETH) and contrasts with alternatives (get_sol_price, get_btc_price) by emphasizing the 'without choosing a venue' scope. This clearly distinguishes it from its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase 'Use when an agent needs a spot price without choosing a venue' provides clear guidance on when to invoke this tool. It implicitly suggests that when a specific venue is preferred, other tools should be used, but it does not explicitly name alternative tools. The cost disclosure and supported-asset list add useful context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spread_arbCross exchange spreadARead-onlyIdempotentInspect
Cross-exchange spread and arbitrage edge for any USDT perp: the best bid and ask on Bybit, OKX and Hyperliquid, with the best cross-venue edge in bps, pre-fee. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_spread_arb payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_spread_arb |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower; the description goes beyond them by disclosing a concrete payment requirement: 0.02 USDC per call via x402 on Solana or Base. It does not mention rate limits or latency, but the paid-call detail is meaningful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with what the tool returns (best bid/ask per venue plus edge in bps) and ending with the cost. Efficient and well-ordered, with only slight run-on density in the venue list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers scope, venues, metric, and payment. Handling of the default symbol and the fee/pre-fee caveat is adequate for a one-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional symbol parameter already documents its format and default, so the schema does the heavy lifting. The description adds only the constraint that the symbol is a USDT perp, which the schema already states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: cross-exchange spread and arbitrage edge for USDT perps, naming the three venues (Bybit, OKX, Hyperliquid) and the bps edge metric. It is clearly distinguishable from most siblings, though it does not explicitly contrast with near-neighbors like get_basis or get_funding_cross.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when the tool is useful (finding cross-venue arb edge) and discloses the per-call cost, but gives no explicit when-to-use/when-not or pointers to the adjacent spread/basis tools it overlaps with. The agent must infer the scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_squeeze_scoreSqueeze scoreARead-onlyIdempotentInspect
Short squeeze score and long flush score, 0-100, for any USDT perp. Composite of the funding rate, long/short crowding, 24h open-interest build, and liquidation skew from our own tape. One number for whether a trade is crowded and about to hurt someone. Costs 0.1 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_squeeze_score payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_squeeze_score |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, yet the description adds meaningful non-obvious context: a paid x402 call at 0.1 USDC on Solana or Base. That cost/auth detail is exactly the kind of behavior annotations cannot convey. It stops short of noting rate limits or what happens on unsupported symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what the score is, what it composites, and what it costs. No redundancy, and the core definition is front-loaded before the pricing note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained. The description supplies the score range, the composite inputs, the use-case framing, and the payment terms, leaving no material gap for invoking correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole optional symbol parameter is documented in the schema with an example and default. The description adds only 'any USDT perp' as scope, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (short squeeze score / long flush score, 0-100) and scope (any USDT perp), and names the exact inputs feeding the composite. An agent can distinguish it from single-metric siblings like get_funding_rate or get_long_short because it declares itself a composite derived from those signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'One number for whether a trade is crowded and about to hurt someone' implies the decision context, but there is no explicit when-to-use vs when-not, and no routing to or away from siblings such as get_positioning despite overlapping signal. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stablecoin_flowsStablecoin flowsARead-onlyIdempotentInspect
Stablecoin supply and flows: total stablecoin market cap with 7d and 30d deltas and the top stables by size — the macro risk-on / risk-off dial for crypto. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_stablecoin_flows payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_stablecoin_flows |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses important non-obvious behavior: the call costs 0.01 USDC and is paid via x402 on Solana or Base. It also explains the analytical significance of the data, giving the agent a clear model of what this call does beyond its safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the data content, timeframes, analytical purpose, and pricing with no filler. The core output is front-loaded, and the cost detail is appended as a separate practical note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read-only tool with an output schema and full annotation coverage, the description is complete. It states the metric, the deltas, the top-stables breakdown, and the payment requirement, leaving no essential decision information missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so there is nothing for the description to clarify. The baseline for a zero-parameter tool applies, and the description appropriately focuses on outputs and cost rather than inventing parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (stablecoin supply and flows) and the specific outputs: total stablecoin market cap, 7d and 30d deltas, and top stables by size. This distinguishes it from the many sibling market-data tools, none of which target stablecoin aggregates directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, framing it as 'the macro risk-on / risk-off dial for crypto.' It does not explicitly name alternatives or exclusion conditions, but with zero parameters and a unique focus among siblings, the intended use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_holdersTop token holdersARead-onlyIdempotentInspect
Top holders of any SPL token: per-account share with top-1, top-5 and top-10 concentration for a Solana mint. A deeper cut than the summary in /api/token-risk. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_token_holders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_holders |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds material non-obvious context: the cost of 0.02 USDC per call and the x402 payment mechanism on Solana or Base. It also clarifies the output granularity, going beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the resource, output details, comparison to a sibling tool, and pricing with zero filler. Key information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one fully documented parameter, an output schema present, and annotations covering safety, the main operational detail an agent needs is cost, which is included. The tool is also situated relative to get_token_risk, leaving no material gap for a calling agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single 'mint' parameter as an SPL token mint address in base58. The description repeats the Solana/SPL context but does not add new format, validation, or example details, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (SPL token mint), the operation (retrieve top holders), and the specific outputs (per-account share and top-1/5/10 concentration). It also distinguishes the tool from get_token_risk, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'A deeper cut than the summary in /api/token-risk' gives an explicit comparative signal that this tool is the more granular option for holder concentration. It does not enumerate exhaustive when-not-to-use conditions or other sibling alternatives, but the context is clear enough for routing a concentration-focused request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_metadataSPL token metadataARead-onlyIdempotentInspect
SPL token metadata: name, symbol, decimals, supply, price (Helius DAS). Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_token_metadata payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_metadata |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable non-obvious context: the per-call cost of 0.005 USDC, the x402 payment mechanism, and the Helius DAS backend. This exceeds what the annotations alone provide without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences: the first front-loads what the tool returns, and the second states the cost and payment rails. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one fully documented required parameter, rich safety annotations, and an output schema, the description only needed to add non-obvious constraints like cost, which it does. An agent has everything it needs to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single `mint` parameter as an SPL token mint address in base58, so the description does not need to compensate. The description adds no new parameter-level meaning beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the exact resource (SPL token metadata) and lists the returned fields (name, symbol, decimals, supply, price), so an agent can tell what it provides. It is not phrased as a full verb sentence, but it is specific enough to distinguish it from siblings like get_token_holders or get_token_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when SPL token metadata is needed, and the cost disclosure is a relevant usage constraint. However, it does not explicitly say when to prefer this over related token tools or mention any alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_riskToken rug checkARead-onlyIdempotentInspect
SPL token rug-risk signals: mint/freeze authority status (revoked = safer), top-1/top-10 holder concentration, and risk flags. Not a honeypot/LP-lock checker. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_token_risk payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_risk |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the per-call cost, the x402 payment mechanism, and the accepted networks (Solana or Base). It also clarifies the scope of what the tool does and does not check, which helps set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler. The core purpose is front-loaded, the exclusion is stated clearly, and the cost/payment detail is placed last where it is easy to scan. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with a full output schema and rich annotations, the description is complete. It covers what the tool returns, what it does not cover, the cost, and the payment network. An agent has everything needed to decide whether to invoke it and what input to provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, mint, is already documented as an SPL token mint address in base58. The description reinforces that the tool operates on SPL tokens but adds no new parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an SPL token rug-risk checker and enumerates the specific signals it returns: mint/freeze authority status, top-1/top-10 holder concentration, and risk flags. It also explicitly distinguishes itself from honeypot/LP-lock checkers, making its purpose and scope unambiguous relative to siblings like get_token_holders and get_token_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you need rug-risk signals for an SPL token, and it explicitly says what it is not (a honeypot/LP-lock checker). It also surfaces the 0.01 USDC cost, which is important for deciding whether to call it. However, it does not name an alternative tool to use when honeypot/LP-lock checking is needed, stopping short of full when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_moversTop moversARead-onlyIdempotentInspect
Top gainers and losers over 24h across every Bybit USDT perp above a liquidity floor, each with its funding rate attached. The "what moved" screener. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N each side, 1-25, default 10 | |
| min_turnover_usd | No | liquidity floor, default 1M |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_top_movers payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_top_movers |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds valuable non-obvious behavior: the 0.01 USDC per-call fee, x402/USDC payment rails on Solana or Base, and the Bybit USDT perp scope with funding rates. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the result set, the screener label, and the cost/payment method. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema, 100% parameter schema coverage, and strong annotations, the description adds the missing contextual pieces: time window, universe, liquidity floor, funding rate attachment, and cost. Nothing needed to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description's 'liquidity floor' echoes min_turnover_usd and 'top gainers and losers' maps to limit, but it adds no parameter details beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool returns: top gainers and losers over 24h across Bybit USDT perps above a liquidity floor, with funding rates attached. The 'what moved' screener label makes its role distinct among the many market data siblings, even without naming an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case ('what moved' screener) and specifies the universe and cost model, so an agent knows when to reach for it. It does not explicitly enumerate when not to use it or name alternative screeners, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_contextTrade contextARead-onlyIdempotentInspect
Full market state in one call: SOL+BTC prices, funding, Fear & Greed, long/short positioning, open interest, and liquidation stats. The complete pre-trade picture. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_trade_context payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_trade_context |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the tool costs 0.01 USDC per call and specifies the payment rail (x402, USDC on Solana or Base), which is important for an agent deciding whether to invoke it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences. The first front-loads the core value proposition and contents; the second adds the cost and payment detail. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, annotations covering safety, and an output schema present, the description covers everything an agent needs: what data is included, the pre-trade use case, and the cost. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there is no parameter documentation burden. The baseline of 4 applies, and the description appropriately focuses on what the call returns rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returning a comprehensive market snapshot in a single call, and enumerates the included data types (SOL+BTC prices, funding, Fear & Greed, positioning, open interest, liquidations). This differentiates it from the many sibling tools that each cover only one of these data points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames this as 'the complete pre-trade picture' and emphasizes 'one call,' which implies using it when a broad market overview is needed rather than calling multiple individual data tools. It does not explicitly name alternatives or state when not to use it, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tvlProtocol TVLARead-onlyIdempotentInspect
TVL for any DeFi protocol with 1d and 7d change, or a top-15 chains ranking. DefiLlama-backed; a protocol family is aggregated across its deployments and the change is TVL-weighted. Costs 0.005 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | protocol slug/name e.g. jito, marinade — omit for top chains |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_tvl payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_tvl |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive. The description adds valuable context: data source (DefiLlama), aggregation method (protocol family across deployments, TVL-weighted change), and cost (0.005 USDC via x402 on Solana or Base). This goes beyond annotations and informs the agent of external dependencies and fees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core functionality, then adds data source and cost. It is concise and each sentence earns its place. Slightly verbose due to the cost details, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter tool with an output schema and comprehensive annotations, the description covers the essential functional aspects (purpose, source, aggregation, cost). It does not describe error handling or response format, but the output schema presumably covers the latter. It is adequately complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself explains the target parameter with examples and the omit behavior. The description adds only a minor clarification ('or a top-15 chains ranking') which is already implied by the schema's 'omit for top chains'. No significant added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieve TVL for a specific DeFi protocol with 1d and 7d changes, or a top-15 chains ranking. This is a specific verb+resource that distinguishes it from the many get_* siblings, none of which are TVL-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (for TVL queries) and explicitly mentions the alternative of omitting the target for chains ranking. However, it does not name specific sibling tools or provide explicit exclusions. The context is clear enough for an agent to select it over other get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volatilityRealized volatilityARead-onlyIdempotentInspect
Realized volatility for any USDT perp: 7-day and 30-day annualized from daily closes, plus today's range in %. A position-sizing input. Costs 0.01 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_volatility payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_volatility |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/idempotent/open-world safety, and the description adds material behavior the annotations cannot: a per-call x402 charge of 0.01 USDC payable on Solana or Base. That payment requirement is exactly the kind of context an agent needs before calling, though rate limits or failure modes are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: data scope first, use case and cost after. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and an output schema present, the description supplies the remaining essentials (data content and cost). It stops short of noting pagination/error behavior, but that is not critical for a single-symbol read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, fully described in the schema (including the SOLUSDT default), so the schema carries the load. The description adds nothing specific about symbol semantics, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise resource (realized volatility for USDT perps) and enumerates the exact outputs: 7d/30d annualized from daily closes plus today's range in %. This clearly separates it from sibling tools like get_funding_rate, get_basis, or get_top_movers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"A position-sizing input" implies the intended use case, which is more than nothing, but no alternatives are named and there is no when-not guidance (e.g., use get_forecast_question or get_basis for forward-looking/term-structure questions instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_activitySolana wallet activityARead-onlyIdempotentInspect
Solana wallet activity: recent transactions for any address, parsed human-readable — type, protocol, description, fee and failures. Helius enhanced transactions. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | tx count, 1-25, default 10 | |
| wallet | Yes | Solana wallet address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_wallet_activity payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_activity |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover read-only/idempotent/non-destructive behavior. The description adds genuinely useful context beyond those annotations: a hard per-call cost (0.02 USDC via x402), the source (Helius enhanced transactions), and that output is parsed human-readable including fees and failures. This materially informs an agent whether to call the tool and what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core purpose front-loaded followed by the billing detail; no filler or redundant schema restatement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete schema, output schema, and annotations, the description fills the remaining gaps: cost, payment rail, and data source. 'Recent' is not precisely time-bounded, but the output schema and limit parameter make this acceptable for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: wallet and limit are already described with address format, range, and default. The description adds no new parameter semantics beyond 'any address', so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('wallet activity') and the specific verb/scope: 'recent transactions for any address', parsed into human-readable fields (type, protocol, description, fee, failures). It is distinct from sibling tools like get_wallet_holdings because it targets transaction history rather than asset balances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that the tool is for any Solana address's recent transaction history, so an agent can infer when to use it. However, it does not explicitly state when not to use it or name a sibling alternative (e.g., get_wallet_holdings for balances), leaving the routing decision mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_holdingsSolana wallet holdingsARead-onlyIdempotentInspect
Solana wallet holdings: native SOL, SPL tokens with USD values, NFT count (Helius DAS). Costs 0.008 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana wallet address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_wallet_holdings payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_holdings |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds critical behavioral context: a per-call cost of 0.008 USDC via x402 (USDC on Solana or Base) and reliance on Helius DAS. This goes beyond annotations and prepares the agent for cost and external dependency, though rate limits or failure modes are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the core functionality and immediately follows with cost and data source. No filler or redundant phrasing—every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one simple parameter, an output schema present, and annotations covering safety, the description adds the final missing pieces: cost, payment method, and data provider. An agent has everything needed to decide whether and how to call this tool, and knows what to expect in return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the wallet parameter as 'Solana wallet address (base58)' with 100% coverage. The tool description does not add any further meaning or formatting hints about the parameter, so it meets the baseline for high schema coverage without enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (Solana wallet) and the specific data returned: native SOL, SPL tokens with USD values, and NFT count via Helius DAS. It is distinct from the many sibling tools by its precise scope, and the data source is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use evident (querying wallet holdings) but does not explicitly contrast with alternative tools such as get_wallet_activity or get_token_holdings. It lacks explicit when-to-use or when-not-to-use guidance, though the domain is clear enough to infer basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whale_tradesWhale tradesARead-onlyIdempotentInspect
Whale trades for any USDT perp: prints from the live trade tape above a USD threshold, with buy and sell totals, net flow and the dominant side. Costs 0.02 USDC per call (x402, USDC on Solana or Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max trades returned, 1-50, default 20 | |
| symbol | No | USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT) | |
| min_usd | No | min print USD, default 100k |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | the get_whale_trades payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_whale_trades |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds genuinely useful behavior beyond them: a per-call cost of 0.02 USDC via x402 payable in USDC on Solana or Base, which materially affects invocation decisions. It stops short of rate limits or payment-failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the most decision-relevant facts — what it returns and what it costs — are front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerated, yet the description still summarizes the shape (buy/sell totals, net flow, dominant side). Combined with scope, threshold semantics and cost disclosure, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (limit, symbol, min_usd) are already documented with ranges and defaults. The description's 'above a USD threshold' and 'any USDT perp' loosely echo min_usd and symbol but add no syntax or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('whale trades for any USDT perp') and defines scope precisely: prints from the live trade tape above a USD threshold. This distinguishes it in spirit from siblings like get_trade_context or get_recent_liquidations, but it never names an alternative, so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — reach for this when you want large-size prints on a USDT perp — and the description notes the perp scope, but it gives no when-to-use versus when-not guidance and names no competing sibling. An agent must infer the boundary from the phrase 'whale trades' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricingPrice listARead-onlyIdempotentInspect
Use when an agent needs the price list before calling anything. Returns every agentfeed tool with its USDC price and description. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | tools: the full price list |
| tool | Yes | the tool that produced this payload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds valuable context beyond annotations: the result is free, covers all agentfeed tools, and includes USDC prices plus descriptions. This gives the agent a clear expectation of what the tool returns without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The usage directive is front-loaded, followed by a precise statement of the return content and cost. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with a rich output schema and all safety annotations present, the description fully covers what the agent needs. It specifies when to call it, what it returns, and that it is free. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema is trivially complete. Per the baseline for no-parameter tools, a score of 4 is appropriate; the description correctly omits parameter details because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns every agentfeed tool with its USDC price and description.' It clearly identifies this as a meta-tool for retrieving tool pricing rather than a market data tool, distinguishing it from the many get_* siblings. The phrase 'before calling anything' further reinforces its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit timing guidance: 'Use when an agent needs the price list before calling anything.' This tells the agent exactly when to invoke this tool and establishes it as a prerequisite for cost-aware tool selection. No alternatives are relevant since this is the only pricing-list tool among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_funding_rate2 fields changed- added
Input schema / properties / symbolAdded value: +{ + "description": "USDT perp symbol e.g. ETHUSDT, ONDOUSDT (omit for SOL and BTC from Hyperliquid)", + "type": "string" +} - changed
Output schema / properties / data / descriptionPrevious value: -"the get_funding_rate payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate"New value: +"the get_funding_rate payload (without symbol: {sol, btc} from Hyperliquid; with symbol: {symbol, venues: {bybit, okx, hyperliquid}}); a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate"
12 tool updates
- Changed
get_basis2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_funding_cross2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_funding_history2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_liq_heatmap2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_long_short2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_open_interest2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_orderbook_imbalance2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_orderbook_walls2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_spread_arb2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_squeeze_score2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_volatility2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
- Changed
get_whale_trades2 fields changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)" - removed
Input schema / requiredRemoved value: -[ - "symbol" -]
59 tool updates
- Changed
get_base_balance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_base_balance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_balance", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_base_balance", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_base_gas1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_base_gas payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_gas", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_base_gas", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_basis1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_basis payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_basis", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_basis", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_btc_price1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_btc_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_btc_price", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_btc_price", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_cascade_alert1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_cascade_alert payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_alert", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_cascade_alert", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_cascade_forecast1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_cascade_forecast payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_forecast", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_cascade_forecast", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_cascade_forecast_free1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_cascade_forecast_free payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_cascade_forecast_free", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_cascade_history2 fields changed- added
Input schema / properties / scope / descriptionAdded value: +"symbol = just this symbol (default), all = every recorded USDT perp" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_cascade_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_history", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_cascade_history", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_cascade_scan1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_cascade_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_scan", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_cascade_scan", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_dex_quote1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_dex_quote payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_dex_quote", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_dex_quote", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_eth_price1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_eth_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_eth_price", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_eth_price", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_exit_method1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_exit_method payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_exit_method", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_exit_quote1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_exit_quote payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_exit_quote", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_exit_quote", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_fear_greed1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_fear_greed payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_fear_greed", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_forecast_question1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_forecast_question payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_forecast_question", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_forecast_record1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_forecast_record payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_forecast_record", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_funding_cross1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_funding_cross payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_cross", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_funding_cross", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_funding_extremes1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_funding_extremes payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_extremes", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_funding_extremes", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_funding_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_funding_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_history", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_funding_history", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Added
get_funding_pulse - Changed
get_funding_rate1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_funding_rate payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_funding_rate", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_jito_tips1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_jito_tips payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_jito_tips", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_jito_tips", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_last_liquidation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_last_liquidation payload", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_last_liquidation", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_liq_heatmap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_liq_heatmap payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_heatmap", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_liq_heatmap", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_liq_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_liq_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_history", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_liq_history", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Added
get_liq_pulse - Changed
get_liquidation_leaders1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_liquidation_leaders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_leaders", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_liquidation_leaders", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_liquidation_stats1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_liquidation_stats payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_stats", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_liquidation_stats", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_long_short1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_long_short payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_long_short", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_long_short", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_market_snapshot1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_market_snapshot payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_market_snapshot", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_market_snapshot", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_oi_spike_scan1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_oi_spike_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_oi_spike_scan", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_oi_spike_scan", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_open_interest1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_open_interest payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_open_interest", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_open_interest", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_orderbook_imbalance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_orderbook_imbalance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_imbalance", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_orderbook_imbalance", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_orderbook_walls1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_orderbook_walls payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_walls", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_orderbook_walls", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_peg_deviation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_peg_deviation payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_deviation", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_peg_deviation", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_peg_sessions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_peg_sessions payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_sessions", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_peg_sessions", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_peg_universe1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_peg_universe payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_universe", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_peg_universe", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Added
get_perp - Changed
get_positioning1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_positioning payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_positioning", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_positioning", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_priority_fees1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_priority_fees payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_priority_fees", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_priority_fees", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_recent_liquidations1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_recent_liquidations payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_recent_liquidations", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_recent_liquidations", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_sol_network1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_sol_network payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_network", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_sol_network", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_sol_price1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_sol_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_price", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_sol_price", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Added
get_spot - Changed
get_spread_arb1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_spread_arb payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_spread_arb", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_spread_arb", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_squeeze_score1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_squeeze_score payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_squeeze_score", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_squeeze_score", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_stablecoin_flows1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_stablecoin_flows payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_stablecoin_flows", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_stablecoin_flows", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_token_holders1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_token_holders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_holders", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_token_holders", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_token_metadata1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_token_metadata payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_metadata", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_token_metadata", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_token_risk1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_token_risk payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_risk", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_token_risk", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_top_movers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_top_movers payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_top_movers", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_top_movers", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_trade_context1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_trade_context payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_trade_context", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_trade_context", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_tvl1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_tvl payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_tvl", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_tvl", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_venue_liq_share1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_venue_liq_share payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_venue_liq_share", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_venue_liq_share", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_volatility1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_volatility payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_volatility", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_volatility", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_wallet_activity1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_wallet_activity payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_activity", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_wallet_activity", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_wallet_holdings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_wallet_holdings payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_holdings", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_wallet_holdings", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
get_whale_trades1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "the get_whale_trades payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_whale_trades", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "get_whale_trades", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
- Changed
pricing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "tools: the full price list", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool": { + "const": "pricing", + "description": "the tool that produced this payload", + "type": "string" + } + }, + "required": [ + "tool", + "data" + ], + "type": "object" +}
3 tool updates
- Added
get_base_balance - Added
get_base_gas - Added
get_eth_price
52 tool updates
- First observed
get_basis - First observed
get_btc_price - First observed
get_cascade_alert - First observed
get_cascade_forecast - First observed
get_cascade_forecast_free - First observed
get_cascade_history - First observed
get_cascade_scan - First observed
get_dex_quote - First observed
get_exit_method - First observed
get_exit_quote - First observed
get_fear_greed - First observed
get_forecast_question - First observed
get_forecast_record - First observed
get_funding_cross - First observed
get_funding_extremes - First observed
get_funding_history - First observed
get_funding_rate - First observed
get_jito_tips - First observed
get_last_liquidation - First observed
get_liq_heatmap - First observed
get_liq_history - First observed
get_liquidation_leaders - First observed
get_liquidation_stats - First observed
get_long_short - First observed
get_market_snapshot - First observed
get_oi_spike_scan - First observed
get_open_interest - First observed
get_orderbook_imbalance - First observed
get_orderbook_walls - First observed
get_peg_deviation - First observed
get_peg_sessions - First observed
get_peg_universe - First observed
get_positioning - First observed
get_priority_fees - First observed
get_recent_liquidations - First observed
get_sol_network - First observed
get_sol_price - First observed
get_spread_arb - First observed
get_squeeze_score - First observed
get_stablecoin_flows - First observed
get_token_holders - First observed
get_token_metadata - First observed
get_token_risk - First observed
get_top_movers - First observed
get_trade_context - First observed
get_tvl - First observed
get_venue_liq_share - First observed
get_volatility - First observed
get_wallet_activity - First observed
get_wallet_holdings - First observed
get_whale_trades - First observed
pricing
Related MCP Connectors
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Paid market-data MCP: crypto, equities, smart-money, macro, wallet PnL. x402 per call on Base.
Pay-per-call Solana token risk intelligence: 8 tools via x402. From $0.005 USDC, no API key.
Pay-per-call MCP tools over x402 (USDC/Solana): LLM, utilities, x402 market and model prices.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides pay-per-call Hyperliquid whale, funding, open-interest, and liquidation intelligence via x402 payments (USDC on Base, Solana, or Algorand), with free preview routes and no account or API key required.13 npmMIT
- AlicenseAqualityCmaintenancePaid access to Solana DeFi risk intelligence — rug/honeypot scans, liquidity-pool analysis, and wash-trade-filtered pool rankings. Automatically settles micropayments in USDC via x402.1054 npmMIT
- AlicenseAqualityAmaintenanceOn-chain Solana token safety for trading agents — traces coordinated wallet funding, same-block Jito bundles, serial-rug deployers and live coordinated dumps into one Exit-Liquidity Risk verdict before a swap. Free tier, then $0.02 USDC/query via x402.1184 npm1MIT
- AlicenseBqualityDmaintenanceCross-exchange crypto orderflow for AI agents. 20 exchanges, 26 tokens, 9 tools — CVD, whale activity, funding/OI, 7-year OHLCV, on-chain address risk (EVM + Solana). Pay-per-call USDC via x402, no API key.914 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.