Skip to main content
Glama

Server Details

Crypto data, Solana pre-trade checks, sanctions, papers, language tasks. 90 tools, USDC, 21 chains.

Ownership verified
Status
Healthy
Uptime
100.0% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
seekdaseek/agentfeed
GitHub Stars
0
Server Listing
io.github.seekdaseek/agentfeed

TDQS

A3.5/5.0

Scored across 90 tools

Disambiguation2/5

The set contains several large overlapping clusters where boundaries are genuinely hard to draw: ~13 liquidation tools (get_liquidation_leaders, get_liq_pulse, get_cascade_scan, get_liquidation_stats, get_recent_liquidations, get_venue_liq_share) and ~6 funding tools (get_funding_extremes, get_funding_pulse, get_funding_radar, get_funding_rate). Similarly, get_market_snapshot, get_market_state, get_trade_context, get_perp and get_signal_board all return composite market pictures, and get_btc_price/get_eth_price/get_sol_price/get_spot overlap heavily. Descriptions help somewhat, but an agent can easily pick the wrong near-duplicate.

Naming Consistency4/5

Nearly all 90 tools follow a uniform snake_case 'get_<noun>' pattern, which is highly predictable. The only notable deviation is the single 'pricing' tool with no verb prefix, and a handful of get_<verb> names (get_convert, get_hash, get_translate) rather than get_<noun>.

Tool Count1/5

90 tools is an extreme mismatch for a single MCP server, far above the 3-15 range considered well-scoped. Even though the domain is deliberately broad, a surface this large imposes a severe selection burden and forces agents to sift through dozens of near-duplicate endpoints (free 'taster' variants, method explainers, record tools) before finding the right one.

Completeness3/5

The surface is broad across crypto market data, on-chain queries, SEC filings, and generic text/web utilities, with notably thorough free verification/record endpoints. However, the domain is an unattached grab-bag, so coverage is uneven and there are clear gaps (e.g. no portfolio/PnL, no order or write operations, sparse coverage outside Solana/Base/Hyperliquid), making overall completeness hard to judge and only moderate.

Available Tools

90 tools
get_base_balanceBase wallet balanceA
Read-onlyIdempotent
Inspect

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.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase (default) or ethereum
tokenNoERC20 contract address, or a known ticker: USDC, WETH, DAI, CBBTC, USDBC, CBETH, AERO, EURC. Omit for the native ETH balance
addressYes0x address (40 hex) or an ENS name ending .eth

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_base_balance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_balance
toolYesthe tool that produced this payload

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent/non-destructive annotations by disclosing that decimals()/symbol() are read live from the contract, that ENS is resolved via two independent resolvers with agreement required, that unsupported chains are rejected rather than mis-answered, and that each call costs 0.005 USDC. These are exactly the operational facts 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.

Conciseness4/5

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

Purpose and scope are front-loaded in the first sentence, followed by the highest-value behavioral caveats. Some sentences carry defensive/marketing flavor (the 'trillion times too large' example, resolver trust prose) that is longer than strictly necessary, but none are wasted entirely.

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

Completeness5/5

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

With an output schema present, the description need not explain return values; the safety profile is covered by annotations and the pricing, chain-support, and ENS-resolution behaviors are all stated. Nothing material is missing for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds genuine meaning: it explains the address/ENS contract for the required param and why token metadata is resolved at request time rather than assumed, which contextualizes the token parameter's behavior.

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

Purpose5/5

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

Opens with a specific verb+resource+scope: ERC20 and native ETH balance on Base or Ethereum mainnet for an address or ENS name. An agent can immediately tell this apart from pricing/gas/wallet-activity 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.

Usage Guidelines4/5

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

Gives clear usage context: chain must be base or ethereum, unsupported chains are refused, and cost is 0.005 USDC via x402. It does not name a sibling alternative (e.g. get_wallet_holdings) or state when NOT to use this tool, so it stops 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_base_gasBase gas priceA
Read-onlyIdempotent
Inspect

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.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_base_gas payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_gas
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses a per-call cost of 0.005 USDC with the x402 payment rails and accepted chains, and states the data comes from keyless public RPC with three-node fallback so no API key must be managed. This is exactly the auth/payment/reliability context annotations cannot express. No contradiction with readOnlyHint/idempotentHint.

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

Conciseness4/5

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

Purpose is front-loaded and the payment/source facts are compact and useful. The 'a caller asking in wei and a caller asking in gwei are asking the same question' sentence is mildly redundant justification that could be trimmed, but the whole is still tight.

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

Completeness5/5

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

An output schema exists, so return values needn't be described; the description still names the returned fields and notes they appear 'when the node supplies them.' Combined with annotations covering safety and the description covering cost and sourcing, nothing needed to call this correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly adds no parameter noise, and its unit discussion (gwei and wei both returned) usefully frames the no-argument call.

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

Purpose4/5

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

States a specific resource and scope: 'Base gas price (chain 8453)' plus the exact fields returned (base fee, priority fee, block number). An agent immediately knows what this retrieves. It stops short of 5 because it never distinguishes itself from overlapping siblings like get_priority_fees or get_base_balance, which an agent scanning a 90-tool list would need.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no alternative is named despite get_priority_fees and get_eth_price sitting adjacent and partially overlapping. The sentence about wei vs gwei explains output units, not tool selection. The agent must infer usage purely from the name.

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

get_base_launchesBase launchesA
Read-onlyIdempotent
Inspect

Use when an agent needs the newest token launches on Base. Returns pools created on Base in the last 24 hours on Uniswap V4, V3, V2 and Aerodrome, newest first, with launchpad, liquidity and volume. Each carries its pair, creation time, launchpad named from the V4 hook (Zora, Clanker, Doppler, Flaunch), quote-side liquidity, 24h volume and swaps, and our honeypot simulation for the busiest. Read from Base logs every minute; a snapshot older than 5 minutes answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNolaunches returned, newest first, 1-100, default 20
min_liq_usdNominimum quote-side liquidity (ETH, WETH or USDC held) in USD, default 1000; 0 lists every launch

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_base_launches payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_base_launches
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the polling cadence (Base logs every minute), the staleness failure mode (>5 min snapshot returns 503), the enrichment applied (honeypot simulation only for the busiest pools), and the per-call cost with payment method (0.02 USDC via x402 across listed chains). These are exactly the operational facts an agent needs before calling.

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

Conciseness4/5

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

Front-loads the trigger phrase and then packs the return shape, freshness contract, and pricing into dense but non-redundant sentences; every clause conveys something new. It is a single long paragraph, though, and could be easier to scan if the cost/freshness caveats were separated from the payload description.

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

Completeness5/5

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

Despite an output schema existing (so return fields need no explanation), the description still covers freshness guarantees, failure behavior, cost, and venue scope. For a read tool with full schema coverage, this is complete enough for an agent to call it correctly and interpret the result.

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

Parameters3/5

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

Schema description coverage is 100%, so both `limit` (1-100, default 20) and `min_liq_usd` (quote-side liquidity, default 1000, 0 = all) are already fully documented in the schema. The description adds only the "newest first" ordering, 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.

Purpose5/5

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

States a specific resource (newest token launches / pools created in the last 24 hours on Base) and enumerates the venues covered (Uniswap V4/V3/V2, Aerodrome), which cleanly separates it from siblings like get_honeypot_check or get_liq_feed. An agent can identify the tool's scope 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.

Usage Guidelines4/5

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

"Use when an agent needs the newest token launches on Base" gives a clear triggering context, and the 24-hour window tells the agent when the tool's data is applicable. It does not name alternatives or state when not to use it (e.g. vs. a generic top-movers or honeypot tool), so it stops short of full when/when-not guidance.

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

get_basisPerp basis vs oracleA
Read-onlyIdempotent
Inspect

Perp basis for any Hyperliquid perp: its mark price against Hyperliquid's oracle price (the validators' weighted median of spot venues), as a premium or discount in %, with a contango or backwardation read and the funding context. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_basis payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_basis
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds genuinely new behavioral context: a 0.01 USDC per-call cost and the x402 payment rails (Solana, Base, Polygon, Arbitrum, Arc). That payment/auth detail is valuable and not present in the schema or annotations.

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

Conciseness4/5

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

It is a single dense sentence that front-loads the core definition before the cost/payment tail. It is slightly long but every clause (metric definition, oracle methodology, output forms, price) earns its place.

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

Completeness4/5

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

With an output schema present, return-value detail is not strictly required, yet the description helpfully summarizes what is returned and discloses the cost mechanism. Combined with annotations covering safety, the definition is essentially complete 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.

Parameters3/5

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

There is a single optional parameter with 100% schema description coverage (symbol with example values and a default), so the schema already carries the semantics. The description adds nothing beyond confirming the scope is 'any Hyperliquid perp', making the baseline 3 correct.

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

Purpose5/5

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

The description names a specific metric (perp basis = mark price vs Hyperliquid oracle price), and defines the computation and its output form (premium/discount %, contango/backwardation, funding context). An agent can distinguish this clearly from siblings like get_funding_rate, get_perp, or get_spot.

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

Usage Guidelines3/5

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

It scopes the tool to 'any Hyperliquid perp' and discloses the per-call cost, which implies usage context, but gives no explicit when-to-use/when-not guidance versus adjacent siblings such as get_funding_rate or get_trade_context. Usage is only implied.

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 priceA
Read-onlyIdempotent
Inspect

Live BTC/USD spot price read on-chain: the median of three Uniswap V3 reads on Base and Ethereum (cbBTC/USDC, cbBTC and WBTC through WETH/USDC). confidence is null: a pool publishes none. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_btc_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_btc_price
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial context: the three-pool median methodology, the explicit explanation that confidence is null because no pool publishes it, the per-call cost of 0.001 USDC, and the accepted payment rails (x402 on Solana, Base, Polygon, Arbitrum, Arc). The pricing/auth disclosure is exactly the kind of behavior an agent needs and cannot get from 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.

Conciseness5/5

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

Three dense sentences, purpose front-loaded before methodology, cost, and payment details. Parentheticals carry load-bearing specifics (pool pairs, payment chains) rather than filler, and nothing is redundant with the schema or annotations.

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

Completeness5/5

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

With an output schema present, return format needn't be described, yet the description still proactively explains the null confidence field — a genuine output quirk. Methodology, cost, and data provenance are all covered, leaving no gap an agent must fill before calling.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly implies no inputs are needed, and there is nothing further to clarify about parameter semantics.

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

Purpose5/5

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

States a specific verb+resource with full scope: 'Live BTC/USD spot price read on-chain', including the exact data sources (Uniswap V3 on Base and Ethereum, cbBTC/USDC, WBTC via WETH/USDC). This clearly differentiates it from siblings like get_eth_price, get_sol_price, and the generic get_spot without opening any schema.

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

Usage Guidelines3/5

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

The description explains methodology and cost, which implies usage, but never states when to prefer this over get_spot or other price tools, nor any when-not conditions. Usage is inferable from the name and the 'live on-chain' framing, but no routing guidance is given.

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 alertA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNolookback window seconds, 30-300, default 90
min_usdNomin summed USD, default 50000
min_eventsNomin prints to qualify, default 4

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_cascade_alert payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_alert
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuine context beyond that: the empty-array-means-no-cascade convention and the 0.01 USDC per-call payment requirement (x402, listed chains), which is real auth/cost information an agent needs.

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

Conciseness4/5

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

Dense but front-loaded: purpose first, then return shape, then the alternative, then cost. Every sentence carries information. Slightly packed, but no filler.

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

Completeness4/5

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

With an output schema present, the description needn't detail return values, yet it helpfully summarizes fields and the empty-result case. It covers scope, the key alternative, and cost. Minor gap: no mention of the forecast/history siblings that share the 'cascade' namespace.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters (window, min_usd, min_events) are documented in the schema with ranges and defaults. The description adds no additional meaning about these parameters, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource (liquidation cascade detector) scoped to the 5 majors, and names what it returns (active NOW, with symbol/side/USD/prints/duration/severity). It explicitly differentiates from the sibling get_cascade_scan by restricting itself to the majors.

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

Usage Guidelines4/5

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

Explicitly routes the agent: 'For every USDT perp we record across 3 exchanges, use get_cascade_scan.' It also implies real-time-only scope ('active NOW', empty array = none). It does not, however, distinguish itself from get_cascade_history or get_cascade_forecast, which are equally close siblings.

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 forecastA
Read-onlyIdempotent
Inspect

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 our own multi-venue liquidation record, 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoSOL, BTC, ETH or any USDT perp e.g. SXTUSDT (default SOL)
symbolsNocomma separated for a batch, max 20, e.g. SOL,BTC,ETH

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_cascade_forecast payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_forecast
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare the read-only/idempotent safety profile, and the description adds substantial context beyond them: per-call cost (0.02 USDC across five chains), the decline-rather-than-guess behavior, what every answer carries, and the calibration data provenance.

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

Conciseness4/5

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

Front-loads the key distinction (forward-looking vs historical) before details. Dense but mostly earning its place; the multi-chain cost enumeration and record-provenance sentences are slightly heavy for a tool description.

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

Completeness5/5

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

With an output schema present, return values need not be explained. The description covers purpose, behavior, cost, and failure mode, leaving nothing an agent needs to call it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so symbol/symbols are fully documented in the schema itself. The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 holds.

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

Purpose5/5

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

States a specific verb+resource (probability a symbol liquidates more in the next 15 minutes than its 90th-percentile window) and explicitly separates itself from historical siblings with 'FORWARD-LOOKING and not a description of what already happened'. An agent can distinguish it from get_cascade_history 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.

Usage Guidelines4/5

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

Gives clear context for when the tool applies (forward-looking probability, declines when a state has too little history) and discloses cost. However, it never routes the agent to the obvious alternative, the sibling get_cascade_forecast_free, nor explains when the free version suffices versus this paid one.

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 forecastA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_cascade_forecast_free payload
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 historyA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
gap_sNomax gap seconds within an event, default 60
hoursNo1-72, default 24
scopeNosymbol = just this symbol (default), all = every recorded USDT perp
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)
min_usdNomin event USD, default 100k (250k for scope=all)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_cascade_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_history
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive/openWorld, but the description adds genuinely new behavioral facts: the 0.03 USDC per-call cost, x402 payment flow and accepted chains, the 72h retention window, and that events are reconstructed from the provider's own tape. These are material for deciding whether to call the tool and are not in any structured field.

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

Conciseness5/5

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

Three tight sentences, front-loaded with what the tool returns before the disambiguation and cost note. Every sentence carries distinct information (data shape, sibling contrast, price), with no filler.

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

Completeness5/5

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

With an output schema present, return values need no prose, and annotations carry the safety profile. The description closes the remaining gaps an agent would care about: cost, payment mechanism, retention window, and how this differs from the live cascade endpoint.

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

Parameters3/5

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

Schema description coverage is 100%, so gap_s, hours, scope, symbol and min_usd are all documented in the schema. The description only reinforces the 72h retention bound, adding no syntax or default detail beyond what the schema already gives; baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource (liquidation cascade history) and defines exactly what is returned: clustered same-side flush events with start/end, prints, USD total and peak print. The explicit contrast with '/api/cascade' separates it from the live-scan siblings.

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

Usage Guidelines4/5

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

Clearly routes the agent: '/api/cascade tells you what is happening NOW; this tells you what already happened', giving a concrete when-to-use condition versus the live tool. It stops short of distinguishing itself from the other history siblings (get_liq_history, get_recent_liquidations, get_last_liquidation), so it is not exhaustive.

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 scanA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNolookback window seconds, 30-300, default 90
min_usdNomin summed USD, default 50000
min_eventsNomin prints to qualify, default 4

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_cascade_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_cascade_scan
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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 meaningful context beyond that: it specifies multi-exchange coverage, unique Bybit liquidation data, returned fields, and a per-call cost of 0.05 USDC via x402 on multiple chains. It does not cover payment-on-failure or rate limits, keeping it from 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.

Conciseness4/5

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

It is a single front-loaded paragraph with the key scope claim first. The uniqueness sentence ('not available anywhere else') is slightly promotional but still supports differentiation; overall it is appropriately sized.

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

Completeness4/5

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

Given the output schema exists and the input schema has full coverage, the description does not need to explain returns or parameters. It covers the tool's scope, uniqueness, output fields, and payment cost, leaving only explicit sibling routing and usage conditions unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters with defaults and ranges. The description adds no parameter-specific meaning beyond that baseline.

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

Purpose4/5

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

States a specific verb ('detects liquidation cascades') and resource ('across every USDT perp we record on Bybit, OKX and Binance'), plus scope differentiation ('not just majors'). It does not explicitly name sibling tools like get_cascade_alert or get_liq_feed, 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.

Usage Guidelines3/5

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

The description implies usage context by advertising full-universe coverage versus majors, but gives no explicit when-to-use, when-not-to-use, or alternative tools. An agent must infer that this tool is for comprehensive cascade detection rather than point alerts or history feeds.

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

get_classifyText classificationA
Read-onlyIdempotent
Inspect

Use when an agent needs text sorted into its own categories. Returns a score per label that sums to 1 and the best label, for up to 4,000 characters and 2 to 20 labels. Labels are names, never instructions. Cached 24 hours. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesthe text to classify, up to 4,000 characters
labelsYes2 to 20 labels, comma separated, e.g. billing,bug,feature

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_classify payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_classify
toolYesthe tool that produced this payload

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive), and the description adds genuinely new operational facts: 24-hour caching and a 0.005 USDC per-call fee via x402 across named chains. The "labels are names, never instructions" note is a useful injection-safety signal. Error/rate-limit behavior is still unstated.

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

Conciseness4/5

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

Three sentences, front-loaded with the usage trigger, then output shape, constraints, caching and pricing. Every sentence carries information, though the chain enumeration adds length that borders on list-dumping.

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

Completeness4/5

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

With an output schema present, return values need not be explained (they are described anyway as a bonus), and annotations carry the safety profile. The description supplies cost, caching and input limits, leaving little an agent needs to invoke it correctly, though no failure or retry guidance is given.

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

Parameters4/5

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

Schema coverage is 100%, so the 4,000-character and 2-to-20-label limits are already documented and the description only reinforces them. It does add one semantic constraint absent from the schema – that labels must be names rather than instructions – which justifies a bump above the baseline 3.

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

Purpose4/5

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

States a specific verb and resource: sorting text into caller-provided categories, with a clear output shape (per-label scores summing to 1 plus a best label). It does not explicitly differentiate itself from near-neighbors like get_extract or get_summarize, keeping it 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.

Usage Guidelines4/5

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

"Use when an agent needs text sorted into its own categories" gives a clear triggering context and implicitly points at the caller supplying labels. There are no when-not conditions or named alternative tools, so it stops at a solid 4.

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

get_coin_signalCoin signalA
Read-onlyIdempotent
Inspect

Signal for one Hyperliquid perp, for trading bots. Everything on the signal board for the coin (price changes, funding, open interest, liquidations with their z-score, whale net position and tilt, flags) plus the 15-minute liquidation cascade probability from our forecast model, the nearest liquidation cluster above and below price from the 24 h liquidation heatmap, and the top 3 whale positions (side, size, entry, liquidation price). BTC, ETH, SOL, HYPE or any other Hyperliquid perp. Poll every 1-5 minutes. An unknown coin answers 400 with the supported list and a stale source answers 503; neither is billed. Costs 0.004 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesa Hyperliquid perp, e.g. BTC, ETH, SOL, HYPE, kPEPE

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_coin_signal payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_coin_signal
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the read-only annotations by disclosing error handling ('unknown coin answers 400 with the supported list and a stale source answers 503'), billing details ('Costs 0.004 USDC per call'), and payment rails. This is exactly the kind of operational context an agent needs before invoking a paid external API.

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

Conciseness4/5

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

Front-loads the core purpose in the first clause and keeps every sentence informative. However, the long mid-sentence enumeration of return fields is dense and partly redundant given the output schema, which slightly hurts conciseness.

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

Completeness5/5

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

Covers purpose, usage cadence, error semantics, billing, and supported assets; annotations handle safety and idempotency; and an output schema exists for return values. For a complex paid data-retrieval tool, the description provides everything an agent needs to call it correctly.

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

Parameters3/5

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

The single 'coin' parameter is fully documented in the schema (100% coverage), and the description only reiterates the examples already present there. No additional syntax, format, or constraint information is added beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific resource ('Signal for one Hyperliquid perp') and enumerates the exact data returned, making the tool's purpose immediately clear. It distinguishes itself from broader siblings like get_signal_board by scoping everything to a single coin and adding forecast, heatmap, and whale details.

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

Usage Guidelines4/5

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

Gives clear context ('for trading bots') and a concrete polling cadence ('Poll every 1-5 minutes'), which tells the agent when this tool is appropriate. It does not explicitly name alternative tools or state when not to use it, but the per-coin aggregation scope implies the intended use case.

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

get_convertUnit conversionA
Read-onlyIdempotent
Inspect

Use when an agent needs an exact unit conversion. Returns the value converted between units of length, mass, volume, time, data, speed, area, pressure, energy or temperature, to 12 significant digits. Mixing categories is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesunit, e.g. km, lb, MB, F
fromYesunit, e.g. mi, kg, GiB, C
valueYesa plain number

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_convert payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_convert
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare it read-only, idempotent and non-destructive, and the description layers on genuinely useful context beyond them: precision (12 significant digits), failure behavior (cross-category mix returns 400 and is never billed), and the payment model (0.005 USDC via x402 on Solana/Base/Polygon/Arbitrum/Arc). Cost and error semantics are never derivable from annotations alone.

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

Conciseness5/5

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

Three tight sentences with no filler; the usage trigger is front-loaded, then output precision, then error and cost semantics. Every clause carries information an agent can act on.

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

Completeness5/5

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

With an output schema present, the description need not restate return shape, and it still summarizes the return (converted value to 12 significant digits). For a 3-parameter, read-only, paid tool, the description covers invocation, failure mode, and billing, leaving nothing material unstated.

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

Parameters3/5

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

Schema coverage is 100% and each of value/from/to is documented in the schema, so the baseline is 3. The description adds only indirect parameter context (the set of valid unit categories and the category-mixing constraint) and gives no syntax or format detail beyond what the schema states.

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

Purpose5/5

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

States a specific operation (convert a value between units) and enumerates the covered categories (length, mass, volume, time, data, speed, area, pressure, energy, temperature), which cleanly separates it from siblings like get_fx_rates (currency) or get_base_gas (chain metrics). An agent can identify this as the unit-conversion tool without opening any schema.

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

Usage Guidelines4/5

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

"Use when an agent needs an exact unit conversion" gives an explicit trigger condition, and "Mixing categories is a 400" communicates a clear exclusion/constraint. It stops short of naming an alternative tool for edge cases (e.g. FX/currency conversion), so it is clear context rather than full when/when-not routing.

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

get_domainDomain DNS and TLSA
Read-onlyIdempotent
Inspect

Use when an agent needs the basic facts about a domain. Returns its DNS A, AAAA, MX, NS and TXT records and the live TLS certificate: issuer, alternative names, validity dates and days to expiry. Public hosts only; no registrar data. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesa hostname such as example.com (no URL, no IP address)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_domain payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_domain
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond them: the exact record/certificate payload, the public-hosts-only scope limit, and the 0.005 USDC per-call cost with the accepted payment rails. It stops short of describing failure modes (NXDOMAIN, unreachable hosts, missing cert).

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

Conciseness5/5

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

Three tight sentences, front-loaded with the use case, then the return payload, then scope and cost. Every sentence carries distinct information; no filler.

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

Completeness5/5

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

With an output schema present the description needn't detail return values, yet it does so helpfully; annotations cover safety; and cost, payment rails and scope exclusions are all disclosed. An agent has everything needed to decide and call.

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

Parameters3/5

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

Only one parameter and schema description coverage is 100% – the schema already specifies 'a hostname such as example.com (no URL, no IP address)'. The description adds only the constraint that hosts must be public, which is marginal over the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific resource (a domain's basic facts) and enumerates exactly what it returns: A/AAAA/MX/NS/TXT records plus the live TLS certificate with issuer, SANs, validity and days-to-expiry. No sibling tool performs domain lookups, so it is trivially distinguishable from the surrounding finance/crypto tools.

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

Usage Guidelines4/5

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

'Use when an agent needs the basic facts about a domain' gives a clear trigger, and 'Public hosts only; no registrar data' carves out an explicit exclusion. There are no competing siblings to route against, so the absence of a named alternative is acceptable, but no prerequisite or edge-case guidance is offered.

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

get_email_verifyEmail verificationA
Read-onlyIdempotent
Inspect

Use when an agent needs to know whether an email address can plausibly receive mail. Returns syntax, MX, disposable-domain, role-account and free-provider checks with a deliverable_likely, risky or undeliverable verdict and its reasons. No SMTP probe. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesthe address to check, up to 254 characters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_email_verify payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_email_verify
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds real value beyond them: it discloses the limitation 'No SMTP probe' and the per-call cost (0.005 USDC via x402 across named chains), which materially affects 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.

Conciseness5/5

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

Three sentences, tightly front-loaded: trigger first, then what it returns, then the SMTP limitation and 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.

Completeness5/5

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

An output schema exists, so return values need not be re-explained; the description still summarizes the verdict vocabulary. Combined with cost, limitation disclosure, and covered annotations, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter is documented as 'the address to check, up to 254 characters'. The description adds no syntax or format 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.

Purpose5/5

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

States a specific resource (email address deliverability) and enumerates the exact checks performed (syntax, MX, disposable-domain, role-account, free-provider) plus the verdict types. No sibling tool performs email verification, so the definition unambiguously owns this capability.

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

Usage Guidelines4/5

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

Opens with an explicit trigger: 'Use when an agent needs to know whether an email address can plausibly receive mail.' Clear context for invocation, though it names no exclusions or alternative tools for adjacent tasks (e.g. generic domain or sanctions checks).

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

get_equity_24hEquity 24/7 priceA
Read-onlyIdempotent
Inspect

Weekend price for US stocks: an indicative 24/7 price for a stock or index (TSLA, NVDA, S&P 500, Nasdaq) from stock perps on Hyperliquid and our tokenized stocks DEX price, with the last regular-session price, its time and source, the implied gap in %, each source's liquidity and the session (open, pre, after, overnight, weekend). Indicative, never an exchange quote; 503 when no source has liquidity. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesUS stock or index ticker as the venues list it, e.g. TSLA, NVDA, SP500, XYZ100

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_equity_24h payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_equity_24h
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds substantial context beyond that: the actual data sources, the session taxonomy returned, explicit 'indicative, never an exchange quote' caveat, 503 error condition when no source has liquidity, and a pay-per-call cost of 0.01 USDC via x402 across named chains.

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

Conciseness4/5

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

The purpose and asset class are front-loaded, and the trailing sentences carry distinct information (caveat, error behavior, cost). The first sentence is a dense run-on with many stacked clauses, which is slightly heavy, but nearly every element earns its place.

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

Completeness5/5

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

For a single-parameter pricing tool with an output schema already present, the description supplies everything an agent needs: scope, sources, session/return semantics, error behavior, and payment model. Nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single symbol parameter is already documented with examples, so the baseline is 3. The description adds example tickers (TSLA, NVDA, S&P 500, Nasdaq) but these largely restate the schema examples (which use SP500, XYZ100), adding little new meaning.

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

Purpose5/5

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

States a specific verb/resource and scope: an indicative 24/7 price for US stocks or indices sourced from Hyperliquid stock perps and a tokenized-stocks DEX. It clearly separates itself from crypto-price siblings like get_btc_price, get_eth_price, get_sol_price by naming the equity asset class explicitly.

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

Usage Guidelines3/5

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

Implied usage is clear from the framing ('Weekend price for US stocks', session labels including weekend), so an agent can infer it is for off-hours equity pricing. However, it never explicitly says when to use this versus alternatives such as get_tradfi_perps, get_spot, or get_tradfi_radar, leaving routing 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 priceA
Read-onlyIdempotent
Inspect

ETH spot price in USD, read on-chain from the two deepest WETH/USDC Uniswap V3 pools, on Ethereum and on Base. Returns their median plus each pool's own price, so a caller can see the spread between chains. Computed from chain state; no exchange feed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_eth_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_eth_price
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld, and non-destructive, so the safety profile is handled. The description adds genuine behavioral context beyond that: the exact on-chain data source, the median-plus-per-pool return shape and cross-chain spread, and a concrete cost of 0.001 USDC per call via x402 with accepted chains.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the purpose and source, then return shape, then sourcing caveat, then cost. Every sentence carries distinct, non-redundant information.

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

Completeness5/5

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

With an output schema present and annotations covering the safety profile, the description needs only to establish what is measured, from where, and at what cost – all of which it does. Nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to disambiguate; the schema is empty and 100% covered. The baseline of 4 applies since no parameter-level meaning is missing.

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

Purpose5/5

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

Specific verb+resource (ETH spot price in USD) with the data provenance spelled out: read on-chain from the two deepest WETH/USDC Uniswap V3 pools on Ethereum and Base. It is trivially distinguishable from siblings like get_btc_price and get_sol_price, and even from an exchange-feed price tool.

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

Usage Guidelines3/5

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

The description implies a use context ('Computed from chain state; no exchange feed') which differentiates it from feed-based pricing, and it discloses a per-call cost. However, it never explicitly names an alternative or states when-not to use it, so routing guidance is only 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_exit_methodExit liquidity methodA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_exit_method payload
toolYesthe tool that produced this payload

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 liquidityA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesreserve symbol e.g. SPYx, cbBTC, FWDI, CRCLx (get_exit_method lists all covered)
size_usdNoclip size in USD you would need to exit; the nearest MEASURED clip is returned, never interpolated

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_exit_quote payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_exit_quote
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare safety (readOnly, idempotent), so the description adds real behavioral context: REFUSED-quote vs no-route status distinction, six consecutive agreeing observations required before a verdict, fallback to last corroborated measurement with its age rather than null, and the caveat that zero bad debt doesn't disprove findings. This is exactly the kind of non-obvious behavior an agent needs.

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

Conciseness4/5

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

Front-loads purpose, then lays out return fields and the corroboration/refusal nuances. The sentences are dense and mostly earn their place, but the parentheticals and the 'zero bad debt' caveat push toward long-windedness.

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

Completeness4/5

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

An output schema exists, so return-value explanation isn't required, yet the description still names key fields (max_exitable_usd, exitable fraction, conservative bound, nearest-probe realised USD/haircut/margin). With annotations covering safety and the schema covering both params, only minor gaps remain (e.g., exact cost flow timing for x402).

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

Parameters3/5

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

Schema coverage is 100% and both parameters already carry their meaning (symbol examples; size_usd maps to nearest MEASURED clip, never interpolated). The description reinforces the 'nearest clip actually probed' idea but adds no syntax or format detail beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb (measure exit liquidity on seized collateral) against a specific resource (a Kamino reserve sold into live routing, versus oracle price), and enumerates its return fields. Distinguishable from siblings in a crowded liquidation family, and explicitly points to get_exit_method for the method.

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

Usage Guidelines4/5

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

Sets clear context (measuring realisable exit value on seized collateral) and points to get_exit_method for method/corroboration details, plus discloses the 0.02 USDC x402 payment. It doesn't name a sibling that should be used instead when you don't need liquidity measurement, but the intended use case is unambiguous.

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

get_extractStructured extractionA
Read-onlyIdempotent
Inspect

Use when an agent needs named fields from a page or PDF. Returns JSON for a schema of up to 20 fields (string, number, boolean, date, string[]), with null for anything the document does not state, never an invented value. Costs 0.025 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe page or PDF: an absolute http or https URL
schemaYesJSON object of field name to type, e.g. {"title":"string","price":"number","released":"date"}; up to 20 fields and 2 KB

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_extract payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_extract
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds genuinely new behavior: null for unstated fields rather than invented values, and a per-call cost of 0.025 USDC across five chains. This is exactly the extra context annotations cannot carry.

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

Conciseness5/5

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

Three tight sentences: use condition, output contract, cost. Every sentence carries distinct information and the when-to-use clause is front-loaded ahead of the mechanics.

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

Completeness5/5

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

Output schema exists so return shape needn't be repeated, yet the description still clarifies the null semantics that govern the schema's values. With only two fully documented params and a clear cost/authorization note, nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and both params are documented in-schema, including the 20-field/2 KB constraint. The description restates the field count and type palette rather than adding syntax or format meaning beyond what the schema already supplies, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource: extracting named fields from a page or PDF into JSON. Clear enough to distinguish from raw-text siblings like get_ocr/get_pdf_markdown, but it never names those alternatives, so the 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.

Usage Guidelines4/5

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

"Use when an agent needs named fields from a page or PDF" gives a clear triggering condition. It stops short of stating when NOT to use it or pointing to the sibling extraction tools, so the routing guidance is contextual rather than explicit.

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 indexA
Read-onlyIdempotent
Inspect

Crypto Fear & Greed index (0-100) with classification. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_fear_greed payload
toolYesthe tool that produced this payload

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 specA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_forecast_question payload
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 recordA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNohow many raw rows to return, max 500, default 50
symbolNorestrict the record to one symbol

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_forecast_record payload
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_extremesFunding extremesA
Read-onlyIdempotent
Inspect

Funding rate extremes across every Hyperliquid perp above a liquidity floor: 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNotop N each side, 1-25, default 10
min_turnover_usdNo24h volume floor in USD, default 1M

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_funding_extremes payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_extremes
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, so the bar is lower, and the description still adds real value: a per-call price of 0.02 USDC and the x402 payment rails (USDC on Solana, Base, Polygon, Arbitrum, Arc) that an agent must know before invoking. It does not mention rate limits, tiering, or fallback behavior if payment fails, 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.

Conciseness4/5

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

Three sentences, properly front-loaded with what the tool returns, then the trading interpretation, then the cost. Every sentence is load-bearing; the only minor slack is that the parenthetical payment-rail list is longer than strictly needed.

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

Completeness4/5

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

An output schema exists, so the description needn't explain return values, and it correctly focuses on scope, use case, and the non-obvious x402 cost. The one gap is sibling disambiguation within a very crowded funding-tool family.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (limit, min_turnover_usd) are already documented with ranges and defaults. The description restates the existence of a 'liquidity floor' and 'top N each side' but adds no format, unit, or interaction 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.

Purpose4/5

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

States a specific verb+resource+scope: the most positive and most negative funding across every Hyperliquid perp above a liquidity floor, with named output fields (annualized %, 24h move, open interest). It differentiates by scope (extremes across all perps) but never names the close siblings get_funding_radar, get_funding_pulse, get_funding_rate or get_funding_history, so an agent must infer which funding tool to pick.

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

Usage Guidelines3/5

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

The line 'The most crowded trades in the market — crowded shorts are squeeze candidates' implies the use case (squeeze/positioning hunting) and hints at a relationship with get_squeeze_score, but gives no explicit when-to-use, when-not-to-use, or named alternative. Usage is inferable 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_funding_historyFunding historyA
Read-onlyIdempotent
Inspect

Funding rate history for any Hyperliquid perp, up to 200 hourly settlements: 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNohourly settlements, 1-200, default 30
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_funding_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_history
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds genuinely non-structured behavioral context: the per-call cost of 0.005 USDC, the x402 payment requirement, and the accepted chains (Solana, Base, Polygon, Arbitrum, Arc). It does not, however, describe latency or failure modes beyond the 200-settlement cap.

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

Conciseness4/5

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

Three sentences, front-loaded with the concrete capability before the interpretive line and the payment clause. Mostly earns its place, though 'What the carry has actually been.' is flavor rather than specification and could be trimmed.

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

Completeness4/5

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

Output schema exists, so return values needn't be spelled out, yet the description still previews them usefully. The payment/auth detail is an important completeness addition for an x402-priced tool. Nothing essential for correct invocation is missing, though alternatives routing is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both params (limit, symbol) are already fully documented in the schema. The description only echoes 'up to 200 hourly settlements' and 'any Hyperliquid perp' without adding format or default guidance beyond the schema. Baseline 3 is correct when the schema carries the load.

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

Purpose5/5

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

States a specific verb+resource (funding rate history), scopes it (any Hyperliquid perp, up to 200 hourly settlements), and enumerates what it returns (average rate, annualized %, positive-interval share, raw series). The word 'history' plus the aggregate-stat framing cleanly separates it from the sibling funding tools (get_funding_rate, get_funding_pulse, get_funding_extremes), 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.

Usage Guidelines3/5

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

Usage is only implied: 'What the carry has actually been' hints at assessing realized funding carry, but there is no explicit when-to-use, no when-not-to-use, and no named alternative among the many sibling funding tools. The agent must infer that this is the historical/aggregate counterpart to the live-rate tools.

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

get_funding_pulseFunding pulseA
Read-onlyIdempotent
Inspect

Use when an agent needs the most extreme funding rates right now. Returns the 5 largest absolute annualised rates across the Hyperliquid perps above a liquidity floor, each with 8h rate, open interest and 24h price move. One call, not a full screen. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_funding_pulse payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_pulse
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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 genuinely useful non-annotation context: the exact cost (0.005 USDC per call) and the x402 payment rails (Solana, Base, Polygon, Arbitrum, Arc), plus the fixed liquidity-floor filter and the 5-item cap.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the when-to-use trigger and the returned payload; the cost and payment rails come last. Nothing is redundant and the size matches a zero-parameter, single-shot tool.

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

Completeness4/5

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

An output schema exists, so the description need not detail the return shape, yet it still summarizes the payload usefully. Payment requirements are disclosed, which is essential for a paid endpoint. The one real gap is routing guidance against the other funding tools, which the description leaves unresolved.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4. The description's mention of an internal liquidity floor is context rather than a parameter, and there is no parameter surface that needs explaining.

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

Purpose4/5

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

States a specific verb+resource and a precise scope: the 5 largest absolute annualised funding rates on Hyperliquid perps above a liquidity floor, with named fields (8h rate, open interest, 24h price move). However, it fails to differentiate itself from obvious siblings like get_funding_extremes, get_funding_radar and get_funding_rate, which sound like near-identical capabilities.

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

Usage Guidelines3/5

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

"Use when an agent needs the most extreme funding rates right now" plus "One call, not a full screen" gives implied usage context. But with get_funding_extremes and get_funding_radar in the sibling list, the description never says when to pick this over them — a significant omission for a crowded funding-rate family.

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

get_funding_radarFunding radarA
Read-onlyIdempotent
Inspect

Funding radar over every Hyperliquid perp: 337 on 13 Oct 2026, 178 on the main dex and 159 on the HIP-3 dexes (stocks, indices, commodities, FX). Per perp: the current funding at its 8h equivalent, its 30-day z-score against its own settled history, the dex and asset class, and a flag on any |z| of 2 or more, most extreme first. By default it returns the perps with $10M and up of open interest; min_oi_usd changes that and 0 returns them all. Precomputed every 5 minutes with as_of; a snapshot older than 15 minutes answers 503 and is never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoperps returned, most extreme first, 1-100, default 20
min_oi_usdNominimum open interest in USD: default 10000000 ($10M); 0 returns every perp the radar tracks

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_funding_radar payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_radar
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the read-only/idempotent annotations: it discloses the 5-minute precompute cadence, the as_of field, the 503-on-stale-snapshot rule (and that stale calls are never billed), and the 0.02 USDC x402 cost with supported chains. These are operationally decisive facts an agent cannot get from annotations.

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

Conciseness4/5

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

Dense but front-loaded: scope first, then returned fields, then filtering, then operational caveats. Every clause carries a distinct fact, though the pricing and chain list at the tail is slightly tangential.

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

Completeness5/5

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

With an output schema handling return shape, the description still covers the things only prose can: default filtering, cost, staleness failure mode, and freshness guarantee. Nothing needed to invoke or interpret it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both params (top, min_oi_usd) are already documented with ranges and defaults. The description restates the default threshold and the 0-returns-all behavior but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb and resource (funding radar over every Hyperliquid perp) and quantifies scope (337 perps, 178 main dex, 159 HIP-3). It enumerates the exact returned fields, so an agent knows what this produces 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.

Usage Guidelines3/5

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

Explains the default behavior ($10M+ OI) and how min_oi_usd=0 returns everything, which implicitly guides usage, but never names or contrasts with close siblings like get_funding_extremes, get_funding_pulse, get_funding_history, or get_funding_rate. The agent must infer when this radar beats those alternatives.

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 rateA
Read-onlyIdempotent
Inspect

Funding rate for any Hyperliquid perp: raw rate, interval hours, 8h equivalent, annualised rate, next funding time and mark price. Without a symbol, SOL and BTC from Hyperliquid with open interest. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. ETHUSDT, ONDOUSDT (omit for SOL and BTC from Hyperliquid)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_funding_rate payload (without symbol: {sol, btc} from Hyperliquid; with symbol: {symbol, venues: {hyperliquid}}); a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate
toolYesthe tool that produced this payload

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, non-destructive), so the bar is lower. The description adds non-annotated behavior that matters operationally: a metered cost of 0.005 USDC per call and the x402 payment rails/ledgers accepted, which an agent must know 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.

Conciseness4/5

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

Two dense, front-loaded sentences: what you get first, then the default behavior and price. The long enumeration of returned fields is partially redundant given an output schema exists, but it aids selection and nothing reads as filler.

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

Completeness4/5

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

An output schema exists, so return format needn't be explained, and cost/auth are covered. What remains unstated is freshness/real-time vs delayed pricing and any rate limits on the paid calls, minor gaps for an otherwise complete single-parameter read tool.

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

Parameters4/5

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

With one parameter at 100% schema coverage, the baseline is 3. The description goes slightly beyond the schema by spelling out the no-symbol fallback behavior including that open interest is returned in that case, adding meaning the schema's terse 'omit for SOL and BTC' only implies.

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

Purpose4/5

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

States a specific verb+resource ('Funding rate for any Hyperliquid perp') and enumerates the exact metrics returned, which makes it easy to distinguish from history/radar/extremes siblings by intent. It never explicitly names a sibling to contrast with, so it stops short of the top score.

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

Usage Guidelines3/5

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

The description gives one conditional (omitting symbol falls back to SOL and BTC with open interest) and discloses the per-call cost, which is genuine usage context. However, it never says when to choose this over get_funding_history, get_funding_pulse, or get_funding_extremes, leaving alternative selection to inference.

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

get_fx_ratesFX reference ratesA
Read-onlyIdempotent
Inspect

Use when an agent needs official daily exchange rates. Returns the ECB euro foreign exchange reference rates for about 30 currencies, as published or as crosses for another base, plus Hyperliquid HIP-3 FX and commodity marks. The ECB rates are available free of charge on the ECB's website; they are for information only, not for transactions. Costs 0.002 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNobase currency, 3 letters, default EUR; other bases are crosses computed from the ECB rates

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_fx_rates payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_fx_rates
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, open-world, non-destructive. The description adds substantial context beyond them: the exact cost (0.002 USDC per call via x402), supported payment chains, and the licensing/disclaimer that ECB rates are free-of-charge and informational only. This goes well past what the annotations declare.

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

Conciseness4/5

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

Front-loads the usage trigger and content scope efficiently. Most sentences earn their place, though the ECB-website availability note is somewhat extraneous marketing/flavor that could be trimmed without losing agent-relevant information.

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

Completeness5/5

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

With an output schema present, the description need not explain return values. It covers the essential agent-facing facts: what data is returned, the base/cross behavior, cost, payment methods, and the informational-only limitation. Nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single 'base' parameter is fully documented in the schema. The description's mention of 'as published or as crosses for another base' largely restates the schema rather than adding new syntax or format detail, 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.

Purpose5/5

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

States a specific verb and resource: returns ECB euro FX reference rates for ~30 currencies, in published form or as crosses, plus Hyperliquid HIP-3 FX/commodity marks. This clearly distinguishes it from the many crypto price siblings (get_btc_price, get_eth_price, get_sol_price) since it is fiat reference-rate focused.

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

Usage Guidelines4/5

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

Opens with an explicit trigger: 'Use when an agent needs official daily exchange rates.' It also gives the important caveat that the rates are for information only, not for transactions, which guides appropriate use. It does not, however, name a sibling alternative (e.g. get_convert) 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_hashHashA
Read-onlyIdempotent
Inspect

Use when an agent needs a hash it should not compute itself. Returns SHA-256, Keccak-256 (the Ethereum hash) or BLAKE2b-512 of UTF-8 text or hex bytes, as hex and 0x-hex. Input up to 2 KB; over that is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
asNohow to read data: utf8 (default) or hex bytes
algYesthe hash
dataYesthe input, up to 2,048 bytes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_hash payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_hash
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial operational context beyond them: a 2 KB input cap, a 400 on overflow that is never billed, and per-call pricing with the payment protocol and supported chains. This is exactly the extra context annotations cannot carry.

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

Conciseness5/5

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

Three tight sentences, front-loaded with purpose, then limits, then cost. Every clause carries an actionable fact with no padding or repetition.

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

Completeness5/5

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

For a pure-function tool with an output schema present, the description need not explain return values, and it covers input limits, error behavior, supported algorithms/encodings, and billing. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3, but the description adds genuinely useful meaning: it maps keccak256 to 'the Ethereum hash', clarifies utf8 vs hex byte interpretation, and specifies the output is returned as both hex and 0x-hex. That goes beyond the schema enum labels.

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

Purpose5/5

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

States a specific verb (returns a hash) plus the exact algorithms and encodings it produces, and frames the scope as something the agent should not compute itself. An agent can immediately tell what this tool returns versus every sibling in the list.

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

Usage Guidelines4/5

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

The opening sentence gives a clear condition for use ('when an agent needs a hash it should not compute itself'). It does not name an alternative or state when-not to use, but no sibling overlaps this function, so the routing gap is minor.

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

get_hl_whalesHyperliquid whalesA
Read-onlyIdempotent
Inspect

Use when an agent needs to know how the biggest Hyperliquid traders are positioned. Returns the open perp positions of the largest Hyperliquid accounts aggregated per coin: net long or short USD, account counts, size-weighted entries, notional-weighted distance to liquidation, notional within 10% of liquidation and uPnL. With coin=BTC: whale liquidation levels in 5% price bands and the largest positions. Refreshed every 5 minutes; stale data answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNocoins (or positions with coin=) returned, 1-50, default 20
coinNoone Hyperliquid perp, e.g. BTC, ETH, SOL, HYPE: adds liquidation bands and the top positions

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_hl_whales payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_hl_whales
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (which only cover the read-only/idempotent safety profile), the description discloses three operationally critical traits: refresh cadence (every 5 minutes), failure behavior (stale data answers 503), and cost (0.02 USDC per call via x402 on five named chains). These are exactly the details an agent needs to plan a paid, freshness-sensitive call.

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

Conciseness5/5

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

It is front-loaded with the trigger condition, then the return payload, then the coin-specific behavior, then the refresh/cost logistics. Every sentence carries distinct information with no filler or repetition of the schema.

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

Completeness5/5

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

For a read-only, idempotent, paid data tool with an output schema already defining return shape, the description covers purpose, trigger, the coin-mode behavioral difference, freshness, error behavior, and cost. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents both parameters and the baseline is 3. The description adds real meaning beyond it by explaining the behavioral effect of coin (adding liquidation bands and the largest positions), which is not captured in the schema's terse field description.

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

Purpose5/5

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

The description gives a specific verb and resource: it 'returns the open perp positions of the largest Hyperliquid accounts aggregated per coin,' then enumerates the exact metrics (net long/short USD, account counts, size-weighted entries, distance to liquidation, uPnL). This is specific enough to distinguish it from the many generic positioning and liquidation siblings like get_positioning 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.

Usage Guidelines4/5

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

It opens with an explicit trigger condition ('Use when an agent needs to know how the biggest Hyperliquid traders are positioned'), which clearly frames the use context. However, it names no alternatives or exclusions, so an agent choosing between this and other Hyperliquid/positioning tools gets no routing guidance.

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

get_honeypot_checkHoneypot checkA
Read-onlyIdempotent
Inspect

Use when an agent needs to know whether a token on Base, BNB Chain or Ethereum can be sold before it buys. Returns a verdict from our own buy-then-sell simulation on the token's deepest pool, with the buy and sell tax measured. Also: whether a wallet transfer works, bytecode flags (mintable, blacklist, proxy, pausable, owner), where simulation and bytecode disagree, and the block. Uniswap, Aerodrome and PancakeSwap pools. No pool found is a finding; RPC failure answers 503. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase (default: Uniswap V2/V3/V4, Aerodrome), bsc (PancakeSwap V2/V3) or ethereum (Uniswap V2/V3)
tokenYestoken contract address, 0x followed by 40 hex characters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_honeypot_check payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_honeypot_check
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish read-only/idempotent safety, yet the description adds substantial non-obvious behavior: the verdict comes from a buy-then-sell simulation on the deepest pool, buy/sell tax is measured, bytecode flags and simulation/bytecode disagreement are returned, 'no pool found is a finding' (not an error), and RPC failure surfaces as 503. It also discloses the payment model (0.01 USDC per call via x402 and accepted chains), which no structured field covers.

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

Conciseness4/5

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

Front-loaded with the when-to-use condition, then the returned verdict, then caveats and pricing — a sensible priority order. It is dense with fragment-style listing ("Also: whether...") and slightly long, but each sentence carries load-bearing information rather than filler.

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

Completeness5/5

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

An output schema exists, so return-shape detail isn't required, yet the description still characterizes the verdict, tax measurement, bytecode flags, and disagreement output. With annotations covering the safety profile and pricing/cost and error behavior disclosed, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both `token` and `chain` including the per-chain DEX lists. The description's venue mentions (Uniswap, Aerodrome, PancakeSwap) restate what the schema's chain description already says, adding no syntax or format guidance. Baseline 3 applies when the schema does the lifting.

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

Purpose5/5

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

States a specific verb+resource (honeypot check on a token) and its outcome (verdict from a buy-then-sell simulation). It clearly distinguishes itself from sibling risk tools like get_token_risk and get_sol_token_check by scoping to EVM chains and stating the sellability question. An agent can select it without opening any schema.

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

Usage Guidelines4/5

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

"Use when an agent needs to know whether a token ... can be sold before it buys" gives explicit, actionable timing and intent. It does not name the alternative for Solana tokens (get_sol_token_check) or contrast with get_token_risk, so routing among near-siblings still requires inference.

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

get_injection_checkPrompt injection checkA
Read-onlyIdempotent
Inspect

Use when an agent needs untrusted text screened for prompt-injection attempts. Returns no_injection_found, suspicious or malicious for up to 4,000 characters, with the matched rules (role tags, hidden Unicode, encoded payloads) and a model's view. Costs 0.004 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesthe untrusted text to check, up to 4,000 characters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_injection_check payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_injection_check
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, it discloses the three return classifications, the 4,000-char input cap, the matched-rule categories, and — critically — the per-call cost and payment rails (x402, USDC on five chains). Cost and billing model are behavioral facts annotations cannot express.

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

Conciseness5/5

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

Three sentences, front-loaded with the usage trigger, then return semantics, then cost. Every clause adds decision-relevant information with no filler.

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

Completeness5/5

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

An output schema exists, yet the description still summarizes the verdict taxonomy, and it adds the cost dimension an agent must budget for. Nothing needed to call this single-parameter, read-only tool correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% for the single 'text' parameter, and the description's only parameter detail (the 4,000-character limit) merely restates the schema. Baseline 3 applies since the schema already does the documentation work.

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

Purpose5/5

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

States a specific verb (screened) and resource (untrusted text for prompt-injection attempts) with clear scope. It is trivially distinguishable from siblings like get_sanctions_check or get_honeypot_check, which screen different artifacts.

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

Usage Guidelines4/5

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

The opening 'Use when an agent needs untrusted text screened for prompt-injection attempts' gives a concrete trigger condition. It does not name when-not-to-use or an alternative sibling, but no sibling overlaps enough to require exclusion.

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

get_insider_tradesInsider tradesA
Read-onlyIdempotent
Inspect

Use when an agent needs what a company's insiders bought and sold. Returns one row per transaction from the company's recent SEC Form 4 filings: insider, role, transaction code and meaning, shares, price, value, shares owned after and date, plus open-market buy and sale totals for the window. Source: SEC EDGAR Form 4 filings. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNolook-back window in days, 1-180, default 30
tickerYesa US-listed ticker, e.g. NVDA, TSLA

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_insider_trades payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_insider_trades
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), but the description adds behavior they don't: a per-call cost of 0.01 USDC, the x402 payment mechanism, and accepted chains. It also discloses the row-level grain and the aggregate buy/sale totals, which is real behavioral context beyond 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.

Conciseness5/5

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

Two sentences, front-loaded with the use case, then the return shape, then source and cost. Every clause is load-bearing; no filler.

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

Completeness5/5

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

With an output schema present, return values need not be explained, yet the description still sketches them; the cost/payment caveat and data source are surfaced. An agent has everything needed to decide and call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both ticker and days are already documented with ranges and defaults. The description only alludes to the window ('for the window') without adding format or boundary detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('what a company's insiders bought and sold') and pins the exact data source (SEC Form 4 filings, one row per transaction). This cleanly separates it from siblings like get_sec_filings and get_sec_8k, which cover different filing types.

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

Usage Guidelines4/5

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

Opens with an explicit trigger condition ('Use when an agent needs what a company's insiders bought and sold'), which is clear routing guidance. It does not name an alternative tool or state when-not-to-use, so it falls short of the top score.

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 floorA
Read-onlyIdempotent
Inspect

Jito tips sampled on-chain: p25 to p99 in SOL of the newest transfers into Jito's tip accounts, what landed bundles actually paid, refreshed every 5 minutes, with a landing recommendation. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_jito_tips payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_jito_tips
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare this is a safe, idempotent read, so the bar is lower, yet the description still adds two behaviors annotations cannot express: a 5-minute refresh cadence (data staleness) and a 0.005 USDC per-call charge via x402 on five named chains (payment/auth requirement). Both are decision-relevant before an agent commits to calling.

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

Conciseness5/5

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

One sentence, front-loaded with the data content (percentile range, unit, source, cadence) and only then the cost clause. No filler and nothing redundant with the schema or annotations.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and the description supplies the non-obvious operational facts an agent needs: freshness window and payment requirement. Nothing material is missing for a zero-parameter read tool.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly spends no words on inputs.

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

Purpose5/5

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

The description states a specific resource and scope: 'Jito tips sampled on-chain: p25 to p99 in SOL of the newest transfers into Jito's tip accounts.' It also distinguishes the data source from a generic fee feed by specifying 'what landed bundles actually paid' and a refresh cadence, which is enough to separate it from siblings like get_priority_fees.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the mention of 'a landing recommendation' signals the tool is for sizing tips to land bundles, but there is no explicit when-to-use or when-not-to-use guidance and no sibling is named as an alternative. The agent must infer the context from the resource itself.

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

get_last_liquidationLast liquidationA
Read-onlyIdempotent
Inspect

FREE taster: last liquidation for SOL, BTC, ETH, XRP and DOGE (15-min delayed). Real-time via get_recent_liquidations. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_last_liquidation payload
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_feedLiquidation pressure feedA
Read-onlyIdempotent
Inspect

Use when an agent needs liquidation pressure as it happens. Returns 5-second buckets per symbol of long and short USD liquidated across venues, the dominant side and pressure against the symbol's own baseline, from a gap-free cursor. Calls are paced per caller: one every 5 seconds (one bucket) for an x402 payer or a prepaid pack key, one every 10 seconds for a pass key, except while an answer says has_more; a call that comes too early is a 429 with Retry-After and is never billed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
nextNothe `next` value of the previous answer; send it back unchanged to continue with no gap and no repeat
sinceNofirst call only: start time in milliseconds since the epoch, up to 24 h back; omit to begin 2 minutes back
symbolsNocomma list of up to 20 symbols, e.g. BTC,ETH,SOL or BTCUSDT,ETHUSDT (default SOL,BTC,ETH,XRP,DOGE)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liq_feed payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_feed
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent/openWorld annotations by disclosing per-caller pacing (1 bucket per 5s for x402/prepaid pack, 1 per 10s for pass keys, except while has_more), the 429 + Retry-After behavior for early calls, the fact that rejected calls are never billed, the per-call price of 0.001 USDC, and the accepted payment chains. These are exactly the operational traits 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.

Conciseness4/5

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

Purpose is front-loaded in the first sentence, followed by payload, then pacing/billing. The pacing sentence is a long run-on but every clause (intervals, exception, 429, no billing, price, chains) carries distinct information, so little is wasted.

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

Completeness5/5

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

For a paid, rate-limited streaming feed this covers the essentials an agent must know: what each bucket contains, cursor continuity, rate limits per key type, error handling, and cost. An output schema exists, yet the description still summarizes the shape usefully without being redundant.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents next, since, and symbols with format and defaults. The description only alludes to the cursor ('from a gap-free cursor') and adds no syntax, ordering, or constraint detail beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('liquidation pressure feed') and details the payload precisely: 5-second buckets per symbol of long/short USD liquidated across venues, dominant side, and pressure versus the symbol's baseline. However, it never distinguishes itself from closely-named siblings such as get_liq_pulse, get_recent_liquidations, or get_liq_history, so an agent cannot route between them from this text alone.

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

Usage Guidelines4/5

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

'Use when an agent needs liquidation pressure as it happens' gives a clear real-time trigger and implicitly separates it from the historical siblings by temporal framing. It stops short of naming alternatives or stating when NOT to use it (e.g. for historical backfill use get_liq_history), so the routing is implied rather than explicit.

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

get_liq_heatmapLiquidation heatmapA
Read-onlyIdempotent
Inspect

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. BTC, ETH, SOL, HYPE or any other USDT perp on our multi-venue liquidation tape. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNolookback 1-168, default 24
symbolNoBTC, ETH, SOL, HYPE or any USDT perp e.g. BTCUSDT (default SOLUSDT)
bucketsNoprice buckets 5-50, default 20

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liq_heatmap payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_heatmap
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already carry readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds beyond them: per-call cost (0.02 USDC via x402 on several chains) which is critical invocation context, and data provenance ('real liquidation prints, not entry-price estimates'). It also enumerates returned fields (USD, prints, long/short split, hottest zone flagged).

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

Conciseness4/5

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

Front-loaded with the core purpose and scope, then layered with data fields, provenance, symbols, and cost. Every sentence carries information, though promotional phrasing ('where leverage actually got flushed', 'not entry-price estimates') is slightly padded.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and annotations cover safety; the description still supplies the payment model, provenance, and symbol universe. The only notable gap is explicit sibling routing in a crowded liquidation-tool family.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents hours, symbol, and buckets with ranges and defaults. The description only echoes the symbol options and the N-hour lookback, adding no format or constraint detail beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The opening clause states a specific verb+resource and scope: 'Liquidation heatmap by PRICE LEVEL'. The emphasis on price-zone bucketing implicitly differentiates it from the many sibling feed/history/stats liquidation tools, though it never names a specific alternative sibling like get_liq_feed or get_liq_history.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the agent can infer this is for viewing flushed leverage by price over an N-hour window, but there is no explicit 'use this instead of X when...' routing despite a large cluster of competing liquidation tools. The 'last N hours' framing hints at a time-scoped context but no exclusions are given.

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

get_liq_historyLiquidation historyA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNolookback 1-168, default 24
scopeNoall = whole universe
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)
bucket_minNobucket minutes 5-1440, default 60

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liq_history payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_history
toolYesthe tool that produced this payload

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds genuinely useful non-annotation behavior: a paid x402 call costing 0.05 USDC per call across specific chains, the underlying data source (Bybit), and a hard 7-day retention limit. It does not mention rate limits or failure modes, 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.

Conciseness4/5

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

Purpose, granularity, and scope are front-loaded in the first sentence, with cost and payment details last. The middle sentence ('Bybit is the only complete liq tape in crypto and no exchange publishes history of it') is promotional and contributes little to tool selection, a minor deduction from an otherwise tight three-sentence entry.

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

Completeness5/5

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

With an output schema present, return values need not be explained, and annotations carry the safety profile; both are handled by structured fields. The description covers the remaining gaps an agent needs: data source, lookback ceiling, scope options, and the payment requirement. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100%: hours, scope, symbol, and bucket_min all carry ranges, defaults, and examples. The description only restates scope semantics ('any USDT perp or the whole recorded universe') and the 7-day cap, which duplicate the schema rather than extend it. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource plus granularity and output contents: 'Liquidation history, time-bucketed: total, long and short USD, prints and biggest print per bucket.' The scope ('any USDT perp or the whole recorded universe') and depth ('up to 7 days back') are explicit. It never names or contrasts a sibling (e.g., get_liq_feed, get_liq_pulse, get_liquidation_stats), so the differentiation is implicit at best.

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

Usage Guidelines3/5

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

The 'up to 7 days back' horizon and the 'history, time-bucketed' framing imply this is the retrospective tool rather than a live feed, which is weak implied guidance. No when-to-use, when-not, prerequisites, or named alternatives are given, so an agent must infer its place among the many liq siblings.

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

get_liq_pulseLiquidation pulseA
Read-onlyIdempotent
Inspect

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. If our recording is stale it answers 503 and is never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liq_pulse payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liq_pulse
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them: it discloses the stale-data failure mode (503, never billed), the exact per-call cost (0.005 USDC), and the x402 payment rails (USDC on Solana, Base, Polygon, Arbitrum, Arc). Billing and failure semantics are exactly the behavioral context an agent needs before calling a paid endpoint.

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

Conciseness5/5

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

Three sentences, front-loaded with the use case, then what is returned, then failure/billing terms. Every clause carries distinct information and nothing is repeated from the schema or annotations.

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

Completeness5/5

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

An output schema exists, so return shape needs no elaboration, yet the description still summarizes the payload (total USD, long/short split, prints, top 5 symbols). Combined with cost, payment options, and stale handling, an agent has everything needed to decide and invoke correctly.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify and it correctly does not invent any input surface. The stated scope (60-minute window, all USDT perps) effectively documents the implicit query dimensions.

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

Purpose4/5

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

The description names a specific verb and resource ('what is being liquidated right now') and pins the scope tightly: last 60 minutes, every USDT perp, with total USD, long/short split, prints and top 5 symbols. That is enough to distinguish it from broader history tools, though it never names a sibling explicitly despite the crowded liq_* family (get_liq_feed, get_last_liquidation, 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.

Usage Guidelines3/5

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

'Use when an agent needs to know what is being liquidated right now' gives a clear trigger, but there is no when-not and no comparison against the many near-identical siblings (get_liq_feed, get_recent_liquidations, get_last_liquidation, get_liq_history). The 'right now' framing implies recency-scoped usage but leaves the agent to infer which liquidation tool to pick.

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

get_liquidation_leadersLiquidation leaderboardA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNotop N symbols, 1-50, default 10
window_minNolookback minutes, 5-1440, default 60

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liquidation_leaders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_leaders
toolYesthe tool that produced this payload

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent and open-world, so the safety profile is covered. The description adds genuinely useful context beyond them: a per-call cost of 0.02 USDC settled via x402 across five named chains, plus which venues are aggregated and what each row contains. It does not mention rate limits or data freshness/lag, which would have pushed it to 5.

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

Conciseness4/5

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

Three sentences, front-loaded with the core capability and the scope constraint before the payoff line and the payment detail. The rhetorical opener 'What is blowing up RIGHT NOW' costs a few words but is short enough not to bury the substance.

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

Completeness5/5

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

With an output schema present, return values need not be explained, and the description still usefully enumerates the per-symbol fields. Combined with full parameter documentation, annotation coverage and explicit payment/coverage details, an agent has everything needed to select and call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% – both limit (1-50, default 10) and window_min (5-1440, default 60) are fully documented with ranges and defaults. The description adds no additional semantics for either parameter, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource (top symbols ranked by liquidation USD) and constrains scope precisely: 'every USDT perp we record on Bybit, OKX and Binance'. The ranking framing clearly separates it from siblings like get_liq_feed, get_recent_liquidations and get_liq_heatmap, which are feeds/views rather than leaderboards.

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

Usage Guidelines3/5

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

The line 'The fastest read on where leverage is being flushed' implies a use case, but there is no explicit when-to-use vs when-not guidance and no sibling alternative is named (e.g. get_liq_pulse or get_cascade_alert for other angles). Usage 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_liquidation_statsLiquidation statsA
Read-onlyIdempotent
Inspect

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.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_liquidation_stats payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_liquidation_stats
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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 adds substantive context annotations cannot: this is a x402-metered call costing 0.01 USDC, settled on five named chains. That payment/authorization requirement is exactly the kind of operational fact an agent must know before invoking. It omits data freshness/caching and any rate limit, hence not 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.

Conciseness5/5

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

A single dense sentence that front-loads what is returned and closes with the cost, which is the one fact an agent might otherwise discover only after failing. No filler, no restatement of the title.

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

Completeness4/5

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

An output schema exists, so return-shape explanation is not required; the description nonetheless summarises the metrics, which helps selection. Cost and chain coverage are disclosed. What is missing is sibling disambiguation in a namespace crowded with liquidation tools and any note on update cadence for the 1h/24h windows.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has nothing to document and the baseline is 4. The description correctly does not invent parameters, and instead spends its words on the fixed dimensions of the response (windows, split, exchange breakout) — the right allocation for a no-arg call.

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

Purpose4/5

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

States a specific verb+resource and enumerates the exact payload: 1h/24h totals, longs vs shorts USD split, biggest print, per-exchange breakout for the five named majors. That scoping ('the 5 majors') is genuinely differentiating. It stops short of naming which sibling it displaces, so an agent still has to guess between this and get_liq_pulse / get_liquidation_leaders / get_liq_feed.

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

Usage Guidelines3/5

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

Usage is only implied: the coverage/resolution described (aggregate 1h/24h windows on majors) hints at a summary use case, but there is no explicit 'use this instead of X when Y' and no exclusions against the eight other liquidation siblings. The cost disclosure ('0.01 USDC per call') does usefully signal a paid-vs-free routing decision, which is closer to guidance than most tools get.

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

get_macro_calendarMacro calendarA
Read-onlyIdempotent
Inspect

FOMC, CPI, NFP and PCE calendar for traders: the next Fed rate decisions and the CPI, nonfarm payrolls and PCE release dates with UTC times converted from New York time (DST-aware), each with its official Fed, BLS or BEA source URL and the time we verified it. Read daily from the agencies' own pages and never entered by hand; data verified more than 35 days ago answers 503 and is never charged. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNodays ahead, 1-400, default 90
typeNocomma list of FOMC, CPI, NFP, PCE (default all)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_macro_calendar payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_macro_calendar
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Adds rich context far beyond the read-only/idempotent annotations: data is pulled daily from Fed/BLS/BEA pages and never hand-entered, records verified more than 35 days ago return 503 and are never charged, and DST-aware conversion is documented. Freshness and billing failure behavior are exactly the non-obvious traits an agent needs.

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

Conciseness4/5

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

Front-loaded with the resource and its contents, then behavior and cost. Efficient overall, though the first sentence is dense and the pricing/solana-chain detail could be trimmed without losing call-relevant meaning.

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

Completeness5/5

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

An output schema exists, so return shape needn't be described; the description instead covers the things schema cannot: data provenance, freshness cutoff, failure semantics, and payment cost. Complete for a monetized external-data tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 'days' (range/default) and 'type'. The description names the event categories (FOMC, CPI, NFP, PCE) matching the type parameter but adds no syntax, format, or interaction detail beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific resource (FOMC, CPI, NFP, PCE calendar) with the exact contents: next Fed rate decisions, release dates, UTC times converted from NY time, source URLs, and verification timestamps. No sibling tool competes with a macro-event calendar, so no differentiation is needed. An agent immediately knows what it returns.

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

Usage Guidelines3/5

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

'For traders' gives an implicit audience but there is no explicit when-to-use, when-not-to-use, or named alternative. With no competing sibling, the gap is smaller, but the description still leaves usage conditions to inference.

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

get_market_snapshotMarket snapshotA
Read-onlyIdempotent
Inspect

SOL+BTC prices, funding rates, and Fear & Greed in one call. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_market_snapshot payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_market_snapshot
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds a genuinely useful behavioral fact beyond the structured fields: this is a paid call costing 0.005 USDC via x402 and the accepted payment chains, which an agent must know 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.

Conciseness5/5

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

Two short sentences, front-loaded with what the tool returns and reserving the second for cost. No filler, no redundancy.

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

Completeness4/5

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

An output schema exists so return values need not be explained, and the description covers both content and payment cost. Complete for a zero-parameter, paid read tool, with only the deliberate sibling-routing guidance left implicit.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a no-param tool applies. The description correctly avoids inventing parameter guidance.

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

Purpose4/5

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

The description names a specific verb-implied resource (a market snapshot) and enumerates its exact contents: SOL+BTC prices, funding rates, and Fear & Greed. The phrase 'in one call' distinguishes it from the single-purpose siblings (get_btc_price, get_sol_price, get_fear_greed, get_funding_rate), though it never explicitly names them.

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

Usage Guidelines3/5

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

'In one call' implies this is a bundle useful when several of these datapoints are needed at once, which is reasonable implied guidance. However there is no explicit statement of when to prefer this aggregate over the individual sibling tools, nor any when-not-to-use condition.

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

get_market_stateMarket stateA
Read-onlyIdempotent
Inspect

Market state for BTC, ETH, SOL or HYPE in one call: spot and the perp's basis against the Hyperliquid oracle, realized vol 7d and 30d, funding with its 30-day z-score, open interest and its changes, the top Hyperliquid accounts' net-long share, liquidations 1h and 24h by side, Fear and Greed, the next FOMC or CPI release, and flags with stated thresholds. Every part carries its source and as-of time; a part we do not hold is null with a reason. When nothing of the market itself could be built it answers 503 and is never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoBTC (default), ETH, SOL or HYPE

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_market_state payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_market_state
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses per-part source and as-of timestamps, that missing parts are null with a reason, that a total build failure returns 503 and is never billed, and the exact price and payment rails (0.02 USDC via x402 on Solana/Base/Polygon/Arbitrum/Arc). These are exactly the cost, failure, and data-provenance facts 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.

Conciseness4/5

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

The opening content inventory is long but earns its length by letting an agent judge coverage at a glance, and the operational facts (nulls, 503, billing) are packed into short trailing sentences. Slight density cost, but front-loaded and waste-free.

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

Completeness5/5

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

With an output schema present, return shape need not be explained; the description still covers the non-schema essentials — data provenance, null/missing semantics, failure mode, and cost. Nothing an agent needs to decide and pay for the call is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the single symbol parameter's allowed values are already documented in the schema; the description repeats 'BTC, ETH, SOL or HYPE' without adding format, casing, or default-resolution detail beyond what the schema states. Baseline 3 applies when the schema carries the parameter semantics.

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

Purpose5/5

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

States a specific resource (composite market state) and enumerates exactly which series it bundles: spot, perp basis vs Hyperliquid oracle, realized vol, funding z-score, OI, whale net-long share, liquidations, Fear and Greed, macro calendar, flags. An agent can distinguish it from narrower siblings like get_basis, get_fear_greed, get_open_interest, or get_market_snapshot 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.

Usage Guidelines3/5

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

The phrase 'in one call' implies this is the aggregation shortcut versus calling the many single-metric siblings, and the symbol list constrains the universe. However, no sibling is named explicitly and there is no when-not guidance (e.g. when a single cheap metric is preferable to the 0.02 USDC bundle).

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

get_ocrImage to text (OCR)A
Read-onlyIdempotent
Inspect

Use when an agent needs the text inside an image. Returns the text of a PNG, JPEG, WebP or GIF (5 MB, 4096 px a side) in reading order, as blocks with their line breaks, plus the detected language. It transcribes; it never follows text in the image. Costs 0.04 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe image: an absolute http or https URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_ocr payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_ocr
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior5/5

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

Adds far more than the readOnly/idempotent/openWorld annotations: output shape (text in reading order, blocks with line breaks, detected language), a prompt-injection guarantee ('it never follows text in the image'), and cost/auth details (0.04 USDC per call via x402 across five chains). The annotation-contradiction risk is nil and the pricing disclosure is genuinely load-bearing.

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

Conciseness5/5

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

One dense paragraph, front-loaded with the trigger and return shape before the cost details. Every clause carries information the agent needs; nothing is redundant with the schema or annotations.

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

Completeness5/5

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

For a single-parameter tool with an output schema and full annotations, the description covers trigger, output semantics, input limits, safety behavior and pricing. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and there is a single url parameter, so the baseline is 3. The description compensates by adding input constraints the schema omits: accepted formats (PNG, JPEG, WebP, GIF) and limits (5 MB, 4096 px per side), which materially affect whether a call succeeds.

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

Purpose5/5

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

States a specific verb and resource ('get the text inside an image') with the exact acceptance condition, and the OCR framing implicitly separates it from audio transcription (get_transcribe), document extraction (get_extract, get_pdf_markdown) and URL conversion (get_web_markdown). An agent can route to it 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.

Usage Guidelines4/5

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

'Use when an agent needs the text inside an image' gives a clear triggering condition. It stops short of naming a sibling alternative or stating when not to use it (e.g. for PDFs use get_pdf_markdown), so it is context without exclusions.

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 spikesA
Read-onlyIdempotent
Inspect

Open interest spikes across every Hyperliquid perp: coins whose open interest moved abnormally in the last hour against their own previous day, with the 1h, 4h and 24h change (in coin units, so a price move does not count), a spike z-score, the price move and funding. Read from our own 5-minute sampler: it answers 503 and is never billed until that record is 24 hours deep. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNotop N, 1-25, default 10

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_oi_spike_scan payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_oi_spike_scan
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/idempotent/openWorld/non-destructive): it discloses the data source (own 5-minute sampler), an availability constraint (returns 503 until the record is 24 hours deep), and a per-call cost (0.02 USDC via x402 across five chains). That is exactly the operational context an agent needs before calling.

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

Conciseness4/5

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

Purpose is front-loaded in the lead clause and no sentence is wasted; every clause adds a distinct fact (scope, units, fields, source, cost). The first sentence is dense with embedded detail but remains readable and information-efficient.

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

Completeness5/5

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

With an output schema present and annotations covering the safety profile, the description fills the remaining gaps an agent needs: what makes a spike, units that isolate OI from price, the sampler's freshness caveat, and the billing model. Complete for a single-parameter, read-only tool.

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

Parameters3/5

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

Only one parameter (limit), fully documented in the schema at 100% coverage, so the schema carries the burden. The description adds nothing about the limit parameter's meaning or defaults, making the baseline 3 correct.

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

Purpose5/5

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

States a specific resource (open interest spikes across every Hyperliquid perp) and precisely scopes it: coins whose open interest moved abnormally in the last hour relative to their own previous day. It then lists the returned fields (1h/4h/24h change in coin units, z-score, price move, funding), which clearly differentiates it from siblings like get_open_interest that return raw levels.

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

Usage Guidelines3/5

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

The description makes the use case inferable (surfacing abnormal OI moves), but never explicitly says when to pick this over get_open_interest, get_funding_extremes, or get_squeeze_score. No exclusions or alternative routing are given, so the agent must infer the appropriate context.

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

get_open_interestOpen interestA
Read-onlyIdempotent
Inspect

Open interest for ANY Hyperliquid perp: OI in base units and in USD with the mark price, and its 1h and 24h change from our own 5-minute sampler (null until that record reaches back so far). /api/positioning adds the whale net-long share for SOL and BTC. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_open_interest payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_open_interest
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful non-schema behavior: null semantics for 1h/24h change until the sampler has enough history, the data's provenance (own 5-minute sampler), and the per-call cost of 0.01 USDC via x402 with the accepted chains.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core capability before the provenance detail and pricing. No filler, though the payment-chain enumeration is dense enough to slightly dilute the main point.

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

Completeness4/5

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

An output schema exists so return fields need not be explained, and the description still covers data source, null behavior, and cost. What is missing is rate-limit or caching behavior for a paid endpoint, but the core is complete for a single-optional-param read tool.

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

Parameters3/5

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

Schema coverage is 100% and the single symbol parameter is already documented with format examples and a default in the schema. The description adds only the scoping phrase 'ANY Hyperliquid perp', so the baseline 3 is appropriate.

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

Purpose5/5

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

The description names the specific resource (open interest for ANY Hyperliquid perp) and enumerates the exact outputs: OI in base units and USD with mark price, plus 1h and 24h change from a documented 5-minute sampler. This distinguishes it from siblings like get_oi_spike_scan and get_positioning without the agent needing to open any schema.

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

Usage Guidelines3/5

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

Usage is implied (query perp OI) and the description usefully notes that /api/positioning adds whale net-long share for SOL and BTC, which hints at an alternative. However, it never explicitly states when to prefer this tool over get_oi_spike_scan or the get_positioning tool, nor any exclusions.

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

get_orderbook_imbalanceOrderbook imbalanceA
Read-onlyIdempotent
Inspect

Orderbook imbalance for any Hyperliquid 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
bpsNowindow ±bps around mid, 5-500, default 50
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_orderbook_imbalance payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_imbalance
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world access, so the safety profile is covered. The description adds genuinely new behavioral context the annotations cannot express: a paid endpoint at 0.01 USDC per call via x402, with the accepted settlement chains enumerated. It does not mention rate limits or failure behavior, but the payment requirement is the key operational fact.

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

Conciseness4/5

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

Front-loaded with the core measurement, then a compact second sentence for the cost and payment rails. Information-dense with no filler; the first sentence is long but each clause contributes a distinct output field.

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

Completeness4/5

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

An output schema exists, so return-field documentation is not required, and the description covers what is measured, the venue scope, the default symbol, and the cost model. The notable remaining gap is routing relative to the many overlapping market-data siblings.

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

Parameters3/5

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

Schema description coverage is 100% with only two params, both already documented with ranges and defaults, so the schema does the heavy lifting. The description's '±N bps of mid' framing reinforces the bps semantics but adds no syntax, units, or edge-case detail beyond what the schema states.

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

Purpose5/5

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

States a specific metric (orderbook imbalance), the underlying computation (resting bid/ask liquidity in USD within ±N bps of mid), and the derived outputs (ratio and skew read) for a named venue universe (Hyperliquid perps). An agent can distinguish this from sibling get_orderbook_walls without opening either schema.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance, and no alternatives named despite many closely related siblings (get_orderbook_walls, get_perp, get_market_snapshot). The only decision-relevant fact offered is the per-call cost, which is pricing rather than routing guidance.

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

get_orderbook_wallsOrderbook wallsA
Read-onlyIdempotent
Inspect

Orderbook walls for any Hyperliquid 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNowalls per side, 1-15, default 5
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_orderbook_walls payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_orderbook_walls
toolYesthe tool that produced this payload

TDQS

A4/5.0
Behavior4/5

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 burden is lower. The description adds genuinely useful non-schema context: a pay-per-call cost of 0.01 USDC via x402 and the accepted settlement chains, which is essential for an agent to invoke it successfully.

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

Conciseness5/5

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

Two tight sentences with zero filler: the capability and its output shape come first, the payment terms second. Every clause earns its place.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the schema covers inputs. The pricing/payment requirement is surfaced, which is the main non-obvious prerequisite. The only gap is routing guidance relative to the orderbook/imbalance siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (top, symbol) are already fully documented with ranges and defaults. The description adds no parameter-level syntax or constraints beyond the schema; the 'distance from mid' detail describes output rather than inputs. Baseline 3 applies.

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

Purpose5/5

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

States a specific resource (orderbook walls), scopes it (Hyperliquid perps), and defines what a wall is ('largest resting orders on each side of the book, with USD size and distance from mid'). This clearly separates it from sibling get_orderbook_imbalance, which measures aggregate imbalance rather than discrete large orders.

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

Usage Guidelines3/5

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

The description implies the use case (finding large resting liquidity on Hyperliquid perps) but never states when to choose this over get_orderbook_imbalance or other book-derived siblings, nor any prerequisites beyond the pricing note.

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

get_paperPaper by DOIA
Read-onlyIdempotent
Inspect

Use when an agent needs the paper behind a DOI. Returns title, year, authors, venue, citation count, open-access URL and the abstract where OpenAlex holds it (CC0 data). The DOI goes in the path as written, slash included: /api/paper/10.1038/nature14539. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
doiYesa DOI such as 10.1038/nature14539, sent in the path as written (its slash as %2F also works)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_paper payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_paper
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive, open-world behavior, and the description goes well beyond them: it discloses the 0.005 USDC per-call x402 cost with the accepted chains, the CC0 data source, and the caveat that the abstract is only present where OpenAlex holds it. This is exactly the payment/coverage context an agent needs before invoking a paid tool.

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

Conciseness4/5

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

Three front-loaded sentences that move from trigger to payload to invocation format to cost. Slightly redundant on the DOI path detail, which the schema already covers, but nothing is wasted.

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

Completeness5/5

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

An output schema exists, so return values need no elaboration, and the description still flags the abstract-coverage caveat. Combined with the explicit pricing model and path formatting, an agent has everything needed to call this correctly on the first attempt.

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

Parameters3/5

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

With a single parameter at 100% schema coverage, the schema already documents the DOI format including the %2F alternative. The description's path example ('/api/paper/10.1038/nature14539') restates that without adding new semantics, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('the paper behind a DOI') and the exact return payload. However, it never distinguishes itself from the sibling get_papers, so an agent choosing between the singular and plural tools gets no help from the description.

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

Usage Guidelines4/5

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

'Use when an agent needs the paper behind a DOI' gives a clear trigger condition. It lacks any when-not guidance or explicit routing to get_papers, but the usage context itself is unambiguous.

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

get_papersPaper searchA
Read-onlyIdempotent
Inspect

Use when an agent needs scholarly papers on a topic. Returns OpenAlex works (CC0 data) for a search: title, year, DOI, authors, venue, citation count and open-access link, up to 25, optionally from a given year. Cached 24 hours. Costs 0.015 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesthe search text, up to 200 characters
limitNopapers returned, 1-25, default 10
year_fromNoearliest publication year, e.g. 2022

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_papers payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_papers
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description usefully adds caching ('Cached 24 hours'), a per-call price and payment rails (x402, USDC on five chains), and the CC0 licensing of the data. That is real operational context beyond the annotations, though it says nothing about failure modes, rate limits, or payment failure handling.

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

Conciseness4/5

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

Three tight sentences with the usage trigger front-loaded, followed by return shape, then cost/caching. The field enumeration and payment-rail list make it dense but nothing is filler.

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

Completeness4/5

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

With an output schema present, the description need not explain return values, yet it still does so succinctly; cost, cache lifetime and data source are all covered. The one gap is sibling disambiguation from get_paper, which is material for an agent choosing among 80+ tools.

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

Parameters3/5

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

Schema description coverage is 100%, so q, limit and year_from are already documented with ranges and defaults. The description only restates 'up to 25' and 'optionally from a given year' without adding syntax or format detail, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('scholarly papers on a topic' returning 'OpenAlex works') and enumerates the returned fields, so the purpose is unambiguous. However, it never distinguishes itself from the sibling 'get_paper' (singular), leaving the agent to infer which of the two to pick.

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

Usage Guidelines4/5

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

'Use when an agent needs scholarly papers on a topic' gives clear triggering context, and the description hints at scoping via 'optionally from a given year'. There are no exclusions or named alternatives, notably the singular get_paper sibling, so the routing guidance stops 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_pdf_markdownPDF to markdownA
Read-onlyIdempotent
Inspect

Use when an agent needs the text of a PDF as markdown. Returns the text of the one PDF URL you pass, page by page as markdown, with title, page count and word count. http or https, 10 MB, 10 s; robots.txt honoured and private addresses refused. A file that is not a PDF, a PDF with no text layer (a scan), or an unreachable URL, is never charged. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe PDF to convert: an absolute http or https URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_pdf_markdown payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_pdf_markdown
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations by stating hard operational limits (http/https, 10 MB, 10 s), the robots.txt and private-address policy, the failure modes that are not charged, and the exact cost and payment rails. For an openWorld, paid network call this is exactly the context an agent needs.

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

Conciseness4/5

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

Front-loaded with the use case, then constraints, then pricing, so the most decision-relevant content comes first. It is dense but every clause carries distinct information (limits, policy, cost), with only minor overlap between 'http or https' and the schema.

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

Completeness5/5

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

With an output schema present the return shape needn't be spelled out, yet the description still summarizes it (title, page count, word count). Combined with annotations covering safety and the description covering limits, policy, failure handling and payment, nothing required to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and there is a single parameter whose format is already documented as an absolute http/https URL. The description's 'the one PDF URL you pass' essentially restates the schema, adding no syntax beyond it, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific action and resource ('the text of a PDF as markdown') so the agent immediately knows the input type and output format. It implicitly distinguishes itself from web-markdown siblings by being PDF-specific, but never names an alternative tool for contrast.

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

Usage Guidelines4/5

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

Opens with an explicit when-to-use trigger ('Use when an agent needs the text of a PDF as markdown') and identifies the failure case of a scanned PDF with no text layer. It does not, however, route that case explicitly to a sibling such as get_ocr.

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 pegA
Read-onlyIdempotent
Inspect

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; the token price is read on-chain. latest.reference is null: the underlying's reference price is not returned (its source does not allow redistribution), only the deviation computed from it. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNolookback 1-168, default 24
symbolYesTokenized equity symbol e.g. CRCLx, MSTRx, COINx

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_peg_deviation payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_deviation
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the read-only/idempotent/openWorld annotations: it discloses sampling cadence (every 5 minutes), data provenance (token price read on-chain by our own collector), a key data caveat (latest.reference is null because the underlying source forbids redistribution), and a per-call payment requirement with accepted chains. These are exactly the operational traits an agent cannot get from annotations or schema.

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

Conciseness4/5

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

Front-loads purpose in the first clause before the qualifications, and every clause carries real information (unit, cadence, null caveat, cost). It is dense and could be split for readability, but there is no filler.

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

Completeness5/5

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

With an output schema present, return values needn't be explained, and the description still pre-empts a likely confusion by flagging that latest.reference comes back null. Cadence, provenance, unit, and cost are all covered, leaving nothing an agent needs to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both params (symbol with examples, hours 1-168 default 24) are documented in the schema, so the description need not restate them. It adds no syntax or format detail beyond the schema, so baseline 3 applies; it does implicitly confirm the symbol refers to tokenized equities.

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

Purpose5/5

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

Names a specific verb+resource ('peg deviation'), names the counterparties being compared (on-chain DEX price of a tokenized US equity vs the underlying's last real trade), and specifies the unit (bps). An agent can distinguish this from sibling peg tools (get_peg_sessions, get_peg_universe) and from get_equity_24h.

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

Usage Guidelines3/5

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

Usage context is implied: it's a Solana tokenized-equity deviation metric, and the cost line signals a paid call to be used deliberately. However, it never states when to prefer this over the obvious siblings (get_peg_sessions, get_peg_universe, get_equity_24h), so routing remains an inference.

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 sessionA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNolookback 1-30, default 7
symbolYesTokenized equity symbol e.g. CRCLx, MSTRx, COINx

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_peg_sessions payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_sessions
toolYesthe tool that produced this payload

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, covering the safety profile. The description adds genuinely new operational context: the 0.03 USDC x402 charge and the accepted payment chains (Solana, Base, Polygon, Arbitrum, Arc), plus the specific statistics returned and the flagged worst off-hours window.

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

Conciseness4/5

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

A single dense sentence with the headline (peg by session) front-loaded, followed by the breakdown and then the cost caveat. Every clause carries information, though the em-dash chain of sessions and measures is heavy for one sentence.

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

Completeness5/5

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

With an output schema present, the description doesn't need to enumerate return values, yet it still names the key measures and the control baseline, and it discloses the paid-call requirement. Nothing an agent needs to decide or invoke correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented inline (days lookback 1-30 default 7; symbol format e.g. CRCLx). The description adds no parameter-level detail at all, so the baseline 3 applies when the schema does all the work.

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

Purpose5/5

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

States the resource (tokenized stock peg) and the exact analytic cut (deviation broken out across open, premarket, afterhours, overnight, weekend) with the output measures named. This session-level breakout is what separates it from siblings like get_peg_deviation and get_peg_universe, so an agent can pick it 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.

Usage Guidelines3/5

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

It implicitly signals when session granularity matters by describing the off-hours breakdown and noting 'Market-open acts as the control,' which tells the agent how to read the result. However, it never states when to prefer this over get_peg_deviation or get_peg_universe, nor any prerequisites beyond the cost line.

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 rankingsA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNolookback 1-30, default 7
min_liquidity_usdNofilter out thinner pools

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_peg_universe payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_peg_universe
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, open world), and the description adds genuinely new operational context: a per-call cost of 0.05 USDC, the x402 payment mechanism, and the accepted chains. It also discloses a behavioral quirk of the result set (dead pools dropped instead of shown at parity), which would otherwise mislead an agent into thinking coverage is complete.

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

Conciseness4/5

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

Front-loaded with the resource and ranking basis, then the payment cost. Efficient overall, though the chain list is verbose and the opening sentence is a dense run-on that mixes scope, metrics, and exclusion policy.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the description covers scope, metric definitions, exclusions, and cost. It omits pagination/row-count limits for a universe-wide listing and does not say how fresh the data is relative to the days lookback.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (days, min_liquidity_usd) are already documented, and the description adds no syntax, units, or default detail beyond them — 'median liquidity' refers to an output metric, not the filter. Baseline 3 is appropriate when the schema carries the parameter burden.

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

Purpose4/5

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

States a specific verb (ranks/lists), a precise resource (every tokenized US equity tracked), and the metric basis (off-hours peg risk, p95/max deviation bps, market-open control, median liquidity). An agent can tell this is the universe-level peg ranking, but the description never names the closely-related siblings get_peg_deviation or get_peg_sessions, so differentiation relies on inference.

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

Usage Guidelines3/5

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

The exclusion policy ('dead pools are excluded rather than reported as perfect pegs') implies when this list is meaningful, but there is no explicit when-to-use or when-not-to-use statement and no routing to get_peg_deviation for single-token pegs. Usage 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_perpPerp snapshotA
Read-onlyIdempotent
Inspect

Use when an agent needs one perp market in a single call. Returns Hyperliquid funding and open interest (with 1h/24h change from our 5-minute sampler) and 24h liquidations with long/short split and biggest print from our own tape. A symbol nothing lists answers 400 and a failed read answers 503; neither is ever billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_perp payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_perp
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description goes well beyond them: it discloses error semantics (400 for an unlisted symbol, 503 for a failed read), billing behavior on those errors ('neither is ever billed'), a precise per-call price, and accepted payment rails. That is exactly the operational context an agent needs to decide 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.

Conciseness5/5

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

Four sentences, each carrying distinct information: when to use, what is returned, error/billing behavior, and cost. The use case is front-loaded and there is no padding or repetition of the title.

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

Completeness5/5

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

For a paid, composite read tool with an output schema and full annotations, the description covers invocation context, payload contents, failure modes, and pricing. Nothing an agent needs to call it correctly is missing, and return-value detail is appropriately deferred to the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the single `symbol` parameter is already documented with an example and a default. The description references the symbol concept only via the error case ('a symbol nothing lists') and adds no format or override guidance beyond the schema, so baseline 3 is correct.

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

Purpose4/5

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

States the resource ('one perp market') and enumerates the payload (Hyperliquid funding, open interest with 1h/24h change, 24h liquidations with long/short split). The phrase 'in a single call' implicitly positions it as the composite snapshot versus single-metric siblings like get_funding_rate or get_open_interest, but it never names those alternatives, so differentiation is left to inference.

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

Usage Guidelines3/5

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

'Use when an agent needs one perp market in a single call' is a genuine when-to-use trigger, and the 'single call' framing hints that it consolidates data otherwise spread across siblings. However, with dozens of related perp/funding/OI tools in the namespace, no explicit when-not or named alternative is given, leaving the routing decision implied.

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 positioningA
Read-onlyIdempotent
Inspect

SOL+BTC positioning on Hyperliquid: open interest with 1h/24h change and the top 250 accounts' net-long share (whale crowding). Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_positioning payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_positioning
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful non-annotation context: the 0.005 USDC per-call cost and the x402 payment rails (USDC on Solana, Base, Polygon, Arbitrum, Arc), which is important for an agent deciding whether to spend on a call.

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

Conciseness5/5

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

A single tight sentence that front-loads the returned data and ends with cost/payment. 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.

Completeness4/5

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

With a zero-param schema and an output schema present, the description need not explain return values. It covers what the tool computes and its cost/payment requirements, leaving only cross-tool routing to the reader.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to disambiguate; the zero-param baseline of 4 applies.

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

Purpose4/5

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

States a specific resource and scope: SOL+BTC positioning on Hyperliquid, broken down into open interest with 1h/24h change and the top 250 accounts' net-long share. An agent knows exactly what data it returns. It does not, however, distinguish itself from closely overlapping siblings like get_open_interest or get_hl_whales, 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.

Usage Guidelines2/5

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

The description never says when to reach for this tool versus the many sibling tools that surface open interest or Hyperliquid whale data. It states what the tool produces but provides no usage context or exclusions.

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 feesA
Read-onlyIdempotent
Inspect

Solana priority fees right now: percentiles from min to max of the per-slot minimum fee paid on the busiest SOL/USDC pools over the last ~150 slots, in micro-lamports per compute unit, with a recommended level. For bots that need their transactions to land. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_priority_fees payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_priority_fees
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and open-world traits, so the bar is lower; the description adds genuinely non-structured context: the data is a live "right now" snapshot over a ~150-slot window, and each call costs 0.005 USDC via x402 (USDC on Solana, Base, Polygon, Arbitrum or Arc). The paid/auth requirement is the kind of behavioral detail annotations cannot convey. It stops short of noting any rate limits or freshness guarantees.

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

Conciseness4/5

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

Three sentences, front-loaded with the definition of the metric before the audience and the price. Dense but every clause carries information; the parenthetical payment-network list is slightly bulky but justified for an x402 tool.

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

Completeness4/5

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

An output schema exists, so return structure is already covered. Given no input parameters, a rich output schema, and full annotation coverage, the description supplies everything else a caller needs: what the numbers mean, their units, freshness, and cost. Only the absence of alternative-tool routing keeps it from a 5.

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

Parameters4/5

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

There are zero input parameters, so the baseline is 4; there is nothing for the description to compensate for. It does add unit semantics (micro-lamports per compute unit) that frame how callers should read the tool's output.

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

Purpose5/5

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

States a specific resource (Solana priority fees) and then defines the measurement precisely: percentiles from min to max of per-slot minimum fee on the busiest SOL/USDC pools over ~150 slots, in micro-lamports per compute unit, plus a recommended level. An agent can distinguish it from the adjacent get_jito_tips sibling 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.

Usage Guidelines3/5

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

"For bots that need their transactions to land" gives an implied use context, which is real but thin. It names no alternative (notably get_jito_tips, which is the closest sibling for landing transactions via block-engine tips) and states no when-not condition, so the routing decision is left to inference.

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

get_qrQR codeA
Read-onlyIdempotent
Inspect

Use when an agent needs a QR code for a link, address or payment string. Returns an SVG or PNG (base64 and data URI) at error-correction level M, scaled for scanning. Input up to 2 KB; over that is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesthe text to encode, up to 2,048 bytes
formatNosvg (default) or png

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_qr payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_qr
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: error-correction level M, scan-appropriate scaling, the 2 KB input ceiling with a 400 response that is never billed, and per-call pricing in USDC via x402 across named chains. This is exactly the billing and failure-mode detail an agent needs before spending.

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

Conciseness5/5

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

Three sentences, front-loaded with the trigger condition, then the return format, then limits and cost. Every sentence carries distinct information with no redundancy.

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

Completeness5/5

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

An output schema exists, yet the description still names the return forms (SVG/PNG, base64 and data URI) and covers limits, error behavior, and pricing. Nothing an agent needs to call this correctly is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'data' and 'format' are already documented in the schema; the description's '2 KB' and 'SVG or PNG' merely restate them. Per the rubric, 100% coverage sets the baseline at 3 when the description adds no new parameter syntax.

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

Purpose5/5

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

States a specific verb and resource ('get a QR code') and narrows the use case to 'a link, address or payment string.' No sibling tool competes for this function, so the purpose is unambiguous without differentiation.

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

Usage Guidelines4/5

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

'Use when an agent needs a QR code for a link, address or payment string' gives clear usage context. There are no alternatives to route away from among the siblings, but no explicit when-not or exclusion is offered, 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_recent_liquidationsRecent liquidationsB
Read-onlyIdempotent
Inspect

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.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax rows, 1-100, default 25
scopeNocore = the 5 majors (default), all = every recorded USDT perp
symbolNoSOL, BTC, ETH, XRP, DOGE, or any USDT perp e.g. SXTUSDT (omit for majors)
min_usdNoonly prints >= this USD size

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_recent_liquidations payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_recent_liquidations
toolYesthe tool that produced this payload

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context the annotations lack: a 0.005 USDC per-call cost, the x402 payment mechanism and accepted chains, plus a completeness claim ('complete unthrottled tape'). It does not discuss rate limits or response shape, but the payment prerequisite is meaningful added value.

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

Conciseness4/5

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

Three tight sentences with no filler; the resource and its field list lead, followed by breadth and cost. Efficient and front-loaded.

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

Completeness3/5

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

An output schema exists, so return values need not be re-described, and cost/sources are covered. But for a no-required-param tool sitting in a dense cluster of liquidation siblings, the absence of routing guidance leaves the definition only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters with ranges, defaults and enum values. The description's 'not just majors' and 'any USDT perp' loosely map to scope and symbol but add no syntax or filtering detail beyond what the schema provides. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (recent perp liquidations) and enumerates the returned fields plus the venues covered (Bybit, OKX, Binance). However, it never distinguishes itself from the many sibling liquidation tools (get_liq_feed, get_last_liquidation, get_liq_history, get_liq_pulse), so an agent cannot tell which one to pick from the description alone.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no alternatives are named despite at least half a dozen sibling liquidation feeds. The only actionable context is the per-call price, which does not help an agent choose among tools.

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

get_sanctions_checkOFAC wallet screenA
Read-onlyIdempotent
Inspect

Use when an agent needs to screen a crypto wallet before paying or being paid. Returns an exact match of a Bitcoin, Ethereum, Tron, Solana or other address against the OFAC SDN list, with entry, program and list date. No match is not a clearance. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesa crypto address of any family: bitcoin, ethereum, tron, solana, xrp, litecoin and so on

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sanctions_check payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sanctions_check
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that no match is not a clearance, that results carry entry/program/list date, and that each call costs 0.008 USDC via x402 across five payment chains. Annotations cover the safety profile (read-only, idempotent, non-destructive) and the description adds cost and interpretation caveats that are not otherwise discoverable.

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

Conciseness5/5

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

Four tight sentences ordered by importance: trigger, what is returned, the critical false-negative caveat, then cost. Nothing is repeated and every sentence carries decision-relevant information.

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

Completeness5/5

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

For a one-parameter read tool with an output schema already defining the response shape, the description supplies everything else an agent needs: when to call it, what a match means, what a non-match does not mean, and the per-call cost. Nothing material is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single address parameter is fully documented in the schema, including the address-family list. The description repeats the same families (Bitcoin, Ethereum, Tron, Solana) without adding syntax, format, or validation detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource: screening a crypto wallet address against the OFAC SDN list. It names the supported chains and the exact nature of the result (exact match with entry, program and list date), which clearly separates it from adjacent checks like get_honeypot_check or get_sol_token_check.

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

Usage Guidelines4/5

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

Gives explicit timing guidance: 'Use when an agent needs to screen a crypto wallet before paying or being paid.' No alternative tool is named as a substitute, but the trigger condition is unambiguous, so it lands just short of the 5 bar.

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

get_sec_8kSEC 8-K eventsA
Read-onlyIdempotent
Inspect

Use when an agent needs the material events US companies disclosed in the last hours. Returns the 8-K filings filed across the market in the window, with company, CIK, filing time, accession number, the 8-K item codes and titles (e.g. 2.02 results, 5.02 officer changes, 1.01 agreements) and a count per item. Source: SEC EDGAR current filings. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNolook-back window in hours, 1-72, default 24

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sec_8k payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sec_8k
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds genuinely new context: the data source (SEC EDGAR current filings) and the cost model (0.01 USDC per call via x402 across listed chains), which an agent must know before invoking. It does not state 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.

Conciseness4/5

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

Three sentences, front-loaded with the usage condition, followed by returns and source/cost. The field enumeration is slightly long but earns its place by naming the item-code taxonomy; no filler sentences.

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

Completeness4/5

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

For a one-parameter read tool with an output schema and full annotation coverage, the description covers purpose, source, cost, and example item codes, so an agent can call it correctly. The one meaningful gap is failing to distinguish it from the sibling get_sec_filings.

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

Parameters3/5

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

Schema description coverage is 100%, so the single 'hours' parameter (1-72, default 24) is fully documented in the schema. The description only echoes the window concept without adding format or constraint detail, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Returns the 8-K filings filed across the market in the window') and enumerates the returned fields and item codes. However it never differentiates itself from the sibling get_sec_filings, so an agent cannot tell the two apart from the description alone.

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

Usage Guidelines4/5

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

'Use when an agent needs the material events US companies disclosed in the last hours' gives a clear triggering context, and the time-window framing narrows the use case. It offers no when-not guidance and does not name an alternative (e.g. get_sec_filings) for other filing needs.

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

get_sec_filingsSEC filingsA
Read-onlyIdempotent
Inspect

Use when an agent needs a US company's latest SEC filings. Returns the most recent EDGAR filings for a ticker, optionally one form type (10-K, 10-Q, 8-K, 4, S-1, 13F-HR), with filing date, report date, accession number, description, 8-K item codes and links to the document and the filing index. Source: SEC EDGAR public filings. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
formNoone EDGAR form type, e.g. 10-K, 10-Q, 8-K, 4
limitNofilings returned, 1-50, default 10
tickerYesa US-listed ticker, e.g. AAPL, MSFT, BRK-B

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sec_filings payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sec_filings
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: the data source (SEC EDGAR public filings) and the per-call cost (0.005 USDC via x402 across five chains), which affects an agent's decision to invoke.

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

Conciseness4/5

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

The lead sentence is front-loaded with the trigger condition ('Use when...'), followed by returns and cost. It is efficient and every clause carries information, though the return-field enumeration is somewhat long given an output schema already exists.

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

Completeness4/5

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

With an output schema present the description need not itemize return fields, so its return-list is surplus but harmless. Source, cost, form options, and safety annotations together make it complete enough for correct invocation, with the only gap being sibling routing versus get_sec_8k.

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

Parameters3/5

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

Schema description coverage is 100%, so ticker, form and limit are already documented in the schema, giving a baseline of 3. The description adds marginal value by noting the form parameter takes a single type and by listing additional examples (S-1, 13F-HR) beyond the schema's examples.

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

Purpose4/5

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

The description states a specific verb and resource ('Returns the most recent EDGAR filings for a ticker') and enumerates the returned fields, so the agent knows exactly what it gets. It does not explicitly distinguish itself from the sibling get_sec_8k, which overlaps on the 8-K form type, leaving a small ambiguity.

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

Usage Guidelines3/5

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

It gives a use condition ('Use when an agent needs a US company's latest SEC filings') but no exclusions or alternatives. With get_sec_8k present as a sibling covering one of the listed form types, an agent is left to infer when to prefer this broader tool.

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

get_signal_boardPerp signal boardA
Read-onlyIdempotent
Inspect

Signal board for trading bots: the Hyperliquid perp market in one table, ranked by open interest in USD (30 coins by default, up to 60, or the coins you list). Per coin: mark, 1h and 24h price change, funding (hourly and annualised), open interest in USD with its 1h and 24h change, liquidations in the last hour by side with a z-score against the coin's own last 7 days, the whale net position and tilt of the top 250 Hyperliquid accounts, and flags: crowded_long (funding_ann_pct >= 30 and oi_chg_24h_pct >= 5), crowded_short (funding_ann_pct <= -10 and oi_chg_24h_pct >= 5), squeeze_risk (crowded_short and (chg_1h_pct >= 1 or liq_1h_short_usd >= 2 x liq_1h_long_usd with liq_1h_short_usd >= 50000)), liq_spike (liq_z >= 3 and liq_1h_long_usd + liq_1h_short_usd >= 50000). Poll every 1-5 minutes: one call is the whole market structure, answered from our own caches, each source named with its as_of. A source past its staleness limit answers 503 and is never billed. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
nNocoins returned, ranked by open interest in USD, 1-60, default 30
coinsNocomma list of Hyperliquid coins instead of the top n, at most 20, e.g. BTC,ETH,SOL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_signal_board payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_signal_board
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses caching behaviour (answers served from own caches, each source named with its as_of), failure semantics (a stale source answers 503 and is never billed), and the billing model (0.01 USDC per call, x402, listed chains). These are exactly the operational traits an agent cannot infer from annotations.

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

Conciseness4/5

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

It is front-loaded with the resource and its ranking, then the per-coin columns, then operational terms, with no filler sentences. The inline flag formulas (crowded_long, squeeze_risk, liq_spike) are lengthy and arguably overlap with the output schema, which slightly dilutes conciseness.

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

Completeness5/5

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

With an output schema present, the description does not need to explain return values, and it covers the remaining agent-facing gaps: staleness handling, cost, payment rails, and cache provenance. Nothing needed to invoke this tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters, and the description's restatement ('30 coins by default, up to 60, or the coins you list') adds no syntax or format detail. Baseline 3 applies because the schema does the heavy lifting.

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

Purpose5/5

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

The description names a specific verb and resource — a perp signal board table ranked by open interest in USD — and enumerates the exact columns returned. It is clearly distinguishable from siblings like get_perp, get_coin_signal and get_positioning, which serve narrower, single-metric purposes.

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

Usage Guidelines4/5

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

It states an explicit operating context ('Poll every 1-5 minutes') and explains why this call replaces many narrower reads ('one call is the whole market structure'), which implicitly routes the agent away from per-coin siblings. It never names a specific alternative tool or a when-not condition, 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_sol_holder_clustersSolana holder clustersA
Read-onlyIdempotent
Inspect

Use when an agent needs to know whether a Solana token's holders are one owner. Returns the account that first funded each of the top 20 wallets, the clusters sharing a funder and their supply share. A shared funder can be an exchange. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesthe SPL token mint address

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sol_holder_clusters payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_holder_clusters
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/no-destructive, so the safety profile is covered. The description adds meaningful behavior beyond that: the top-20 wallet limit, the per-call cost (0.008 USDC, x402, chains supported), and the important interpretive caveat that a shared funder can itself be an exchange (i.e., a false-positive risk).

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

Conciseness4/5

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

Front-loaded with the use case, then the return shape, then the caveat, then the cost. Reasonably tight, though the payment/chain enumeration is a slight tail that could be trimmed.

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

Completeness4/5

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

Given an output schema exists and only one required parameter, the description covers the essentials: when to use, what is returned, a key interpretive warning, and the payment requirement. Little 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.

Parameters3/5

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

Schema description coverage is 100% for the single mint parameter, so the schema already carries full documentation. The description adds the "top 20 wallets" scope but no syntax or format detail beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource+scope: it determines whether a Solana token's holders are one owner and returns funder clusters. This clearly distinguishes it from generic siblings like get_token_holders or get_wallet_holdings by focusing on the shared-funder clustering question.

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

Usage Guidelines4/5

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

"Use when an agent needs to know whether a Solana token's holders are one owner" gives a clear triggering condition. It does not name or exclude a specific alternative sibling, so it stops short of full routing guidance, but the context is unambiguous.

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 healthA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sol_network payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_network
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds a genuinely useful behavioral trait beyond the annotations: a per-call cost of 0.005 USDC via x402 with accepted chains, which the agent could not infer from 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.

Conciseness5/5

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

Two sentences, both earning their place: the first front-loads the returned metrics, the second discloses payment terms. No filler or redundancy.

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

Completeness5/5

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

An output schema exists, so return-value documentation is unnecessary, and the description already summarizes the payload plus the cost model. For a zero-param, read-only tool this is complete.

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

Parameters4/5

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

There are zero parameters, so the schema baseline of 4 applies. The description correctly adds no parameter detail because none exists, and there is no ambiguity about inputs.

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

Purpose5/5

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

States a specific resource (Solana network health) and enumerates the exact metrics returned: average TPS, current slot, current epoch, and epoch progress %. This clearly separates it from siblings like get_sol_price (price) and get_sol_token_check (token-level), so an agent can identify it 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.

Usage Guidelines3/5

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

Usage is implied by the metric list but there is no explicit when-to-use, when-not-to-use, or alternative routing (e.g., versus get_priority_fees or get_sol_price for related Solana data). For a zero-param read tool the inference is easy, but the description adds no guidance.

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 priceA
Read-onlyIdempotent
Inspect

Live SOL/USD spot price read on-chain: the median of the two deepest SOL/USDC pools on Solana (Orca Whirlpool, Raydium CLMM). confidence is null: a pool publishes none. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sol_price payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_price
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial context beyond them: the oracle methodology (median of the two deepest SOL/USDC pools), the fact that confidence is always null, and critically the per-call cost of 0.001 USDC via x402 across five chains. The paid-endpoint and payment-scheme disclosure is exactly the kind of behavioral detail annotations cannot convey.

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

Conciseness4/5

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

Front-loaded with purpose and packed with signal: methodology, output quirk (null confidence), and cost all earn their place. The clipped 'confidence is null: a pool publishes none' is slightly terse but efficient rather than wasteful.

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

Completeness5/5

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

For a zero-parameter price read with an output schema present, the description is complete: source methodology, output caveat, and payment/auth mechanics are all covered, and return values need not be explained because a schema exists.

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

Parameters4/5

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

Zero parameters and 100% schema coverage, so the baseline is 4. The only parameter-like note ('confidence is null') concerns the output rather than an input, so there is nothing further to add on the input side.

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

Purpose5/5

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

States a specific verb and resource (live SOL/USD spot price read on-chain) and disambiguates from siblings like get_btc_price and get_eth_price by naming the exact asset and even the underlying pools (Orca Whirlpool, Raydium CLMM). An agent can select it 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.

Usage Guidelines3/5

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

The description implies usage (read a SOL price) and the asset-specific naming makes selection fairly self-evident, but it gives no explicit when-to-use vs the overlapping get_spot or get_convert siblings, and no exclusions. Adequate but with a clear routing gap.

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

get_sol_token_checkSolana token pre-trade checkA
Read-onlyIdempotent
Inspect

Use when an agent needs a pre-trade check on a Solana token. Returns mint and freeze authority, Token-2022 traps, top holders, deepest pool and USD depth, the price impact of $100 and $1,000 buys, pump.fun progress, and a verdict with every rule. Costs 0.025 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesthe SPL token mint address

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sol_token_check payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_token_check
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds genuinely non-derivable behavior: a per-call cost of 0.025 USDC and the x402 payment rails/chains. It stops short of rate limits or latency expectations, but the paid-call model is important context beyond 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.

Conciseness5/5

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

Front-loaded with the usage trigger, followed by a tight enumeration of returns and the cost, in two sentences with no filler. Every clause carries selection-relevant information.

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

Completeness5/5

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

An output schema exists, yet the description still summarizes the return surface for fast selection, and it closes the loop on the paid-invocation model. For a single-parameter tool with rich annotations and a schema, nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single 'mint' parameter is fully documented as 'the SPL token mint address'. The description adds no format or constraint detail for the parameter, so the schema does the heavy lifting — the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('pre-trade check on a Solana token') and then enumerates the exact outputs (mint/freeze authority, Token-2022 traps, holders, pool depth, price impact, pump.fun progress, verdict). This detailed output profile distinguishes it from siblings like get_honeypot_check or get_token_risk, which cover narrower slices.

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

Usage Guidelines4/5

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

Gives a clear trigger scenario: 'Use when an agent needs a pre-trade check on a Solana token.' This anchors the decision context well, but it names no alternatives or exclusions, so an agent facing overlapping siblings (get_token_risk, get_honeypot_check, get_sol_token_flow) gets no routing guidance.

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

get_sol_token_flowSolana token trade flowA
Read-onlyIdempotent
Inspect

Use when an agent needs to know who is trading a Solana token. Returns the unique traders over its latest swaps, top-5 share of volume, round-trip wallets, share of brand-new buyer wallets and launch-slot bundle size for mints under 7 days. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesthe SPL token mint address
swapsNoswaps to read, 20-100, default 50; a 20 second budget may return fewer, flagged truncated

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_sol_token_flow payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_sol_token_flow
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds material behavioral context they do not carry: the paid x402 model, the exact per-call price, and the accepted settlement chains. It also scopes some metrics to mints under 7 days, which is real behavioral nuance.

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

Conciseness4/5

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

Two sentences, front-loaded with the usage trigger and followed by the returned metrics and cost. Every clause carries information, though the metric list is dense and could be slightly tightened.

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

Completeness4/5

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

An output schema exists, so return values need no elaboration, and the description still supplies enough (trigger, metric coverage, time-window caveat, cost/auth model) for an agent to invoke it correctly. The only real omission is pagination/truncation behavior beyond what the schema's swaps note already says.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents the mint address and the swaps range/default/truncation semantics in detail. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('who is trading a Solana token') and enumerates the concrete output metrics (unique traders, top-5 volume share, round-trip wallets, new-buyer share, launch-slot bundle size). This clearly separates it from adjacent siblings like get_token_holders, get_sol_holder_clusters and get_sol_token_check.

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

Usage Guidelines4/5

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

'Use when an agent needs to know who is trading a Solana token' gives a clear triggering condition. It does not, however, name a competing alternative (e.g. holder-centric tools) or state when-not-to-use it, so the routing guidance stops short of the explicit-alternatives bar.

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

get_spotSpot priceA
Read-onlyIdempotent
Inspect

Use when an agent needs a spot price without choosing a venue. Returns the on-chain DEX price for SOL, BTC or ETH, the median of deep USDC pools on Solana, Ethereum and Base read from chain state, and the pools that served it. Any other symbol answers 400 with the supported list and is never billed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoSOL, BTC or ETH (default SOL). Any other symbol answers 400 with the supported list

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_spot payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_spot
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), but the description adds behavior they cannot express: a 0.001 USDC per-call cost, the x402 payment rails and accepted chains, and the guarantee that unsupported symbols are 'never billed'. Cost and billing semantics are exactly the kind of trait an agent needs before invoking and cannot get from annotations.

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

Conciseness4/5

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

Four sentences, front-loaded with the usage condition, then returns, then error handling, then price. Every sentence carries information, though the 400/supported-list clause partially duplicates the schema description.

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

Completeness5/5

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

An output schema exists, so return-shape explanation is optional and the brief summary suffices; annotations carry the safety profile. Together with cost, payment rails, supported symbols and error semantics, the description gives an agent everything needed to call correctly.

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

Parameters3/5

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

With a single parameter and 100% schema description coverage, the schema already documents the symbol and default. The description restates the supported set and the 400 fallback but adds no format or syntax detail beyond the schema, so this sits at the baseline for well-covered schemas.

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

Purpose4/5

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

The description names a specific capability: an on-chain DEX spot price for SOL/BTC/ETH, computed as the median of deep USDC pools on Solana, Ethereum and Base, plus the serving pools. The clause 'without choosing a venue' implicitly separates it from venue-specific siblings like get_sol_price or get_btc_price, but no sibling is named explicitly, so differentiation is inferred rather than stated.

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

Usage Guidelines4/5

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

The opening sentence gives a clear selection condition ('needs a spot price without choosing a venue'), and the 400 behavior plus supported symbol list tell the agent when the call will fail. It stops short of naming the alternative tools to use when a venue-specific price is wanted, so the agent must infer the exclusion.

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

get_squeeze_scoreSqueeze scoreA
Read-onlyIdempotent
Inspect

Short squeeze score and long flush score, 0-100, for any Hyperliquid perp. Composite of Hyperliquid funding (35), whale crowding (25: the net-long share of the top 250 Hyperliquid accounts in the coin, not retail), the 24h open-interest build from our own 5-minute sampler (20) and liquidation skew from our own tape (20). One number for whether a trade is crowded and about to hurt someone. A symbol nothing lists answers 400; while the open-interest record is under 24 hours deep, or Hyperliquid or the whale snapshot is unavailable, it answers 503; both are never billed. A listed coin none of the top 250 accounts holds returns 200 with a decline naming the missing input. Costs 0.1 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_squeeze_score payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_squeeze_score
toolYesthe tool that produced this payload

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only supply the read-only/idempotent safety profile; the description adds the operationally decisive facts: 400 for an unlisted symbol, 503 while OI history is under 24h deep or a source is unavailable, 200-with-decline when no top-250 account holds the coin, no billing on failures, and a per-call cost of 0.1 USDC via x402 across five chains. That is exactly the context annotations cannot carry.

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

Conciseness4/5

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

A single dense paragraph, but front-loaded: definition first, then the weighted composite, then failure modes, then price. Every sentence carries information, though the parenthetical component weighting makes the middle heavier than it needs to be for tool selection.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, and it doesn't. It covers composition, error semantics, billing behavior, and cost — everything an agent needs to decide whether to call and to interpret a failure. Nothing material is missing.

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

Parameters3/5

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

Schema coverage is 100% for the single symbol parameter, so the schema already documents format and default (SOLUSDT). The description adds no symbol syntax, casing, or listing requirements beyond what the schema provides, so the baseline 3 applies; there is a mild mismatch between the schema's 'USDT perp' example and the description's 'Hyperliquid perp' framing.

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

Purpose5/5

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

States a specific verb+resource ('Short squeeze score and long flush score, 0-100, for any Hyperliquid perp') and immediately distinguishes itself from neighboring analytics tools by naming its four components: funding, whale crowding, OI build, liquidation skew. An agent can tell this apart from get_funding_extremes or get_oi_spike_scan 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.

Usage Guidelines3/5

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

Gives a use-case framing ('One number for whether a trade is crowded and about to hurt someone'), which implies when to reach for a composite rather than a raw component. However, it never names an alternative tool or an explicit when-not condition, so routing between this and the many funding/OI/liquidation siblings is left to inference.

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

get_summarizePage or PDF summaryA
Read-onlyIdempotent
Inspect

Use when an agent needs the gist of a web page or PDF. Returns a short or medium summary with key points, and says whether the document was cut at 20,000 tokens and how much was read. Uses only what the document says. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe page or PDF: an absolute http or https URL
lengthNoshort (default, about 60 words) or medium (about 150)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_summarize payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_summarize
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, and the description adds substantial context on top: the 0.02 USDC per-call cost with the x402 payment chains, the 20,000-token truncation cutoff plus how much was read, and that output is grounded strictly in the document. These are the exact behavioral facts an agent cannot get from 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.

Conciseness4/5

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

Front-loads the usage trigger and keeps the return/truncation facts tight. The cost sentence is the weakest part, enumerating five chains, but it is genuinely useful information rather than filler, so it mostly earns its place.

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

Completeness5/5

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

An output schema exists, so return shape need not be spelled out, yet the description still covers the practical concerns: cost and payment rails, truncation at 20,000 tokens with the read amount, and grounded-only output. Nothing an agent needs to invoke this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so url and the length enum are already fully documented in the schema. The description's 'short or medium summary with key points' only loosely restates the length parameter without adding format or word-count detail beyond the schema's own '(about 60 words) or medium (about 150)'. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource: it produces a short/medium summary of a web page or PDF, with key points. That clearly separates it from raw-extraction siblings like get_pdf_markdown or get_extract, though no sibling is named explicitly, 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.

Usage Guidelines4/5

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

The opening 'Use when an agent needs the gist of a web page or PDF' gives an explicit trigger condition. It does not, however, state when NOT to use it or point to the overlapping alternatives (get_extract, get_pdf_markdown, get_web_markdown), which leaves routing among near-neighbors partly to inference.

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

get_timeTime zone conversionA
Read-onlyIdempotent
Inspect

Use when an agent needs an exact time conversion with the right daylight-saving rules. Returns an ISO time or epoch in any IANA time zone: local time with offset, weekday, abbreviation, DST flag and epoch. Defaults to now in UTC. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoISO 8601 with Z or an offset, or epoch seconds or milliseconds; default now
tzNoIANA zone such as Europe/Chisinau or America/New_York, default UTC

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_time payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_time
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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 adds genuinely new behavioral context: a per-call cost of 0.005 USDC via x402 across five named chains, which is not derivable from annotations or schema and materially affects 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.

Conciseness4/5

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

Front-loaded with the use condition, then return shape, then default, then cost, in a tight block of sentences. Slightly dense, but every sentence carries information an agent needs and none is filler.

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

Completeness4/5

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

Covers the trigger, return shape, default, and the non-obvious payment cost, and an output schema exists so return values need no further explanation. An agent has enough to call it correctly, though alternative-tool routing is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'at' and 'tz' are already fully documented with accepted formats (ISO 8601, epoch seconds/milliseconds, IANA zones) and defaults. The description repeats the UTC default but adds no syntax or format detail beyond the schema, 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.

Purpose5/5

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

States a specific verb and resource ('exact time conversion with the right daylight-saving rules') and specifies the return ('ISO time or epoch in any IANA time zone: local time with offset, weekday, abbreviation, DST flag and epoch'). An agent can distinguish this from sibling conversion tools like get_convert or get_fx_rates 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.

Usage Guidelines4/5

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

Explicitly frames the trigger with 'Use when an agent needs an exact time conversion with the right daylight-saving rules', which is clear context. However it names no alternatives or exclusions, so the agent gets a clear when but no when-not or sibling routing.

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 holdersA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL token mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_token_holders payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_holders
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds genuinely useful non-schema behavior: it is a paid call costing 0.02 USDC per invocation via x402 across five listed chains, which the agent must know before calling.

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

Conciseness4/5

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

Three short sentences, front-loaded with what the tool returns and followed by the differentiation cue and the cost. The payment-chain enumeration is slightly listy but each element is decision-relevant, so there is little waste.

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

Completeness4/5

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

With an output schema to explain the return shape and annotations covering the safety profile, the description only needs to establish purpose, differentiation, and cost — all present. Minor omissions like rate limits or data freshness keep it from a 5.

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

Parameters3/5

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

Schema coverage is 100% and the single 'mint' parameter is documented as a base58 SPL token mint address. The description restates "Solana mint" but adds no format 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.

Purpose5/5

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

Specific verb+resource (top holders of an SPL token) plus concrete output content: per-account share and top-1/5/10 concentration for a Solana mint. It explicitly distinguishes itself from the neighboring /api/token-risk summary, so an agent can separate it from get_token_risk 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.

Usage Guidelines4/5

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

"A deeper cut than the summary in /api/token-risk" gives a clear selection signal between this tool and its closest sibling. It stops short of explicit when-not-to-use guidance or naming other alternatives (e.g. get_sol_holder_clusters), so it lands just under full marks.

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 metadataA
Read-onlyIdempotent
Inspect

SPL token metadata: name, symbol, URI, decimals, supply, mint and freeze authority, mutability. Read from the mint account and its metadata account. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL token mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_token_metadata payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_metadata
toolYesthe tool that produced this payload

TDQS

A3.8/5.0
Behavior4/5

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 genuinely useful non-annotation context: the data source (mint account plus its metadata account) and the per-call cost with the accepted payment rails (0.005 USDC via x402 on Solana/Base/Polygon/Arbitrum/Arc). That cost/auth detail is valuable for an agent deciding whether to invoke.

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

Conciseness5/5

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

Three tight sentences with the data contents front-loaded, followed by source and cost. Zero filler; every sentence earns its place.

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

Completeness4/5

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

An output schema exists, so return-value shape need not be explained, and the annotations cover the safety profile. The description supplies source and cost, making it largely complete for a single-parameter read tool; the only gap is sibling differentiation.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'mint' parameter is documented as a base58 SPL token mint address in the schema itself. The description adds no additional 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.

Purpose4/5

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

States a specific verb (get) and resource (SPL token metadata) and enumerates the returned fields (name, symbol, URI, decimals, supply, authorities, mutability). An agent knows exactly what data comes back. It does not, however, distinguish itself from look-alike siblings such as get_token_holders, get_token_risk, or get_sol_token_check, so it falls 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.

Usage Guidelines3/5

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

The field list implies when this tool is appropriate (fetching static mint metadata), but there is no explicit when-to-use vs. when-not guidance and no sibling is named as an alternative. Usage is left to inference 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_token_riskToken rug checkA
Read-onlyIdempotent
Inspect

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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL token mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_token_risk payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_token_risk
toolYesthe tool that produced this payload

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so the description's real contribution is disclosing a paid, x402-metered call at 0.01 USDC per invocation across five chains — a material behavioral fact you cannot get from the schema. It does not cover failure modes or rate/latency behavior, keeping it at 4 rather than 5.

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

Conciseness5/5

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

Two sentences, front-loaded with the returned signals, then the scope exclusion, then cost last. No filler; every clause carries selection-relevant information.

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

Completeness5/5

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

An output schema exists, so return-shape explanation is unnecessary, and the description covers the two things an agent most needs before calling: what signals come back and that the call costs money. Nothing material is missing for a single-parameter read tool.

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

Parameters3/5

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

One parameter (mint) with 100% schema description coverage, so the schema already states 'SPL token mint address (base58)'. The description adds no format, validation, or chain-qualification detail beyond that, making 3 the correct baseline.

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

Purpose5/5

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

Names a specific resource (SPL token) and enumerates exactly what it returns: mint/freeze authority status, top-1/top-10 holder concentration, risk flags. It goes further by explicitly excluding adjacent scope ("Not a honeypot/LP-lock checker"), which separates it from siblings like get_honeypot_check, get_sol_token_check and get_token_holders.

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

Usage Guidelines4/5

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

Gives an explicit when-not (not honeypot/LP-lock checking) and pins the caller to Solana SPL tokens, which is actionable context. It stops short of positively naming the sibling to use instead for those excluded cases, so routing to alternatives is left to inference.

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

get_top_moversTop moversA
Read-onlyIdempotent
Inspect

Top gainers and losers over 24h across every Hyperliquid 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, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNotop N each side, 1-25, default 10
min_turnover_usdNo24h volume floor in USD, default 1M

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_top_movers payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_top_movers
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so safety is covered. The description adds genuinely new behavioral context: a per-call cost of 0.01 USDC via x402 and the accepted chains, plus the liquidity-floor default behavior. It could say more about latency or result shape, but the paid-call disclosure is a strong addition.

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

Conciseness5/5

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

Two sentences, front-loaded with what the tool returns and immediately followed by the positioning tagline and cost. No filler, and the payment detail — the one thing an agent can't learn from the schema — is included without bloating the text.

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

Completeness5/5

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

An output schema exists so return values need no explanation, annotations carry the safety profile, and the schema fully documents both params. The description adds the missing operational detail (paid call, funding-rate attachment, scope) — nothing an agent needs 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.

Parameters3/5

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

Schema description coverage is 100%, so both parameters (limit, min_turnover_usd) are already fully documented with ranges and defaults. The description confirms the liquidity-floor concept and 'top N each side' semantics but adds no syntax or format 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.

Purpose5/5

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

States a precise verb+resource+scope: top gainers and losers over 24h across every Hyperliquid perp above a liquidity floor, with funding rates attached. This is clearly distinguishable from siblings like get_market_snapshot, get_funding_extremes, or get_volatility, which cover adjacent but different signals.

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

Usage Guidelines3/5

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

The tagline 'The "what moved" screener' implies when to reach for it, and the cost line sets a practical precondition. However, it names no alternatives or when-not conditions, so an agent must infer its place against the many other market-scan tools in the sibling list.

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

get_trade_contextTrade contextA
Read-onlyIdempotent
Inspect

Full market state in one call: SOL+BTC prices, funding, Fear & Greed, positioning (open interest and whale net-long share), and liquidation stats. The complete pre-trade picture. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_trade_context payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_trade_context
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive. The description adds the critical behavioral trait not in annotations: it costs 0.01 USDC per call via x402 with accepted chains listed. That's real value beyond structured fields. It doesn't mention rate limits or freshness/latency of the data, keeping it below 5.

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

Conciseness5/5

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

Two tight sentences plus a pricing sentence, front-loaded with the value proposition and ending with the cost caveat. No waste.

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

Completeness5/5

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

An output schema exists so return values needn't be explained, yet the description still summarizes the payload components. Pricing and payment chains cover the key operational facts for a zero-arg read tool.

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

Parameters4/5

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

Zero parameters, so baseline is 4. The description correctly implies no inputs are needed ('in one call') and contextualizes the cost of a zero-arg call.

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

Purpose5/5

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

States a specific verb-free but clear resource ('Full market state in one call') and enumerates exactly the components returned: SOL+BTC prices, funding, Fear & Greed, positioning, liquidation stats. This is a distinct aggregate tool, clearly differentiated from atomic siblings like get_btc_price or 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.

Usage Guidelines4/5

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

'The complete pre-trade picture' gives clear context for when to use it as opposed to calling individual atomic tools. It doesn't explicitly name an alternative or when to avoid it, but the aggregate framing implies 'use this instead of many separate calls' strongly enough.

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

get_tradfi_perpsTradfi perps (HIP-3)A
Read-onlyIdempotent
Inspect

Use when an agent needs a 24/7 price for a stock, index, commodity or currency outside market hours. Returns Hyperliquid HIP-3 perp markets: oracle and mark price, premium, hourly and 8h funding, open interest, 24h change and the dex. With symbol (TSLA, GOLD, EUR or xyz:TSLA): every live market for it. Without: the whole list. Prices are each market's own HIP-3 oracle and mark. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoa HIP-3 ticker such as TSLA, GOLD, EUR, or a dex-qualified market such as xyz:TSLA

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_tradfi_perps payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_tradfi_perps
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, open-world), so the description's real contribution is the cost disclosure (0.005 USDC per call via x402, with accepted chains), which annotations cannot express. It also clarifies that prices are each market's own HIP-3 oracle/mark. It does not state rate limits or pagination/response-size behavior for the whole-list mode.

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

Conciseness5/5

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

Front-loads the decision trigger, then the return payload, then the with/without symbol branch, then the pricing caveat. Every sentence carries distinct information; there is no repetition of the schema or annotations.

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

Completeness5/5

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

With a rich output schema present, the description correctly avoids re-explaining return values and instead covers the decision context, the optional-parameter branches, and the non-obvious per-call cost/chain setup. Nothing needed to invoke it correctly is missing given the annotations and schema.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description adds value by showing two concrete accepted forms with examples (plain ticker TSLA/GOLD/EUR vs. dex-qualified xyz:TSLA) and explaining that dex-qualified markets exist, which the schema only implies. It stops short of stating matching/case rules explicitly.

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

Purpose5/5

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

States a specific verb (returns) and resource (Hyperliquid HIP-3 perp markets) with a precise scope, and enumerates the exact fields returned (oracle/mark price, premium, funding, OI, 24h change, dex). It is distinguishable from siblings like get_perp, get_equity_24h, and get_tradfi_radar because it names HIP-3 and the 24/7 off-hours use case.

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

Usage Guidelines5/5

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

Opens with an explicit when-to-use condition ('when an agent needs a 24/7 price ... outside market hours') and specifies the when-to-use-symbol vs. omit-symbol branch, mapping each to a distinct output (every live market for it vs. the whole list). That is explicit conditional routing rather than implied usage.

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

get_tradfi_radarTradFi perps radarA
Read-onlyIdempotent
Inspect

Stock perps, S&P 500, Nasdaq, gold and oil perps ranked by funding rate: every stock, index, commodity and FX perp on the Hyperliquid HIP-3 dexes (trade[XYZ], Paragon, Markets by Kinetiq, Entropy), with funding at its 8h equivalent, a 30-day funding z-score, open interest and its 24h change, mark minus oracle basis and 24h volume. Filter by asset class. Precomputed every 5 minutes; stale data answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNomarkets returned, 1-200, default 25
classNocomma list of stock, index, commodity, fx, rates, pre_ipo, crypto_index, other (default all)
min_oi_usdNominimum open interest in USD (default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_tradfi_radar payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_tradfi_radar
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, open-world), and the description adds genuinely non-derivable behavior: precomputation every 5 minutes, a 503 on stale data, and a hard cost of 0.02 USDC per call via x402 across five named chains. Pricing, freshness and failure mode are exactly the operational facts an agent cannot get from schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the highest-value clause (what is ranked and by what metric), then coverage, then constraints. The parenthetical venue list is dense but informative; the piece is one long sentence that could be split for scannability, but almost every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description still supplies fresh-ness, failure mode, cost and coverage. The one gap is routing relative to sibling funding/perp tools, which an agent needs given how crowded this namespace is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented with types and defaults. The description adds only 'Filter by asset class', which maps to the class parameter but adds no syntax, default or interaction detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+ranking metric: 'Stock perps, S&P 500, Nasdaq, gold and oil perps ranked by funding rate', and it enumerates the venues covered (trade[XYZ], Paragon, Kinetiq, Entropy) plus the exact fields returned. However, it never distinguishes itself from close siblings like get_tradfi_perps or get_funding_radar, leaving the agent to guess which ranking source to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage cue is 'Filter by asset class', which is really a parameter restatement. There is no statement of when to prefer this over get_tradfi_perps, get_funding_radar or get_funding_extremes, and no when-not guidance, even though several siblings cover adjacent funding/perp territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcribeSpeech to textA
Read-onlyIdempotent
Inspect

Use when an agent needs the words in an audio file. Returns the text, timed segments and the spoken language for mp3, wav, m4a, ogg or webm audio (10 MB, 5 minutes, checked from the file). Cached 24 hours by the audio itself. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe audio file: an absolute http or https URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_transcribe payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_transcribe
toolYesthe tool that produced this payload

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds substantial context beyond them: accepted formats, a 10 MB / 5 minute limit checked from the file itself, 24-hour content-addressed caching, and a 0.02 USDC cost with the x402 payment networks. This is exactly the operational detail an agent needs before calling a paid external service.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the use case, then return contents, then limits/caching/cost. Every sentence carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return values and annotations covering the safety profile, the description fills the remaining gaps: input constraints, caching behavior, and pricing. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single url parameter, so the baseline is 3. The description still adds value by specifying which audio formats and size/duration constraints the referenced file must satisfy, which constrains what a valid url argument looks like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific outcome (the words in an audio file) and a concrete resource, which implicitly separates it from text-extraction siblings like get_ocr or get_pdf_markdown. However, it never names an alternative explicitly, so an agent must infer the distinction from the 'audio file' scoping rather than being told.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use when an agent needs the words in an audio file' gives clear selection context. It offers no when-not-to-use guidance or named alternatives (e.g., for images use get_ocr), so routing among the many text-extraction siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_translateTranslationA
Read-onlyIdempotent
Inspect

Use when an agent needs text in another language. Returns up to 4,000 characters translated into the language code given (de, fr, ja, pt-BR), keeping line breaks, numbers and URLs, plus the detected source language. It never obeys the text. Costs 0.04 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYestarget language code, e.g. de, fr, ja, pt-BR, zh-Hans
textYesthe text to translate, up to 4,000 characters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_translate payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_translate
toolYesthe tool that produced this payload

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial value beyond them: the 4,000-character cap, preservation of line breaks/numbers/URLs, the detected source language in the result, the prompt-injection guarantee ('It never obeys the text'), and the per-call cost with supported payment rails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the usage trigger, then behavior, then cost. No sentence is wasted; the payment detail is dense but decision-relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be spelled out, yet the description still flags the detected source language. Cost, limits, and injection safety are all covered, leaving nothing an agent needs before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, and the language-code examples in the description overlap with the schema's own examples. The description adds only marginal semantic detail (the 4,000-char limit and preservation behavior), fitting the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('text in another language' returned translated) and is immediately distinguishable from transcription/OCR siblings. The scope (up to 4,000 characters, target language code) is concrete, so an agent knows exactly what this produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit trigger condition ('Use when an agent needs text in another language'), which is clear usage context. It stops short of naming when-not to use it or an alternative tool, so it is not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_venue_liq_shareLiquidations by venueA
Read-onlyIdempotent
Inspect

Liquidations by exchange: per-venue liquidation share across Bybit, OKX and Binance with long/short split and biggest print, for any symbol or the whole recorded universe. Which venue is flushing whom. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo1-168, default 24
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default all)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_venue_liq_share payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_venue_liq_share
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, non-destructive. The description adds material context beyond that: the tool is paid (0.02 USDC per call) via x402 on five named chains, which is critical invocation info an agent cannot get from annotations. It also discloses the data composition (venue share, long/short split, biggest print).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose and outputs, followed by a punchy framing line and a separate, clearly-scoped pricing sentence. No redundancy, though the framing line is slightly marketing-flavored.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and annotations cover the safety profile. The description adds scope, output composition, and the payment/auth model, leaving little an agent needs missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in the schema, so the schema carries the load. The description only restates the symbol scope ('any symbol or the whole recorded universe') and adds no format/syntax detail beyond what the schema already provides; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (per-venue liquidation share) and enumerates the exact outputs (long/short split, biggest print) across three named exchanges (Bybit, OKX, Binance). This specificity implicitly distinguishes it from generic liquidation siblings like get_liq_feed or get_liq_pulse, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scope phrase 'for any symbol or the whole recorded universe' and the user-facing framing 'Which venue is flushing whom', but there is no explicit when-to-use, when-not, or named alternative among the many liquidation siblings. Guidance is inferable 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_volatilityRealized volatilityA
Read-onlyIdempotent
Inspect

Realized volatility for any Hyperliquid perp: 7-day and 30-day annualized from daily candles, plus today's range in %. A position-sizing input. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoUSDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_volatility payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_volatility
toolYesthe tool that produced this payload

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is met. The description adds genuinely non-obvious behavioral context beyond the annotations: it is a paid endpoint at 0.01 USDC per call via x402, with accepted chains listed. This is exactly the kind of fact an agent must know before invoking. It stops short of describing rate limits or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with what is computed and followed by use context and the cost. No filler; every fragment carries information, though the payment-chain enumeration is slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers scope, computation basis, use case, and payment cost. It is nearly complete for a single-param read tool; only the absence of explicit usage guidance keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single symbol parameter already documents its format and default (SOLUSDT). The description adds no syntax or format 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and verb ('Realized volatility for any Hyperliquid perp') and enumerates the exact outputs: 7-day and 30-day annualized from daily candles plus today's range in %. This lets an agent distinguish it from siblings like get_perp or get_basis 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'A position-sizing input' implies a use context, but there is no explicit when-to-use, when-not-to-use, or named alternative among the many sibling volatility/price tools. Usage is only inferred.

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 activityA
Read-onlyIdempotent
Inspect

Solana wallet activity: recent transactions for any address, each with the wallet's SOL and token balance changes, the fee, failures and the programs invoked. Read from the chain and summarised by us. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNotx count, 1-25, default 10
walletYesSolana wallet address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_wallet_activity payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_activity
toolYesthe tool that produced this payload

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the description adds genuinely new context: the 0.02 USDC per-call cost, the x402 payment rails (Solana, Base, Polygon, Arbitrum, Arc), and data provenance ('read from the chain, summarised by us'). It stops short of rate limits or pagination behavior, keeping it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the two-sentence structure is largely waste-free. The enumeration of return fields is somewhat list-like but each item earns its place by telling the agent what the payload contains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return values and annotations covering the safety profile, the description only needs to add provenance and cost — both present. The main residual gap is that it never contrasts itself with the sibling read tools (get_wallet_holdings, get_sol_token_flow).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both params (wallet base58, limit 1-25 default 10) are fully documented in the schema. The description adds only 'for any address', which does not extend parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource ('recent transactions for any address') and enumerates what each result contains (balance changes, fee, failures, programs invoked), so an agent knows exactly what it gets. It doesn't explicitly differentiate from the close sibling get_wallet_holdings, which letter-of-the-spec keeps it just below 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'recent transactions for any address' and the per-call cost, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. get_wallet_holdings for balances vs this for the tx feed). The agent must infer the routing itself.

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 holdingsA
Read-onlyIdempotent
Inspect

Solana wallet holdings: native SOL with its USD value at AgentFeed's own on-chain SOL price, SPL tokens with mint, symbol and amount (no token prices), NFT count (Helius DAS balances). Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana wallet address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_wallet_holdings payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wallet_holdings
toolYesthe tool that produced this payload

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, but the description adds critical context the annotations cannot: a per-call cost of 0.008 USDC, the x402 payment rails (USDC on Solana, Base, Polygon, Arbitrum, Arc), and the provenance of the data (AgentFeed's own on-chain SOL price, Helius DAS). It does not cover auth setup beyond payment or rate limits, so it stops 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the resource and then unpacks contents, caveats and cost. Every clause carries information, though the parenthetical stacking makes it dense to parse in one pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail is not strictly required, yet the description still characterizes the payload and discloses the paid-call cost an agent must account for before invoking. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'wallet' parameter, so the schema already documents the base58 Solana address format. The description adds no parameter-level detail beyond that, which matches the baseline 3 when the schema carries the weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (Solana wallet holdings) and enumerates exactly what is returned: native SOL with USD value, SPL tokens with mint/symbol/amount, and NFT count. The Solana scoping also cleanly separates it from Base-chain siblings such as get_base_balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no alternative tool is named, even though get_wallet_activity and get_sol_token_check are close siblings. The 'no token prices' caveat hints at a limitation but never points the agent to the tool that does supply prices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_web_markdownWeb page to markdownA
Read-onlyIdempotent
Inspect

Use when an agent needs the readable text of a web page as markdown. Returns the main content of the one URL you pass as clean markdown (Mozilla Readability, then turndown), with title, final URL, fetch time and word count. http or https on ports 80 and 443, 5 MB, 10 s; robots.txt honoured and private addresses refused. A blocked or unreachable URL is never charged. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesthe page to convert: an absolute http or https URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_web_markdown payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_web_markdown
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses the content pipeline, returned fields, scheme/port restrictions, size and timeout limits, robots.txt enforcement, private-address refusal, failure charging behavior, and per-call cost across multiple chains. This is unusually rich behavioral context and does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the use case and return value, then layers in constraints and cost. Every sentence carries actionable information, and the dense semicolon-separated limits are still readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description need not explain return values, yet it helpfully summarizes them. It also covers permissions-adjacent details (payment, private addresses), failure behavior, and operational limits, making the definition complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the single URL parameter at 100% coverage, establishing a baseline of 3. The description adds meaningful parameter constraints beyond the schema: only http/https on ports 80 and 443, 5 MB size limit, and 10 s timeout. It does not cover URL encoding or query/fragment handling, so it is not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb+resource: returning the readable text of a web page as clean markdown. The resource 'web page' clearly distinguishes it from sibling tools like get_pdf_markdown and get_wiki, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with an explicit condition: 'Use when an agent needs the readable text of a web page as markdown.' However, it offers no when-not guidance and does not name alternatives such as get_pdf_markdown for PDF inputs, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_wikiWikipedia summaryA
Read-onlyIdempotent
Inspect

Use when an agent needs a reliable plain-text summary of a topic. Returns the Wikipedia summary and lead section for a page title in any language, with the CC BY-SA 4.0 licence, the article URL and the authors link. Cached 24 hours. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoWikipedia language code, default en
titleYesthe article title, e.g. Solana (blockchain platform)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesthe get_wiki payload; a real captured example is free at https://x402.ochinimus.app/api/sample/get_wiki
toolYesthe tool that produced this payload

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe-read profile (readOnly, idempotent, openWorld), and the description goes well beyond that: it discloses the 24-hour cache, the license under which content is returned, the supplementary URL/author links, and a concrete pay-per-call model (0.005 USDC via x402 across five chains). Pricing and caching are material operational facts an agent cannot get from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the "Use when" trigger, then output contents, then caching and price — every sentence carries information. It is slightly dense in the parenthetical chain list, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter lookup with an output schema, 100% schema coverage and full annotations, the description closes the remaining gaps: what is returned, how fresh it is, what it costs, and under what license. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (lang, title) are already documented, and the description only echoes that output is "in any language" and keyed on a page title. No added format, default, or constraint detail beyond the schema, so the 3 baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (returns a summary) and resource (the Wikipedia summary and lead section for a page title), so an agent can immediately tell this is Wikipedia-sourced content. It never mentions the generic sibling get_summarize, so differentiation is implied by the source rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when an agent needs a reliable plain-text summary of a topic" gives clear positive context for invocation. It stops short of exclusions or naming alternatives, so there is no guidance on when to prefer get_summarize, get_web_markdown or get_extract instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pricingPrice listA
Read-onlyIdempotent
Inspect

Use when an agent needs the price list before calling anything. Returns every agentfeed tool with its USDC price and description. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYestools: the full price list
toolYesthe tool that produced this payload

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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. 1 tool update
    • Changedget_paper1 field changed
      • changedInput schema / properties / doi / description
        Previous value: -"a DOI such as 10.1038/nature14539, its slash sent as %2F in the path"New value: +"a DOI such as 10.1038/nature14539, sent in the path as written (its slash as %2F also works)"
  2. 1 tool update
    • Addedget_liq_feed
  3. 22 tool updates
    • Addedget_classify
    • Addedget_coin_signal
    • Addedget_convert
    • Addedget_domain
    • Addedget_email_verify
    • Addedget_extract
    • Addedget_hash
    • Addedget_injection_check
    • Addedget_ocr
    • Addedget_paper
    • Addedget_papers
    • Addedget_qr
    • Addedget_sanctions_check
    • Addedget_signal_board
    • Addedget_sol_holder_clusters
    • Addedget_sol_token_check
    • Addedget_sol_token_flow
    • Addedget_summarize
    • Addedget_time
    • Addedget_transcribe
    • Addedget_translate
    • Addedget_wiki
  4. 20 tool updates
    • Removedget_funding_cross
    • Changedget_funding_extremes1 field changed
      • changedInput schema / properties / min_turnover_usd / description
        Previous value: -"liquidity floor, default 1M"New value: +"24h volume floor in USD, default 1M"
    • Changedget_funding_history1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"intervals, 1-200, default 30"New value: +"hourly settlements, 1-200, default 30"
    • Changedget_funding_radar2 fields changed
      • changedInput schema / properties / min_oi_usd / description
        Previous value: -"minimum combined open interest in USD across the venues: default 10000000 ($10M); the radar tracks pairs from 5000000 ($5M), and lower values return that floor"New value: +"minimum open interest in USD: default 10000000 ($10M); 0 returns every perp the radar tracks"
      • changedInput schema / properties / top / description
        Previous value: -"symbols returned, most extreme first, 1-100, default 20"New value: +"perps returned, most extreme first, 1-100, default 20"
    • Changedget_funding_rate1 field changed
      • changedOutput schema / properties / data / description
        Previous 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"New value: +"the get_funding_rate payload (without symbol: {sol, btc} from Hyperliquid; with symbol: {symbol, venues: {hyperliquid}}); a real captured example is free at https://x402.ochinimus.app/api/sample/get_funding_rate"
    • Addedget_fx_rates
    • Addedget_insider_trades
    • Removedget_long_short
    • Removedget_options_gex
    • Removedget_options_summary
    • Addedget_pdf_markdown
    • Addedget_sec_8k
    • Addedget_sec_filings
    • Changedget_spot1 field changed
      • changedInput schema / properties / symbol / description
        Previous value: -"SOL, BTC or ETH (default SOL). Anything else is declined with the supported list"New value: +"SOL, BTC or ETH (default SOL). Any other symbol answers 400 with the supported list"
    • Removedget_spread_arb
    • Changedget_top_movers1 field changed
      • changedInput schema / properties / min_turnover_usd / description
        Previous value: -"liquidity floor, default 1M"New value: +"24h volume floor in USD, default 1M"
    • Addedget_tradfi_perps
    • Changedget_tradfi_radar2 fields changed
      • changedInput schema / properties / min_oi_usd / description
        Previous value: -"minimum open interest in USD; venues that publish no OI are then left out (default 0)"New value: +"minimum open interest in USD (default 0)"
      • removedInput schema / properties / venue
        Removed value: -{
        -  "description": "comma list of hyperliquid, bybit, binance, okx (default all)",
        -  "type": "string"
        -}
    • Addedget_web_markdown
    • Removedget_whale_trades
  5. 7 tool updates
    • Removedget_dex_quote
    • Addedget_hl_whales
    • Changedget_honeypot_check2 fields changed
      • changedInput schema / properties / chain / description
        Previous value: -"base (default); other chains are refused for now"New value: +"base (default: Uniswap V2/V3/V4, Aerodrome), bsc (PancakeSwap V2/V3) or ethereum (Uniswap V2/V3)"
      • changedInput schema / properties / token / description
        Previous value: -"token contract address on Base, 0x followed by 40 hex characters"New value: +"token contract address, 0x followed by 40 hex characters"
    • Removedget_launch_odds
    • Removedget_rwa_yields
    • Removedget_stablecoin_flows
    • Removedget_tvl
  6. 4 tool updates
    • Addedget_base_launches
    • Addedget_honeypot_check
    • Addedget_launch_odds
    • Addedget_rwa_yields
  7. 6 tool updates
    • Addedget_equity_24h
    • Addedget_macro_calendar
    • Addedget_market_state
    • Addedget_options_gex
    • Addedget_options_summary
    • Addedget_tradfi_radar
  8. 1 tool update
    • Changedget_funding_radar1 field changed
      • changedInput schema / properties / min_oi_usd / description
        Previous value: -"minimum combined open interest in USD across the venues, default 10000000; the radar tracks 5000000 and up"New value: +"minimum combined open interest in USD across the venues: default 10000000 ($10M); the radar tracks pairs from 5000000 ($5M), and lower values return that floor"
  9. 2 tool updates
    • Addedget_funding_radar
    • Changedget_liq_heatmap1 field changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"New value: +"BTC, ETH, SOL, HYPE or any USDT perp e.g. BTCUSDT (default SOLUSDT)"
  10. 1 tool update
    • Changedget_funding_rate2 fields changed
      • addedInput schema / properties / symbol
        Added value: +{
        +  "description": "USDT perp symbol e.g. ETHUSDT, ONDOUSDT (omit for SOL and BTC from Hyperliquid)",
        +  "type": "string"
        +}
      • changedOutput schema / properties / data / description
        Previous 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"
  11. 12 tool updates
    • Changedget_basis2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_funding_cross2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_funding_history2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_liq_heatmap2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_long_short2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_open_interest2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_orderbook_imbalance2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_orderbook_walls2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_spread_arb2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_squeeze_score2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_volatility2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
    • Changedget_whale_trades2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"USDT perp symbol e.g. SOLUSDT"New value: +"USDT perp symbol e.g. SOLUSDT, BTCUSDT (default SOLUSDT)"
      • removedInput schema / required
        Removed value: -[
        -  "symbol"
        -]
  12. 59 tool updates
    • Changedget_base_balance1 field changed
      • changedOutput 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"
        +}
    • Changedget_base_gas1 field changed
      • changedOutput 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"
        +}
    • Changedget_basis1 field changed
      • changedOutput 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"
        +}
    • Changedget_btc_price1 field changed
      • changedOutput 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"
        +}
    • Changedget_cascade_alert1 field changed
      • changedOutput 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"
        +}
    • Changedget_cascade_forecast1 field changed
      • changedOutput 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"
        +}
    • Changedget_cascade_forecast_free1 field changed
      • changedOutput 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"
        +}
    • Changedget_cascade_history2 fields changed
      • addedInput schema / properties / scope / description
        Added value: +"symbol = just this symbol (default), all = every recorded USDT perp"
      • changedOutput 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"
        +}
    • Changedget_cascade_scan1 field changed
      • changedOutput 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"
        +}
    • Changedget_dex_quote1 field changed
      • changedOutput 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"
        +}
    • Changedget_eth_price1 field changed
      • changedOutput 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"
        +}
    • Changedget_exit_method1 field changed
      • changedOutput 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"
        +}
    • Changedget_exit_quote1 field changed
      • changedOutput 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"
        +}
    • Changedget_fear_greed1 field changed
      • changedOutput 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"
        +}
    • Changedget_forecast_question1 field changed
      • changedOutput 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"
        +}
    • Changedget_forecast_record1 field changed
      • changedOutput 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"
        +}
    • Changedget_funding_cross1 field changed
      • changedOutput 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"
        +}
    • Changedget_funding_extremes1 field changed
      • changedOutput 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"
        +}
    • Changedget_funding_history1 field changed
      • changedOutput 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"
        +}
    • Addedget_funding_pulse
    • Changedget_funding_rate1 field changed
      • changedOutput 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"
        +}
    • Changedget_jito_tips1 field changed
      • changedOutput 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"
        +}
    • Changedget_last_liquidation1 field changed
      • changedOutput 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"
        +}
    • Changedget_liq_heatmap1 field changed
      • changedOutput 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"
        +}
    • Changedget_liq_history1 field changed
      • changedOutput 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"
        +}
    • Addedget_liq_pulse
    • Changedget_liquidation_leaders1 field changed
      • changedOutput 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"
        +}
    • Changedget_liquidation_stats1 field changed
      • changedOutput 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"
        +}
    • Changedget_long_short1 field changed
      • changedOutput 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"
        +}
    • Changedget_market_snapshot1 field changed
      • changedOutput 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"
        +}
    • Changedget_oi_spike_scan1 field changed
      • changedOutput 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"
        +}
    • Changedget_open_interest1 field changed
      • changedOutput 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"
        +}
    • Changedget_orderbook_imbalance1 field changed
      • changedOutput 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"
        +}
    • Changedget_orderbook_walls1 field changed
      • changedOutput 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"
        +}
    • Changedget_peg_deviation1 field changed
      • changedOutput 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"
        +}
    • Changedget_peg_sessions1 field changed
      • changedOutput 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"
        +}
    • Changedget_peg_universe1 field changed
      • changedOutput 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"
        +}
    • Addedget_perp
    • Changedget_positioning1 field changed
      • changedOutput 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"
        +}
    • Changedget_priority_fees1 field changed
      • changedOutput 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"
        +}
    • Changedget_recent_liquidations1 field changed
      • changedOutput 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"
        +}
    • Changedget_sol_network1 field changed
      • changedOutput 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"
        +}
    • Changedget_sol_price1 field changed
      • changedOutput 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"
        +}
    • Addedget_spot
    • Changedget_spread_arb1 field changed
      • changedOutput 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"
        +}
    • Changedget_squeeze_score1 field changed
      • changedOutput 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"
        +}
    • Changedget_stablecoin_flows1 field changed
      • changedOutput 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"
        +}
    • Changedget_token_holders1 field changed
      • changedOutput 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"
        +}
    • Changedget_token_metadata1 field changed
      • changedOutput 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"
        +}
    • Changedget_token_risk1 field changed
      • changedOutput 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"
        +}
    • Changedget_top_movers1 field changed
      • changedOutput 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"
        +}
    • Changedget_trade_context1 field changed
      • changedOutput 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"
        +}
    • Changedget_tvl1 field changed
      • changedOutput 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"
        +}
    • Changedget_venue_liq_share1 field changed
      • changedOutput 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"
        +}
    • Changedget_volatility1 field changed
      • changedOutput 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"
        +}
    • Changedget_wallet_activity1 field changed
      • changedOutput 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"
        +}
    • Changedget_wallet_holdings1 field changed
      • changedOutput 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"
        +}
    • Changedget_whale_trades1 field changed
      • changedOutput 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"
        +}
    • Changedpricing1 field changed
      • changedOutput 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"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides 13 Solana DeFi intelligence tools for AI agents, paid per-call via micropayments (USDC). Enables pulling live DeFi data and automatic payment settlement.
    13
    44 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Keyless, pay-per-call compliance & regulated-data tools for AI agents: OFAC wallet + sanctions/PEP + KYB screening, SEC filings, FRED economics, FDA recalls, federal awards, and continuous monitoring (watch a wallet/company/brand for status changes). USDC via x402 on Base/Solana, no API key, no signup.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Solana on-chain intelligence API — token scans, wallet PnL, bundle detection, fresh wallets, dev profiling. MCP server for Claude, Cursor & AI agents. Live PumpFun/Raydium streams
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 76 tools for enterprise Solana development, enabling stablecoin issuance, payments, trading, wallet management, and compliance screening via natural language.
    14 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.