MAD Synapse
Server Details
Solana + pump.fun intel for agents: launch verdicts, token risk, dev/wallet records, smart money.
- Status
- Healthy
- Uptime
- 99.6% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 15 tools
Most tools target distinct resources: launch discovery, bundle forensics, token risk, dev history, wallet record, copy simulation, etc. However, there is conceptual overlap among launch_scan, bundle_forensics, token_risk, and pump_dev—all can produce a risk/verdict for a pump.fun launch. The detailed 'when to use' guidance and cross-references reduce confusion, but an agent may still need to reason about which verdict tool to pick first.
All names use snake_case, which is consistent, but the naming patterns are mixed: verb_noun (copy_backtest, launch_scan, tx_explain), noun_noun (bundle_forensics, dlmm_whales, solana_network, wallet_holdings), a single generic noun (price), and a prefixed group (pump_dev, pump_launches, pump_pulse, pump_wallet). The pump_* cluster is predictable, but the overall set lacks a single convention.
The server covers a broad Solana trading-intelligence domain, and 15 tools are well within the typical 3–15 range. Each tool appears to fill a distinct niche: discovery, risk, wallet profiling, copy testing, market pulse, network status, transaction decoding, and holdings. No tools look like trivial duplicates.
The set covers many angles of pump.fun and Solana wallet analysis, but several descriptions reference tools that are not present (pump_token, pump_odds, pump_history, crypto_price, gas_now, evm_tx, evm_address, evm_token_security), creating dead ends for raw token data, historical trends, and cross-chain queries. Core analytics are present, but an agent following the documented cross-references will hit missing operations.
Available Tools
15 toolsbundle_forensicsBundle forensics + rug guardARead-onlyIdempotentInspect
Who bundled a Solana pump.fun launch: every block-0 wallet labelled sniper bot / bundle / dev-linked, supply bought and still held, holders who got tokens by transfer, serial-dev check, top-10 concentration, RugCheck — plus a back-tested skip/pass verdict. The rug guard MAD snipers use before every buy. Skip rules were tested on 2,221 real caller calls (held-out: stop-outs 10%→5%, rugs 16%→11%): creator launched another coin in the prior 24 h; top-10 wallets >35%; block-0 wallets that also bundled this creator's earlier launches; block-0 buys >20% of supply. Extra flags: RugCheck danger risks, insider wallets >15%, and >10% held by wallets that never bought on the curve (tokens moved in by transfer, the layered-bundle pattern of launch tools like Proxima). "ok:true" means no red flags were found, not that the coin is safe. When to use: To see WHO bundled a launch and get the skip/pass rug guard MAD snipers use; for a scored launch verdict use launch_scan. Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Solana token mint (pump.fun launches get the full bundle view) Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ms | No | |
| ok | No | |
| dev | No | |
| mint | No | |
| warn | No | |
| bundle | No | |
| holders | No | |
| reasons | No | |
| verdict | No | |
| rugcheck | No | |
| swap_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial non-structured context: pay-per-call pricing ($0.003, 10 free/day, x402 payment-required result), error behavior (isError, not charged), and the crucial semantic caveat that 'ok:true' means no red flags were found, not that the coin is safe. This discloses behavioral traits well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose before the rule details, and most content (skip rules with back-test numbers, pricing, error semantics) is genuinely load-bearing. It is dense and somewhat long, with the enumerated skip rules reading like a spec list, but almost every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in prose. Given a single required parameter, rich annotations, and an output schema, the description supplies everything extra an agent needs: scope, verdict semantics, cost model, and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage that already documents the Base58 mint format, so the schema carries the burden. The description adds only the qualifier that pump.fun launches get the full bundle view, which is scoping context rather than parameter syntax; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Who bundled a Solana pump.fun launch,' then enumerates the exact analyses performed (block-0 labelling, supply held, serial-dev check, top-10 concentration, RugCheck, back-tested verdict). It explicitly distinguishes itself from launch_scan ('for a scored launch verdict use launch_scan'), so an agent can route between them without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has an explicit 'When to use' section that names the scenario (see WHO bundled a launch, get the skip/pass rug guard) and names the alternative (launch_scan) with the condition that selects it. Nothing about selection 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.
copy_backtestCopy-trade backtestARead-onlyIdempotentInspect
Would copying this wallet have made money? Replays its pump.fun entries and exits 0–25 slots late on the recorded curve and shows where the edge dies. Takes the wallet's pump.fun positions over the last 1–14 days and simulates a copier that buys the same token and sells when the leader sells, arriving 0, 1, 2, 5, 10 or 25 slots (0–10 s) late. Fills use the bonding-curve reserves our tape recorded at that moment, including curve fees and the copy's own price impact. Returns PnL, win rate and ROI per latency, the leader's own median ROI for contrast, and a verdict: copyable, latency-sensitive (edge gone by N slots), or not copyable. A wallet that looks great on its own PnL often loses money for anyone who follows it. When to use: After pump_wallet or smart_money, to check copying survives realistic delay. Price: $0.03 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days of the wallet's history to replay. Range 1-14. Default 3. | |
| exit | No | sell on the leader's first sell, or once it has sold 90%. Default "first_sell". | first_sell |
| wallet | Yes | leader wallet to copy. Base58 Solana address, 32-44 chars. | |
| size_sol | No | SOL per copied entry. Range 0.01-10. Default 0.1. | |
| max_positions | No | most recent positions to replay. Range 10-300. Default 150. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| found | No | |
| label | No | |
| setup | No | |
| by_lag | No | |
| wallet | No | |
| verdict | No | |
| fast_flips_pct | No | |
| biggest_at_2_slots | No | |
| leader_median_roi_pct | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnly/idempotent/non-destructive): it discloses the fill model (bonding-curve reserves from the recorded tape, including curve fees and the copy's own price impact), the latency grid, the returned verdict categories, and pricing ($0.03/call, 10 free/day, x402 payment-required result). It also clarifies that upstream errors return isError and are not charged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question and the mechanism, then layers simulation details, output, verdict, and operational notes (cost, errors). Dense but mostly non-redundant; the motivating line about wallets that look great on their own PnL earns its place as rationale, though the prose runs long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain returns, yet it summarizes PnL/win-rate/ROI per latency and the verdict anyway. Combined with cost, error behavior, and the when-to-use hook, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented with ranges, defaults and the exit enum. The description reinforces the meaning ('last 1-14 days', 'sells when the leader sells') but adds no syntax or semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (replays a wallet's pump.fun entries/exits) and frames it with a concrete question ('Would copying this wallet have made money?'). It explicitly distinguishes itself from sibling tools by naming pump_wallet and smart_money as the upstream steps, so an agent can place it in the workflow without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'When to use: After pump_wallet or smart_money, to check copying survives realistic delay' gives both the trigger condition and the alternatives it complements. It also states cost and error semantics, leaving no routing or invocation ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counterparty_checkCounterparty checkARead-onlyIdempotentInspect
One-call verdict on a Solana wallet before you deal with it: serial token launcher, fast dumper, trading bot, or clean. Combines the wallet's pump.fun launch history (graduation rate, how fast it sells its own launches) with its trading profile into a risk level and reasons. When to use: Before sending to or trading with a Solana wallet; for full trade stats use pump_wallet. Price: $0.005 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | wallet address. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| scope | No | |
| wallet | No | |
| reasons | No | |
| trading | No | |
| launches | No | |
| risk_score | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description goes well beyond them by disclosing cost ($0.005/call), a free tier with a concrete limit (10/day), the post-quota behavior (payment-required result listing x402 options), and error semantics (isError on invalid input or upstream failure, not charged). These are exactly the operational traits an agent needs before invoking a paid external call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with distinct jobs: what it does, when to use it, and operational caveats (price/errors). The verdict is front-loaded and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the description still hints at the return shape (risk level + reasons). With a single fully-documented parameter, annotations covering safety, and pricing/error behavior spelled out, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already documents the Base58 pattern and length. The description adds the contextual framing that the wallet is a Solana counterparty, but no extra syntax or format guidance. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'One-call verdict on a Solana wallet', then enumerates the verdict classes (serial token launcher, fast dumper, trading bot, clean) and the data sources (pump.fun launch history + trading profile). This clearly separates it from siblings like pump_wallet, address_check, and token_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use: Before sending to or trading with a Solana wallet' states the trigger condition, and 'for full trade stats use pump_wallet' names the alternative and the circumstance that selects it. Nothing 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.
dlmm_whalesDLMM LP whalesARead-onlyIdempotentInspect
Meteora DLMM liquidity providers ranked by measured on-chain edge: net USD, median multiple, win rate, hold time, size, recency. Produced by our own discovery engine, which decodes DLMM liquidity instructions across high-volume and high-yield pools every few hours and scores each wallet's completed round trips. These are the wallets our live copier watches. Price: $0.02 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many ranked LP wallets to return. Range 1-25. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| whales | No | |
| generated_at | No | |
| pools_scanned | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent safety profile, and the description adds substantial context beyond them: data provenance (own discovery engine decoding DLMM instructions across high-volume/high-yield pools), refresh cadence (every few hours), cost model ($0.02/call, 10 free/day, x402 payment-required result), and error behavior (isError, not charged). This is exactly the extra behavioral context the bar rewards.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity and ranking criteria, then provenance, then pricing, then error handling. Dense but every sentence carries distinct information; slightly packed for a single paragraph but no wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description fills the remaining gaps an agent needs: cost/quota, failure semantics, data freshness, and the source of the ranking. Nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'limit' parameter, including default and 1-25 range, so the schema already carries full semantics. The description adds nothing about the parameter, which is the correct baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (Meteora DLMM liquidity providers) and spells out the ranking dimensions (net USD, median multiple, win rate, hold time, size, recency). An agent can distinguish it from dlmm_pool, dlmm_positions, and smart_money purely 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful context ('these are the wallets our live copier watches') that implies a copy-trading/discovery use case, and pricing guidance is explicit. However, it never states when to pick this over siblings like smart_money or dlmm_positions, nor any exclusions. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_scanLaunch scan (bundle)ARead-onlyIdempotentInspect
One call, one verdict on a pump.fun launch: 0-100 score with positives and risks, graduation odds, dev record, snipers, holders, flow. Runs pump_token + pump_dev + pump_odds together (cheaper than calling them separately) and folds them into a single score and verdict an agent can act on: strong / neutral / weak / avoid. When to use: The one-call verdict on a pump.fun launch; it combines pump_token (callable here by name), pump_dev, pump_odds (callable here by name) and token_risk signals. Price: $0.025 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | pump.fun token mint. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dev | No | |
| flow | No | |
| mint | No | |
| note | No | |
| curve | No | |
| flags | No | |
| risks | No | |
| score | No | |
| symbol | No | |
| verdict | No | |
| swap_url | No | |
| positives | No | |
| graduation | No | |
| launch_snipers | No | |
| top_curve_holders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, so the bar is low, yet the description adds substantial non-annotated behavior: $0.025 per call, 10 free/day, x402 payment-required result, and isError semantics with an explicit note that failures are not charged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verdict and return contents, then usage, price and errors in distinct labeled clauses. Dense with parenthetical asides ('callable here by name' twice), but nearly every sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, fully documented, output-schema-backed tool, the description covers composition, cost, and error handling. An agent has everything needed to decide to call it and to interpret failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single mint parameter, including base58 pattern and length. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('one-call verdict on a pump.fun launch') and enumerates exactly what comes back: 0-100 score, positives/risks, graduation odds, dev record, snipers, holders, flow. It also distinguishes itself from the constituent tools by stating it bundles pump_token + pump_dev + pump_odds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When to use' clause positions it as the one-call verdict, and it states the alternative path explicitly: cheaper than calling pump_token, pump_dev and pump_odds separately. Both the condition to select it and the alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
priceToken pricesARead-onlyIdempotentInspect
USD price, 24h change and liquidity for up to 100 Solana mints; flags illiquid (dead) tokens. Jupiter price data with a liquidity floor: anything under $1,000 of liquidity is flagged dead, because round-trip quotes on dead curves look fine and are not. When to use: For Solana mints by address; for majors or other chains by symbol use crypto_price (callable here by name). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| mints | Yes | Solana token mint addresses (base58) to price. 1-100 items. |
Output Schema
| Name | Required | Description |
|---|---|---|
| prices | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive, and the description adds real behavioral depth beyond them: the $1,000 liquidity floor, why dead-curve round-trip quotes are misleading, and that upstream failures return isError without being charged. That is exactly the kind of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability, then rationale, routing, and cost/error notes in descending priority. Slightly dense in the middle sentence, but each clause (liquidity floor, dead-flag rationale) carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. Input bounds, routing to the alternative, cost, and failure semantics are all present, leaving no gap 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage, the schema already documents the base58 mint list and the 1-100 bound; the description's 'up to 100 Solana mints' is essentially a restatement. It 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the resource (Solana mints), the returned fields (USD price, 24h change, liquidity), the batch limit (up to 100), and a distinctive behavior (illiquid/dead flagging). It also explicitly distinguishes itself from the named alternative crypto_price by input type (address vs symbol). An agent can tell what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to use' clause gives a concrete routing rule: Solana mints by address here, majors/other chains by symbol via crypto_price. It also states cost ('Price: free') and error behavior ('returns isError ... not charged'), covering when-not-to-expect-success.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pump_devpump.fun dev track recordARead-onlyIdempotentInspect
A creator wallet's launch history: launches, graduation rate, launch cadence, how fast the dev sells, verdict. Looks up every token the wallet created since recording began and replays the dev's own trades on its 15 most recent launches. When to use: For the creator of a token; pass the dev wallet, not the mint (pump_token (callable here by name) reports the dev of a mint). Price: $0.01 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| creator | Yes | creator (dev) wallet. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | No | |
| creator | No | |
| verdict | No | |
| baseline | No | |
| launches | No | |
| graduated | No | |
| last_launch | No | |
| first_launch | No | |
| recent_launches | No | |
| launches_last_24h | No | |
| graduation_rate_pct | No | |
| median_gap_between_launches_s | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description layers on genuinely new operational context: $0.01 per call, 10 free/day, x402 payment-required results, and isError behavior for invalid input or upstream failure without charging. This is exactly the kind of detail structured fields 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense but front-loaded sentences: what it returns, then scope, then usage, then cost and error behavior. No filler, though the metric enumeration and pricing/error tail make it longer than strictly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, yet it still names the metrics and coverage window, and it covers pricing, error semantics, and sibling routing. Nothing an agent needs to select or 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented there, so the baseline is 3. The description adds real disambiguation by specifying the parameter must be the dev wallet rather than the mint address, which the schema's pattern alone cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — a creator wallet's launch history — and enumerates the exact outputs (launches, graduation rate, cadence, sell speed, verdict). This is clearly distinct from siblings like pump_wallet, token_risk, or launch_scan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' block tells the agent to pass the dev wallet, not the mint, and names a sibling (pump_token) that surfaces the dev of a mint. It also states the scope of coverage (since recording began, 15 most recent launches), so the agent knows when this tool is and is not the right fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pump_launchesNewest pump.fun launchesARead-onlyIdempotentInspect
The newest pump.fun tokens with dev buy, early buyers/volume, curve progress, market cap and creator launch count. Returns up to 50 of the most recent launches (seconds old) with the first-N-seconds flow already aggregated, so an agent can shortlist without replaying the chain. When to use: To discover new mints; then use launch_scan for a verdict on one of them. Price: $0.002 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many of the newest launches to return. Range 1-50. Default 20. | |
| window_s | No | early-flow window after creation. Range 30-3600. Default 300. |
Output Schema
| Name | Required | Description |
|---|---|---|
| launches | No | |
| window_s | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description goes well beyond that with pricing ($0.002/call, 10 free/day, x402 options on payment-required results) and error behavior ('returns isError ... not charged') – non-obvious operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool returns, then scopes usably with labeled 'When to use', 'Price', and 'Errors' sections. Dense but every clause carries information; only minor redundancy between the prose scope and the schema's limit cap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only discovery tool with an output schema, the description covers the important gaps: what aggregated data comes back, the cost/rate-limit model, and error semantics. An agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit and window_s are already fully documented with ranges and defaults. The description echoes the 'up to 50' cap and mentions the aggregated window but adds no syntax or interpretation beyond the schema, matching the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('The newest pump.fun tokens') plus the exact payload it returns (dev buy, early buyers/volume, curve progress, market cap, creator launch count). The 'up to 50 of the most recent launches' scope and the named sibling launch_scan clearly distinguish it from the other pump_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: 'When to use: To discover new mints; then use launch_scan for a verdict on one of them.' It names the alternative and the condition that selects it, 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.
pump_pulsepump.fun market pulseARead-onlyIdempotentInspect
Live pump.fun heartbeat: trades/min, launches, graduations, graduation rate, hottest tokens in the last 15 min. Computed from our own live recording of every pump.fun bonding-curve trade. Use it to decide whether the launch market is hot or dead before scanning individual tokens. When to use: For the market right now; for trends over days use pump_history (callable here by name). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| as_of | No | |
| sol_usd | No | |
| coverage | No | |
| last_24h | No | |
| last_hour | No | |
| hottest_15m | No | |
| trades_per_min | No | |
| recent_graduations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering read-only, open-world, idempotent, and non-destructive behavior, the description adds meaningful context beyond annotations: it discloses the data source ('our own live recording of every pump.fun bonding-curve trade'), the cost ('Price: free'), and error behavior ('returns isError... not charged').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core metrics and data source, then usage, price, and errors. It is slightly longer than necessary because the 'Use it to decide...' sentence overlaps with the following 'When to use' sentence, but no sentence is purely wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only tool with an output schema and rich annotations, the description is complete: it explains the metric window, data provenance, use case, alternative tool, cost, and error handling. Return-value structure is appropriately left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so parameter semantics are not applicable; the baseline of 4 applies. The description does not need to explain parameters because the schema is empty and fully documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (pump.fun market pulse) and enumerates the exact metrics returned: trades/min, launches, graduations, graduation rate, and hottest tokens over a 15-minute window. It also distinguishes itself from alternatives by naming pump_history for longer-term trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Use it to decide whether the launch market is hot or dead before scanning individual tokens' and 'When to use: For the market right now; for trends over days use pump_history.' The alternative and its selection condition are both stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pump_walletpump.fun wallet profileARead-onlyIdempotentInspect
Any wallet's pump.fun trading record: realized PnL, win rate, hold time, frequency (bot or human), tokens it launched. Analyses up to the last 20,000 curve trades of the wallet. Use it to judge whether a wallet is smart money, a sniper bot, a serial dumper or a dev. When to use: For a trader's pump.fun performance. For a quick deal/no-deal verdict on any wallet use counterparty_check; to test whether copying it pays use copy_backtest. Price: $0.01 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many of the wallet's most recent recorded trades to analyse. Range 100-20000. Default 20000. | |
| wallet | Yes | wallet address. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| found | No | |
| label | No | |
| wallet | No | |
| window | No | |
| activity | No | |
| recent_tokens | No | |
| classification | No | |
| created_tokens | No | |
| closed_positions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, and the description adds substantive extras beyond them: the 20k trade analysis cap, pricing ($0.01/call, 10 free/day, x402 payment-required result), and error behavior (isError on invalid input or upstream failure, not charged). This is exactly the value-add structured fields 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the payoff, then usage, alternatives, price, and errors in compact sentences. Slightly dense with the pricing/payment aside, but every sentence carries actionable information for an agent deciding whether and how to call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary. Purpose, scope, sibling routing, cost, and failure modes are all covered; nothing needed to invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both wallet and limit are already documented with pattern, range, and default. The description restates the 20k cap but adds no format or semantic detail beyond the schema. Baseline 3 for a fully-covered two-param schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Any wallet's pump.fun trading record') and enumerates the returned fields: realized PnL, win rate, hold time, frequency, launched tokens. It also bounds the scope ('up to the last 20,000 curve trades'), so an agent knows exactly what it gets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' clause plus two named alternatives with their selecting conditions: counterparty_check for a quick deal/no-deal verdict, copy_backtest to test copy-trading. Routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_moneySmart money on pump.funARead-onlyIdempotentInspect
The pump.fun wallets with the best realized PnL in the last 24 h — and the tokens those wallets are buying right now. Leaderboard of wallets by realized profit on fully-closed curve positions (min 8 closed, rebuilt every 30 min), sortable by PnL, win rate or ROI, plus a live feed of what the top 50 bought in the last N minutes, ranked by how many of them piled in. When to use: To find wallets worth watching; then copy_backtest to test copying one. Price: $0.02 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Rank by realized PnL in SOL ("pnl"), win rate ("win_rate") or return on SOL spent ("roi"). Default "pnl". | pnl |
| limit | No | How many top wallets to return. Range 1-50. Default 20. | |
| window_min | No | look-back for buying_now. Range 1-120. Default 15. | |
| exclude_bots | No | drop sub-20-second and high-frequency wallets. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| sort | No | |
| window | No | |
| wallets | No | |
| buying_now | No | |
| leaderboard_built_at | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond by disclosing the $0.02-per-call price, the 10 free/day quota, the x402 payment-required path, the 30-minute rebuild cadence, and that invalid input or upstream failures return isError uncharged. It does not, however, describe the freshness/latency of the live feed beyond the window parameter. Strong behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core output is front-loaded in the first sentence before the sortable/feed details, and the when-to-use, price, and error clauses are ordered usefully. It is dense and multi-clause, but nearly every clause adds a distinct fact rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be re-explained, and the description still covers pricing, quota, error behavior, refresh cadence, ranking basis, and the natural follow-up tool. 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.
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 meaning by tying window_min to the buying_now feed ('last N minutes'), limit to the leaderboard ('top 50'), and sort to PnL/win-rate/ROI. It clarifies which param drives which half of the response, which the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource (a wallet leaderboard ranked by realized PnL plus a live buying feed) and immediately scopes it: 'fully-closed curve positions (min 8 closed, rebuilt every 30 min)'. It is clearly distinguishable from siblings like pump_wallet and copy_backtest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use ('To find wallets worth watching') and routes the agent to the next step with a named alternative ('then copy_backtest to test copying one'). Nothing about tool selection 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.
solana_networkSolana network statusARead-onlyIdempotentInspect
Solana right now: TPS (total and non-vote), slot and block height, epoch progress and ETA, priority-fee percentiles, cluster version. Read from mainnet RPC: recent performance samples, epoch info, prioritization fees. When to use: For Solana fees/TPS; for EVM and BTC fee costs use gas_now (callable here by name). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| slot | No | |
| epoch | No | |
| version | No | |
| tps_total | No | |
| avg_slot_ms | No | |
| block_height | No | |
| tps_non_vote | No | |
| window_minutes | No | |
| epoch_progress_pct | No | |
| epoch_ends_in_hours | No | |
| priority_fee_micro_lamports_per_cu | No |
TDQS
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 genuinely new context: data provenance (mainnet RPC performance samples, epoch info, prioritization fees), cost (free), and error behavior (isError returned for invalid input or upstream failure, not charged). That is meaningful beyond the annotations, though it says nothing about caching/staleness of 'right now'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource ('Solana right now') followed by the return payload, then usage, cost, and errors in a compact run of clauses. Dense but every clause carries information; the semicolon-chained list is slightly harder to scan than separate sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. Combined with the description's coverage of source, cost, and failure modes, an agent has everything needed to call this zero-arg tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing further for the description to disambiguate about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Solana network status) and enumerates exactly what it returns: TPS total and non-vote, slot/block height, epoch progress and ETA, priority-fee percentiles, cluster version. It also names the sibling it is not (gas_now for EVM/BTC fees), so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' clause scoped to Solana fees/TPS, with the alternative (gas_now) named by tool name for the EVM/BTC case. This is textbook routing guidance with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_riskToken risk scoreARead-onlyIdempotentInspect
0-100 rug-risk score for any Solana token: mint/freeze authority, Token-2022 traps, holder concentration, liquidity depth — plus pump.fun curve flags. Contract state is read live from Solana (authorities, Token-2022 extensions such as transfer fees, hooks, permanent delegate, pausable), holders from the largest accounts, market from DexScreener. For pump.fun mints the curve forensics flags are merged in. When to use: For any Solana token, pump.fun or not. For pump.fun curve-stage detail use pump_token (callable here by name); for EVM tokens use evm_token_security (callable here by name). Price: $0.005 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | token mint. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dex | No | |
| mint | No | |
| name | No | |
| flags | No | |
| found | No | |
| grade | No | |
| score | No | |
| symbol | No | |
| fdv_usd | No | |
| onchain | No | |
| pair_url | No | |
| swap_url | No | |
| txns_24h | No | |
| price_usd | No | |
| disclaimer | No | |
| known_asset | No | |
| solana_pairs | No | |
| generated_utc | No | |
| liquidity_usd | No | |
| onchain_error | No | |
| pair_age_hours | No | |
| volume_24h_usd | No | |
| liquidity_total_usd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent/non-destructive annotations by disclosing data provenance (live Solana contract state, largest-account holders, DexScreener market), pricing ($0.005/call, 10 free/day, x402 options on payment-required), and error semantics (isError for invalid input or upstream failure, not charged). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the score and its inputs, then usage, then pricing/errors in a logical order. It is longer than most definitions, but nearly every clause carries distinct information; only the enumeration of Token-2022 extensions is slightly padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, and the description covers data sources, pump.fun merging, sibling routing, cost, and error behavior. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single mint parameter is fully documented in the schema (Base58, 32-44 chars, pattern). The description adds no syntax or format detail beyond that, so the baseline 3 for a schema-documented parameter is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (0-100 rug-risk score) and enumerates the exact risk dimensions scored: mint/freeze authority, Token-2022 traps, holder concentration, liquidity depth, pump.fun curve flags. It explicitly distinguishes itself from siblings pump_token and evm_token_security, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit 'When to use' clause covering any Solana token (pump.fun or not), names pump_token for curve-stage detail and evm_token_security for EVM, and even notes those siblings are callable by name. Both the selection condition and the alternatives are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_explainExplain a transactionARead-onlyIdempotentInspect
Turns any Solana transaction signature into plain facts: status, fee, programs by name, SOL and token balance changes per owner, a one-line summary. Works for swaps, pump.fun trades, LP moves, transfers and failures (includes the error log lines). When to use: For Solana signatures; for 0x hashes use evm_tx (callable here by name). Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| signature | Yes | Solana transaction signature (base58, 64-90 chars). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slot | No | |
| time | No | |
| error | No | |
| found | No | |
| status | No | |
| fee_sol | No | |
| signers | No | |
| summary | No | |
| programs | No | |
| signature | No | |
| error_logs | No | |
| sol_changes | No | |
| compute_units | No | |
| token_changes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds non-obvious behavior beyond them: per-call price ($0.003), a free tier (10/day), an x402 payment-required result after the quota, and that errors return isError and are not charged. That is precisely the context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability, then labeled 'When to use', 'Price', and 'Errors' segments — every sentence carries information. It is slightly dense with commercial detail, and the parenthetical 'callable here by name' is mildly noisy, but there is no true filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure needn't be re-explained; the description still sketches the payload at a useful level (status, fee, named programs, balance deltas, summary). Combined with pricing, quota, and error semantics, an agent has everything needed to call it correctly and anticipate the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage (base58, 64-90 chars, regex pattern). The description adds no format or syntax detail beyond the schema, so the baseline of 3 applies — the schema does all the work here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('turns any Solana transaction signature into plain facts') and enumerates exactly what is produced: status, fee, named programs, per-owner SOL/token balance changes, summary. It also explicitly names the non-Solana case (0x hashes → evm_tx), so an agent can separate it from other sibling lookup tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit routing rule: 'For Solana signatures; for 0x hashes use evm_tx'. It also covers the failure path (works for failed transactions, includes error log lines), leaving no ambiguity about when this tool applies versus an EVM equivalent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_holdingsWallet holdingsARead-onlyIdempotentInspect
Everything a Solana wallet holds — SOL, SPL and Token-2022 tokens — valued in USD and sorted by value. Reads token accounts from both token programs and prices them in one pass. Empty accounts are counted as reclaimable rent. When to use: For Solana wallets; for EVM wallets use evm_address (callable here by name). Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | wallet address. Base58 Solana address, 32-44 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sol | No | |
| tokens | No | |
| wallet | No | |
| sol_usd | No | |
| total_usd | No | |
| tokens_usd | No | |
| empty_accounts | No | |
| token_accounts | No |
TDQS
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 extra context: pricing ($0.003, 10 free/day, x402 payment-required result), the error contract (isError for invalid input or upstream failure, not charged), dual token-program reads, and empty accounts counted as reclaimable rent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the value proposition, then usage, pricing and errors in a compact sequence. Dense but every clause carries useful information; only slightly long for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be explained. Given that, the description covers domain scope, alternative routing, cost model, and error semantics — 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage (pattern and Base58 format fully documented in the schema). The description adds no parameter-level detail beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Everything a Solana wallet holds — SOL, SPL and Token-2022 tokens — valued in USD and sorted by value.' It names the sibling alternative (evm_address) and its domain constraint, so an agent can distinguish it from the many other wallet/address tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' section: Solana wallets here, EVM wallets via evm_address. Nothing is left to inference, and it even explains that evm_address is callable by name.
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.
2 tool updates
- Removed
address_check - Added
bundle_forensics
60 tool updates
- Removed
arxiv_search - Removed
bitcoin_network - Removed
book_search - Removed
cex_ticker - Removed
chain_tvl - Removed
country_info - Removed
cron_explain - Removed
crypto_price - Removed
defi_protocol - Removed
defi_rankings - Removed
dex_volumes - Removed
dlmm_pool - Removed
dlmm_positions - Removed
dns_lookup - Removed
doi_lookup - Removed
domain_whois - Removed
earthquakes - Removed
email_check - Removed
ens_resolve - Removed
erc20_info - Removed
evm_address - Removed
evm_token_security - Removed
evm_tx - Removed
fear_greed - Removed
fees_revenue - Removed
funding_rates - Removed
fx_rates - Removed
gas_now - Removed
geocode - Removed
github_repo - Removed
hash_encode - Removed
hn_search - Removed
holidays - Removed
http_probe - Removed
hyperliquid_markets - Removed
json_schema_validate - Removed
jwt_decode - Removed
markdown_convert - Removed
orderbook_depth - Removed
package_info - Removed
price_history - Removed
pump_history - Removed
pump_odds - Removed
pump_token - Removed
qr_code - Removed
random_gen - Removed
robots_check - Removed
stablecoins - Removed
sun_moon - Removed
text_diff - Removed
text_stats - Removed
time_convert - Removed
tls_check - Removed
unit_convert - Removed
vuln_check - Removed
weather - Removed
web_meta - Removed
web_read - Removed
wiki - Removed
yield_pools
75 tool updates
- Changed
address_check2 fields changed- added
Input schema / properties / address / descriptionAdded value: +"Any string that might be a crypto address (EVM, Solana, Bitcoin, Tron, etc.)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "matches": { + "items": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "checksum_was_valid": { + "type": [ + "string", + "null" + ] + }, + "checksummed": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "valid": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "valid": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" +}
- Changed
arxiv_search3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many papers to return. Range 1-30. Default 10." - added
Input schema / properties / sort / descriptionAdded value: +"Order by relevance to the query or by submission date. One of \"relevance\", \"newest\". Default \"relevance\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "papers": { + "items": { + "properties": { + "abstract": { + "type": [ + "string", + "null" + ] + }, + "authors": { + "type": "array" + }, + "categories": { + "type": "array" + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "pdf": { + "type": [ + "string", + "null" + ] + }, + "published": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "updated": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "query": { + "type": [ + "string", + "null" + ] + }, + "total_results": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
bitcoin_network1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "block_height": { + "type": [ + "number", + "null" + ] + }, + "difficulty": { + "type": [ + "number", + "null" + ] + }, + "difficulty_adjustment": { + "properties": { + "estimated_change_pct": { + "type": [ + "number", + "null" + ] + }, + "eta": { + "type": [ + "string", + "null" + ] + }, + "progress_pct": { + "type": [ + "number", + "null" + ] + }, + "remaining_blocks": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "fees_sat_per_vb": { + "properties": { + "economyFee": { + "type": [ + "number", + "null" + ] + }, + "fastestFee": { + "type": [ + "number", + "null" + ] + }, + "halfHourFee": { + "type": [ + "number", + "null" + ] + }, + "hourFee": { + "type": [ + "number", + "null" + ] + }, + "minimumFee": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "hashrate_eh_s": { + "type": [ + "number", + "null" + ] + }, + "mempool": { + "properties": { + "total_fee_btc": { + "type": [ + "number", + "null" + ] + }, + "tx_count": { + "type": [ + "number", + "null" + ] + }, + "vsize_mb": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
book_search2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many books to return. Range 1-20. Default 5." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "books": { + "items": { + "properties": { + "authors": { + "type": "array" + }, + "cover": { + "type": [ + "string", + "null" + ] + }, + "editions": { + "type": [ + "number", + "null" + ] + }, + "first_published": { + "type": [ + "number", + "null" + ] + }, + "isbn": { + "type": "array" + }, + "languages": { + "type": "array" + }, + "pages_median": { + "type": [ + "number", + "null" + ] + }, + "publishers": { + "type": "array" + }, + "rating": { + "type": [ + "number", + "null" + ] + }, + "ratings": { + "type": [ + "number", + "null" + ] + }, + "subjects": { + "type": "array" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
cex_ticker1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "best_ask": { + "type": [ + "string", + "null" + ] + }, + "best_bid": { + "type": [ + "string", + "null" + ] + }, + "cross_venue_spread_bps": { + "type": [ + "number", + "null" + ] + }, + "pair": { + "type": [ + "string", + "null" + ] + }, + "venues": { + "items": { + "properties": { + "ask": { + "type": [ + "number", + "null" + ] + }, + "bid": { + "type": [ + "number", + "null" + ] + }, + "change_24h_pct": { + "type": [ + "number", + "null" + ] + }, + "high_24h": { + "type": [ + "number", + "null" + ] + }, + "last": { + "type": [ + "number", + "null" + ] + }, + "low_24h": { + "type": [ + "number", + "null" + ] + }, + "open_24h": { + "type": [ + "number", + "null" + ] + }, + "pair": { + "type": [ + "string", + "null" + ] + }, + "venue": { + "type": [ + "string", + "null" + ] + }, + "volume_24h_base": { + "type": [ + "number", + "null" + ] + }, + "vwap_24h": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chain_tvl3 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Days of daily TVL history (only when a single chain is requested). Range 7-365. Default 90." - added
Input schema / properties / limit / descriptionAdded value: +"How many chains to return in the ranking. Range 1-200. Default 30." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "change_30d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_7d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_90d_pct": { + "type": [ + "number", + "null" + ] + }, + "history": { + "items": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "rank": { + "type": [ + "number", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
copy_backtest6 fields changed- added
Input schema / properties / days / descriptionAdded value: +"How many days of the wallet's history to replay. Range 1-14. Default 3." - changed
Input schema / properties / exit / descriptionPrevious value: -"sell on the leader's first sell, or once it has sold 90%"New value: +"sell on the leader's first sell, or once it has sold 90%. Default \"first_sell\"." - changed
Input schema / properties / max_positions / descriptionPrevious value: -"most recent positions to replay"New value: +"most recent positions to replay. Range 10-300. Default 150." - changed
Input schema / properties / size_sol / descriptionPrevious value: -"SOL per copied entry"New value: +"SOL per copied entry. Range 0.01-10. Default 0.1." - changed
Input schema / properties / wallet / descriptionPrevious value: -"leader wallet to copy"New value: +"leader wallet to copy. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "biggest_at_2_slots": { + "items": { + "properties": { + "hold_s": { + "type": [ + "number", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "pnl_sol_at_2_slots": { + "type": [ + "number", + "null" + ] + }, + "roi_pct": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "by_lag": { + "items": { + "properties": { + "approx_ms": { + "type": [ + "number", + "null" + ] + }, + "copied": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "lag_slots": { + "type": [ + "number", + "null" + ] + }, + "median_roi_pct": { + "type": [ + "number", + "null" + ] + }, + "missed_after_graduation": { + "type": [ + "number", + "null" + ] + }, + "pnl_sol": { + "type": [ + "number", + "null" + ] + }, + "roi_pct": { + "type": [ + "number", + "null" + ] + }, + "still_open": { + "type": [ + "number", + "null" + ] + }, + "win_rate_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "fast_flips_pct": { + "type": [ + "number", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "label": {}, + "leader_median_roi_pct": { + "type": [ + "number", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "setup": { + "properties": { + "exit_rule": { + "type": [ + "string", + "null" + ] + }, + "fees": { + "type": [ + "string", + "null" + ] + }, + "from": { + "type": [ + "string", + "null" + ] + }, + "positions_considered": { + "type": [ + "number", + "null" + ] + }, + "size_sol": { + "type": [ + "number", + "null" + ] + }, + "unpriceable": { + "type": [ + "number", + "null" + ] + }, + "window_days": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "verdict": { + "type": [ + "string", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
counterparty_check2 fields changed- changed
Input schema / properties / wallet / descriptionPrevious value: -"wallet address"New value: +"wallet address. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "launches": { + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "last": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "level": { + "type": [ + "string", + "null" + ] + }, + "reasons": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "risk_score": { + "type": [ + "number", + "null" + ] + }, + "scope": { + "type": [ + "string", + "null" + ] + }, + "trading": { + "properties": { + "best": { + "type": [ + "number", + "null" + ] + }, + "classification": { + "type": [ + "string", + "null" + ] + }, + "count": { + "type": [ + "number", + "null" + ] + }, + "median_hold_s": { + "type": [ + "number", + "null" + ] + }, + "realized_pnl_sol": { + "type": [ + "number", + "null" + ] + }, + "win_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "worst": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
country_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "area_km2": { + "type": [ + "number", + "null" + ] + }, + "borders": { + "type": "array" + }, + "calling_code": { + "type": [ + "string", + "null" + ] + }, + "capital": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "cca2": { + "type": [ + "string", + "null" + ] + }, + "cca3": { + "type": [ + "string", + "null" + ] + }, + "currencies": { + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "demonym": { + "type": [ + "string", + "null" + ] + }, + "flag": { + "type": [ + "string", + "null" + ] + }, + "gdp_per_capita_usd": { + "properties": { + "value": { + "type": [ + "number", + "null" + ] + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "gdp_usd": { + "properties": { + "value": { + "type": [ + "number", + "null" + ] + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "independent": { + "type": [ + "boolean", + "null" + ] + }, + "landlocked": { + "type": [ + "boolean", + "null" + ] + }, + "languages": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "latlng": { + "items": { + "type": [ + "number", + "null" + ] + }, + "type": "array" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "official_name": { + "type": [ + "string", + "null" + ] + }, + "population": { + "properties": { + "value": { + "type": [ + "number", + "null" + ] + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "subregion": { + "type": [ + "string", + "null" + ] + }, + "tld": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "un_member": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" +}
- Changed
cron_explain4 fields changed- added
Input schema / properties / count / descriptionAdded value: +"How many upcoming run times to list. Range 1-50. Default 5." - added
Input schema / properties / expression / descriptionAdded value: +"Cron expression, 5 fields (or 6 with seconds), e.g. \"*/15 9-17 * * 1-5\"." - added
Input schema / properties / tz / descriptionAdded value: +"IANA time zone for the next-run times. Default \"UTC\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "expression": { + "type": [ + "string", + "null" + ] + }, + "meaning": { + "type": [ + "string", + "null" + ] + }, + "next_runs": { + "items": { + "properties": { + "local": { + "type": [ + "string", + "null" + ] + }, + "utc": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "tz": { + "type": [ + "string", + "null" + ] + }, + "valid": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" +}
- Changed
crypto_price3 fields changed- changed
Input schema / properties / assets / descriptionPrevious value: -"e.g. [\"BTC\",\"ETH\",\"coingecko:solana\",\"base:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"]"New value: +"e.g. [\"BTC\",\"ETH\",\"coingecko:solana\",\"base:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"]. 0-30 items." - changed
Input schema / properties / chain / descriptionPrevious value: -"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad"New value: +"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "as_of": { + "type": [ + "string", + "null" + ] + }, + "prices": { + "items": { + "properties": { + "change_24h_pct": { + "type": [ + "number", + "null" + ] + }, + "confidence": { + "type": [ + "number", + "null" + ] + }, + "decimals": {}, + "id": { + "type": [ + "string", + "null" + ] + }, + "market_cap_rank": {}, + "name": {}, + "query": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "updated": { + "type": [ + "string", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
defi_protocol1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "alternatives": { + "items": { + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "audit_links": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "audits": { + "type": [ + "number", + "null" + ] + }, + "category": { + "type": [ + "string", + "null" + ] + }, + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_1h_pct": { + "type": [ + "number", + "null" + ] + }, + "change_7d_pct": { + "type": [ + "number", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "fees_usd": { + "properties": { + "24h": { + "type": [ + "number", + "null" + ] + }, + "30d": { + "type": [ + "number", + "null" + ] + }, + "7d": { + "type": [ + "number", + "null" + ] + }, + "all_time": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "forked_from": { + "type": "array" + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "gecko_id": {}, + "listed_at": { + "type": [ + "string", + "null" + ] + }, + "mcap_usd": {}, + "name": { + "type": [ + "string", + "null" + ] + }, + "revenue_usd": { + "properties": { + "24h": { + "type": [ + "number", + "null" + ] + }, + "30d": { + "type": [ + "number", + "null" + ] + }, + "7d": { + "type": [ + "number", + "null" + ] + }, + "all_time": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "token": { + "type": [ + "string", + "null" + ] + }, + "tvl_by_chain": { + "items": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + }, + "twitter": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
defi_rankings4 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many protocols to return. Range 1-100. Default 25." - added
Input schema / properties / min_tvl_usd / descriptionAdded value: +"Skip protocols with less TVL than this (USD). Default 1000000." - added
Input schema / properties / sort / descriptionAdded value: +"Rank by current TVL or by 1-day / 7-day TVL change. One of \"tvl\", \"change_1d\", \"change_7d\". Default \"tvl\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "categories_hint": {}, + "filters": { + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "chain": { + "type": [ + "string", + "null" + ] + }, + "min_tvl_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "matched": { + "type": [ + "number", + "null" + ] + }, + "protocols": { + "items": { + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "chains": { + "type": "array" + }, + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_1h_pct": { + "type": [ + "number", + "null" + ] + }, + "change_7d_pct": { + "type": [ + "number", + "null" + ] + }, + "mcap_usd": {}, + "name": { + "type": [ + "string", + "null" + ] + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "tvl_total_usd": { + "type": [ + "number", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + }, + "twitter": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
dex_volumes3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many venues to return. Range 1-50. Default 15." - added
Input schema / properties / type / descriptionAdded value: +"Spot DEXes, perp/derivatives DEXes, or DEX aggregators. One of \"dexs\", \"derivatives\", \"aggregators\". Default \"dexs\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_7d_pct": { + "type": [ + "number", + "null" + ] + }, + "scope": { + "type": [ + "string", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "top": { + "items": { + "properties": { + "chains": { + "type": "array" + }, + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "share_pct": { + "type": [ + "number", + "null" + ] + }, + "volume_24h_usd": { + "type": [ + "number", + "null" + ] + }, + "volume_7d_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "type": { + "type": [ + "string", + "null" + ] + }, + "volume_usd": { + "properties": { + "24h": { + "type": [ + "number", + "null" + ] + }, + "30d": { + "type": [ + "number", + "null" + ] + }, + "7d": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
dlmm_pool2 fields changed- changed
Input schema / properties / pool / descriptionPrevious value: -"DLMM pool (pair) address"New value: +"DLMM pool (pair) address. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "apr_pct": { + "type": [ + "number", + "null" + ] + }, + "apy_pct_daily_compounding": { + "type": [ + "number", + "null" + ] + }, + "config": { + "properties": { + "base_fee_pct": { + "type": [ + "number", + "null" + ] + }, + "bin_step": { + "type": [ + "number", + "null" + ] + }, + "collect_fee_mode": { + "type": [ + "number", + "null" + ] + }, + "max_fee_pct": { + "type": [ + "number", + "null" + ] + }, + "protocol_fee_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "created_at": { + "type": [ + "string", + "null" + ] + }, + "current_price": { + "type": [ + "number", + "null" + ] + }, + "dynamic_fee_pct": { + "type": [ + "number", + "null" + ] + }, + "fee_tvl_ratio": { + "properties": { + "12h": { + "type": [ + "number", + "null" + ] + }, + "1h": { + "type": [ + "number", + "null" + ] + }, + "24h": { + "type": [ + "number", + "null" + ] + }, + "2h": { + "type": [ + "number", + "null" + ] + }, + "30m": { + "type": [ + "number", + "null" + ] + }, + "4h": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "fee_yield_24h_pct": { + "type": [ + "number", + "null" + ] + }, + "fees": { + "properties": { + "12h": { + "type": [ + "number", + "null" + ] + }, + "1h": { + "type": [ + "number", + "null" + ] + }, + "24h": { + "type": [ + "number", + "null" + ] + }, + "2h": { + "type": [ + "number", + "null" + ] + }, + "30m": { + "type": [ + "number", + "null" + ] + }, + "4h": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "pool": { + "type": [ + "string", + "null" + ] + }, + "reserves": { + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "token_x": { + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "decimals": { + "type": [ + "number", + "null" + ] + }, + "holders": { + "type": [ + "number", + "null" + ] + }, + "is_verified": { + "type": [ + "boolean", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "token_y": { + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "decimals": { + "type": [ + "number", + "null" + ] + }, + "holders": { + "type": [ + "number", + "null" + ] + }, + "is_verified": { + "type": [ + "boolean", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + }, + "volume": { + "properties": { + "12h": { + "type": [ + "number", + "null" + ] + }, + "1h": { + "type": [ + "number", + "null" + ] + }, + "24h": { + "type": [ + "number", + "null" + ] + }, + "2h": { + "type": [ + "number", + "null" + ] + }, + "30m": { + "type": [ + "number", + "null" + ] + }, + "4h": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "yield_note": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
dlmm_positions4 fields changed- added
Input schema / properties / history / descriptionAdded value: +"true = closed-position history instead of open positions. Default false." - added
Input schema / properties / page / descriptionAdded value: +"Page of closed-position history (only with history=true). Range 1-50. Default 1." - changed
Input schema / properties / wallet / descriptionPrevious value: -"wallet address"New value: +"wallet address. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "has_next": { + "type": [ + "boolean", + "null" + ] + }, + "mode": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "pools": { + "items": { + "properties": { + "balances": { + "type": [ + "number", + "null" + ] + }, + "balancesSol": { + "type": [ + "number", + "null" + ] + }, + "baseFee": { + "type": [ + "number", + "null" + ] + }, + "binStep": { + "type": [ + "number", + "null" + ] + }, + "collectFeeMode": { + "type": [ + "number", + "null" + ] + }, + "feePerTvl24h": { + "type": [ + "number", + "null" + ] + }, + "listPositions": { + "type": "array" + }, + "openPositionCount": { + "type": [ + "number", + "null" + ] + }, + "outOfRange": { + "type": [ + "boolean", + "null" + ] + }, + "pnl": { + "type": [ + "number", + "null" + ] + }, + "pnlPctChange": { + "type": [ + "number", + "null" + ] + }, + "pnlSol": { + "type": [ + "number", + "null" + ] + }, + "pnlSolPctChange": { + "type": [ + "number", + "null" + ] + }, + "poolAddress": { + "type": [ + "string", + "null" + ] + }, + "poolPrice": { + "type": [ + "number", + "null" + ] + }, + "poolStateUpdatedAtBlockTime": { + "type": [ + "number", + "null" + ] + }, + "poolStateUpdatedAtSlot": { + "type": [ + "number", + "null" + ] + }, + "positionsOutOfRange": { + "type": "array" + }, + "rewardX": { + "type": [ + "string", + "null" + ] + }, + "rewardY": { + "type": [ + "string", + "null" + ] + }, + "tokenX": { + "type": [ + "string", + "null" + ] + }, + "tokenXMint": { + "type": [ + "string", + "null" + ] + }, + "tokenY": { + "type": [ + "string", + "null" + ] + }, + "tokenYMint": { + "type": [ + "string", + "null" + ] + }, + "totalDeposit": { + "type": [ + "number", + "null" + ] + }, + "totalDepositSol": { + "type": [ + "number", + "null" + ] + }, + "unclaimedFees": { + "type": [ + "number", + "null" + ] + }, + "unclaimedFeesSol": { + "type": [ + "number", + "null" + ] + }, + "updatedAt": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "pools_total": { + "type": [ + "number", + "null" + ] + }, + "positions_total": { + "type": [ + "number", + "null" + ] + }, + "sol_price": { + "type": [ + "number", + "null" + ] + }, + "total": { + "properties": { + "balances": { + "type": [ + "string", + "null" + ] + }, + "balancesSol": { + "type": [ + "string", + "null" + ] + }, + "pnl": { + "type": [ + "string", + "null" + ] + }, + "pnlPctChange": { + "type": [ + "string", + "null" + ] + }, + "pnlSol": { + "type": [ + "string", + "null" + ] + }, + "pnlSolPctChange": { + "type": [ + "string", + "null" + ] + }, + "totalPositions": { + "type": [ + "number", + "null" + ] + }, + "unclaimedFees": { + "type": [ + "string", + "null" + ] + }, + "unclaimedFeesSol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
dlmm_whales2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many ranked LP wallets to return. Range 1-25. Default 10." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "generated_at": { + "type": [ + "string", + "null" + ] + }, + "method": { + "type": [ + "string", + "null" + ] + }, + "pools_scanned": { + "type": [ + "number", + "null" + ] + }, + "whales": { + "items": { + "properties": { + "avg_trade_usd": { + "type": [ + "number", + "null" + ] + }, + "last_seen": { + "type": [ + "string", + "null" + ] + }, + "median_hold_h": { + "type": [ + "number", + "null" + ] + }, + "median_multiple": { + "type": [ + "number", + "null" + ] + }, + "net_usd": { + "type": [ + "number", + "null" + ] + }, + "pools_traded": { + "type": [ + "number", + "null" + ] + }, + "roundtrips": { + "type": [ + "number", + "null" + ] + }, + "score": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + }, + "win_rate_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
dns_lookup2 fields changed- added
Input schema / properties / domain / descriptionAdded value: +"Domain name without scheme, e.g. \"example.com\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "a": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "aaaa": { + "type": "array" + }, + "caa": { + "items": { + "properties": { + "critical": { + "type": [ + "number", + "null" + ] + }, + "issue": { + "type": [ + "string", + "null" + ] + }, + "issuewild": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "cname": { + "type": "array" + }, + "domain": { + "type": [ + "string", + "null" + ] + }, + "email_security": { + "properties": { + "dmarc": { + "type": [ + "string", + "null" + ] + }, + "dmarc_policy": { + "type": [ + "string", + "null" + ] + }, + "grade": { + "type": [ + "string", + "null" + ] + }, + "issues": { + "type": "array" + }, + "spf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "mx": { + "items": { + "properties": { + "exchange": { + "type": [ + "string", + "null" + ] + }, + "priority": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "ns": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "resolves": { + "type": [ + "boolean", + "null" + ] + }, + "soa": { + "properties": { + "expire": { + "type": [ + "number", + "null" + ] + }, + "hostmaster": { + "type": [ + "string", + "null" + ] + }, + "minttl": { + "type": [ + "number", + "null" + ] + }, + "nsname": { + "type": [ + "string", + "null" + ] + }, + "refresh": { + "type": [ + "number", + "null" + ] + }, + "retry": { + "type": [ + "number", + "null" + ] + }, + "serial": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "txt": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
doi_lookup2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many matches to return when searching by title. Range 1-20. Default 5." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "apa": { + "type": [ + "string", + "null" + ] + }, + "authors": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "bibtex": { + "type": [ + "string", + "null" + ] + }, + "cited_by": { + "type": [ + "number", + "null" + ] + }, + "doi": { + "type": [ + "string", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "issue": { + "type": [ + "string", + "null" + ] + }, + "journal": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "pages": { + "type": [ + "string", + "null" + ] + }, + "publisher": { + "type": [ + "string", + "null" + ] + }, + "references": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "volume": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
domain_whois2 fields changed- added
Input schema / properties / domain / descriptionAdded value: +"Registrable domain without scheme, e.g. \"example.com\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "age_days": { + "type": [ + "number", + "null" + ] + }, + "created": { + "type": [ + "string", + "null" + ] + }, + "days_to_expiry": { + "type": [ + "number", + "null" + ] + }, + "dnssec": { + "type": [ + "boolean", + "null" + ] + }, + "domain": { + "type": [ + "string", + "null" + ] + }, + "expires": { + "type": [ + "string", + "null" + ] + }, + "nameservers": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "registered": { + "type": [ + "boolean", + "null" + ] + }, + "registrant": { + "properties": { + "iana_id": {}, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "registrar": { + "properties": { + "iana_id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "status": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "updated": { + "type": [ + "string", + "null" + ] + }, + "young_domain_warning": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" +}
- Changed
earthquakes5 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many quakes to return, largest first. Range 1-100. Default 20." - added
Input schema / properties / min_magnitude / descriptionAdded value: +"Only quakes at or above this magnitude. Range 0-9. Default 4.5." - added
Input schema / properties / period / descriptionAdded value: +"Look-back window. One of \"hour\", \"day\", \"week\", \"month\". Default \"day\"." - added
Input schema / properties / radius_km / descriptionAdded value: +"Search radius around the given place (only when a place is given). Range 10-5000. Default 1000." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "min_magnitude": { + "type": [ + "number", + "null" + ] + }, + "period": { + "type": [ + "string", + "null" + ] + }, + "quakes": { + "items": { + "properties": { + "alert": {}, + "depth_km": { + "type": [ + "number", + "null" + ] + }, + "felt_reports": {}, + "lat": { + "type": [ + "number", + "null" + ] + }, + "lon": { + "type": [ + "number", + "null" + ] + }, + "magnitude": { + "type": [ + "number", + "null" + ] + }, + "place": { + "type": [ + "string", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "tsunami_flag": { + "type": [ + "boolean", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "strongest": { + "properties": { + "alert": { + "type": [ + "string", + "null" + ] + }, + "depth_km": { + "type": [ + "number", + "null" + ] + }, + "felt_reports": { + "type": [ + "number", + "null" + ] + }, + "lat": { + "type": [ + "number", + "null" + ] + }, + "lon": { + "type": [ + "number", + "null" + ] + }, + "magnitude": { + "type": [ + "number", + "null" + ] + }, + "place": { + "type": [ + "string", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "tsunami_flag": { + "type": [ + "boolean", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
email_check2 fields changed- added
Input schema / properties / email / descriptionAdded value: +"Email address to check. No mail is sent." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accepts_mail": { + "type": [ + "boolean", + "null" + ] + }, + "disposable": { + "type": [ + "boolean", + "null" + ] + }, + "domain": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "free_provider": { + "type": [ + "boolean", + "null" + ] + }, + "mx": { + "items": { + "properties": { + "exchange": { + "type": [ + "string", + "null" + ] + }, + "priority": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "role_address": { + "type": [ + "boolean", + "null" + ] + }, + "valid_syntax": { + "type": [ + "boolean", + "null" + ] + }, + "verdict": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
ens_resolve1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "app": { + "type": [ + "string", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "records": { + "properties": { + "avatar": { + "type": [ + "string", + "null" + ] + }, + "com.github": { + "type": [ + "string", + "null" + ] + }, + "com.twitter": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
erc20_info4 fields changed- changed
Input schema / properties / chain / descriptionPrevious value: -"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad"New value: +"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"." - added
Input schema / properties / token / descriptionAdded value: +"ERC-20 contract address (0x + 40 hex)." - changed
Input schema / properties / wallet / descriptionPrevious value: -"optional holder"New value: +"optional holder. 0x + 40 hex chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "balance": { + "type": [ + "number", + "null" + ] + }, + "balance_usd": { + "type": [ + "number", + "null" + ] + }, + "chain": { + "type": [ + "string", + "null" + ] + }, + "decimals": { + "type": [ + "number", + "null" + ] + }, + "explorer": { + "type": [ + "string", + "null" + ] + }, + "fdv_usd": { + "type": [ + "number", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "price_usd": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "token": { + "type": [ + "string", + "null" + ] + }, + "total_supply": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
evm_address3 fields changed- added
Input schema / properties / address / descriptionAdded value: +"EVM wallet or contract address (0x + 40 hex)." - added
Input schema / properties / chain / descriptionAdded value: +"Chain to read, or \"all\" to check every supported chain. One of \"all\", \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"all\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "chains": { + "items": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "delegated_to": { + "type": [ + "string", + "null" + ] + }, + "explorer": { + "type": [ + "string", + "null" + ] + }, + "kind": { + "type": [ + "string", + "null" + ] + }, + "native_balance": { + "type": [ + "number", + "null" + ] + }, + "native_symbol": { + "type": [ + "string", + "null" + ] + }, + "tx_count": { + "type": [ + "number", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "chains_checked": { + "type": [ + "number", + "null" + ] + }, + "ens_name": { + "type": [ + "string", + "null" + ] + }, + "total_native_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
evm_token_security3 fields changed- changed
Input schema / properties / chain / descriptionPrevious value: -"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad"New value: +"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"." - added
Input schema / properties / token / descriptionAdded value: +"ERC-20 contract address (0x + 40 hex)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "creator": { + "type": [ + "string", + "null" + ] + }, + "explorer": { + "type": [ + "string", + "null" + ] + }, + "flags": { + "properties": { + "airdrop_scam": {}, + "anti_whale": { + "type": [ + "boolean", + "null" + ] + }, + "blacklist": { + "type": [ + "boolean", + "null" + ] + }, + "buy_tax_pct": { + "type": [ + "number", + "null" + ] + }, + "can_take_back_ownership": { + "type": [ + "boolean", + "null" + ] + }, + "cannot_buy": { + "type": [ + "boolean", + "null" + ] + }, + "cannot_sell_all": {}, + "external_call": { + "type": [ + "boolean", + "null" + ] + }, + "fake_token": {}, + "hidden_owner": { + "type": [ + "boolean", + "null" + ] + }, + "honeypot": { + "type": [ + "boolean", + "null" + ] + }, + "mintable": { + "type": [ + "boolean", + "null" + ] + }, + "open_source": { + "type": [ + "boolean", + "null" + ] + }, + "owner_can_change_balance": { + "type": [ + "boolean", + "null" + ] + }, + "personal_tax_modifiable": { + "type": [ + "boolean", + "null" + ] + }, + "proxy": { + "type": [ + "boolean", + "null" + ] + }, + "self_destruct": { + "type": [ + "boolean", + "null" + ] + }, + "sell_tax_pct": { + "type": [ + "number", + "null" + ] + }, + "tax_modifiable": { + "type": [ + "boolean", + "null" + ] + }, + "trading_cooldown": { + "type": [ + "boolean", + "null" + ] + }, + "transfer_pausable": { + "type": [ + "boolean", + "null" + ] + }, + "transfer_tax_pct": {}, + "trust_list": { + "type": [ + "boolean", + "null" + ] + }, + "whitelist": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "holders": { + "type": [ + "number", + "null" + ] + }, + "lp": { + "type": "array" + }, + "lp_holders": { + "type": "array" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "owner": { + "type": [ + "string", + "null" + ] + }, + "red_flags": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "token": { + "type": [ + "string", + "null" + ] + }, + "top_holders": { + "items": { + "properties": { + "address": { + "type": [ + "string", + "null" + ] + }, + "is_contract": { + "type": [ + "boolean", + "null" + ] + }, + "locked": { + "type": [ + "boolean", + "null" + ] + }, + "pct": { + "type": [ + "number", + "null" + ] + }, + "tag": {} + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total_supply": { + "type": [ + "string", + "null" + ] + }, + "verdict": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
evm_tx3 fields changed- changed
Input schema / properties / chain / descriptionPrevious value: -"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad"New value: +"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"." - added
Input schema / properties / hash / descriptionAdded value: +"EVM transaction hash (0x + 64 hex)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "block": { + "type": [ + "number", + "null" + ] + }, + "chain": { + "type": [ + "string", + "null" + ] + }, + "contract_created": {}, + "explorer": { + "type": [ + "string", + "null" + ] + }, + "fee_native": { + "type": [ + "number", + "null" + ] + }, + "fee_usd": { + "type": [ + "number", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "from": { + "type": [ + "string", + "null" + ] + }, + "gas_price_gwei": { + "type": [ + "number", + "null" + ] + }, + "gas_used": { + "type": [ + "number", + "null" + ] + }, + "hash": { + "type": [ + "string", + "null" + ] + }, + "logs": { + "type": [ + "number", + "null" + ] + }, + "method_selector": { + "type": [ + "string", + "null" + ] + }, + "plain_transfer": { + "type": [ + "boolean", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "token_transfers": { + "type": "array" + }, + "value": { + "type": [ + "number", + "null" + ] + }, + "value_symbol": { + "type": [ + "string", + "null" + ] + }, + "value_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
fear_greed2 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Days of index history to include. Range 1-365. Default 30." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "avg_30d": { + "type": [ + "number", + "null" + ] + }, + "avg_7d": { + "type": [ + "number", + "null" + ] + }, + "history": { + "items": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "now": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
fees_revenue3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many protocols to return. Range 1-50. Default 20." - added
Input schema / properties / metric / descriptionAdded value: +"Gross fees paid by users, or revenue kept by the protocol. One of \"fees\", \"revenue\". Default \"fees\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "metric": { + "type": [ + "string", + "null" + ] + }, + "scope": { + "type": [ + "string", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "top": { + "items": { + "properties": { + "24h_usd": { + "type": [ + "number", + "null" + ] + }, + "30d_usd": { + "type": [ + "number", + "null" + ] + }, + "7d_usd": { + "type": [ + "number", + "null" + ] + }, + "category": { + "type": [ + "string", + "null" + ] + }, + "chains": { + "type": "array" + }, + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total_usd": { + "properties": { + "24h": { + "type": [ + "number", + "null" + ] + }, + "30d": { + "type": [ + "number", + "null" + ] + }, + "7d": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
funding_rates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "as_of": { + "type": [ + "string", + "null" + ] + }, + "coin": { + "type": [ + "string", + "null" + ] + }, + "meaning": { + "type": [ + "string", + "null" + ] + }, + "spread_apr_pct": { + "type": [ + "number", + "null" + ] + }, + "venues": { + "items": { + "properties": { + "apr_pct": { + "type": [ + "number", + "null" + ] + }, + "hourly_pct": { + "type": [ + "number", + "null" + ] + }, + "interval_hours": { + "type": [ + "number", + "null" + ] + }, + "mark": { + "type": [ + "number", + "null" + ] + }, + "next_funding": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "open_interest_usd": { + "type": [ + "number", + "null" + ] + }, + "rate_per_interval_pct": { + "type": [ + "number", + "null" + ] + }, + "venue": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
fx_rates4 fields changed- added
Input schema / properties / amount / descriptionAdded value: +"Amount of the base currency to convert. Default 1." - added
Input schema / properties / from / descriptionAdded value: +"Base currency ISO 4217 code, e.g. \"USD\". Default \"USD\"." - changed
Input schema / properties / to / descriptionPrevious value: -"targets (default: all)"New value: +"targets (default: all) 0-30 items." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "date": { + "type": [ + "string", + "null" + ] + }, + "from": { + "type": [ + "string", + "null" + ] + }, + "rates": { + "properties": { + "AUD": { + "type": [ + "number", + "null" + ] + }, + "EUR": { + "type": [ + "number", + "null" + ] + }, + "JPY": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
gas_now2 fields changed- changed
Input schema / properties / chains / descriptionPrevious value: -"subset, e.g. [\"ethereum\",\"base\",\"solana\",\"bitcoin\"] (default: all)"New value: +"subset, e.g. [\"ethereum\",\"base\",\"solana\",\"bitcoin\"] (default: all) 0-20 items." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "as_of": { + "type": [ + "string", + "null" + ] + }, + "chains": { + "items": { + "properties": { + "base_fee_gwei": { + "type": [ + "number", + "null" + ] + }, + "base_fee_lamports": { + "type": [ + "number", + "null" + ] + }, + "chain": { + "type": [ + "string", + "null" + ] + }, + "measured_on": { + "type": [ + "string", + "null" + ] + }, + "native": { + "type": [ + "string", + "null" + ] + }, + "priority_basis": { + "type": [ + "string", + "null" + ] + }, + "priority_fee_gwei": { + "type": [ + "number", + "null" + ] + }, + "priority_micro_lamports_per_cu": { + "type": [ + "object", + "null" + ] + }, + "sat_per_vb": { + "type": [ + "object", + "null" + ] + }, + "total_gwei": { + "type": [ + "number", + "null" + ] + }, + "usd_140vb_tx": { + "type": [ + "object", + "null" + ] + }, + "usd_simple_tx_200k_cu": { + "type": [ + "object", + "null" + ] + }, + "usd_swap_150k": { + "type": [ + "number", + "null" + ] + }, + "usd_transfer_21k": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "note": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
geocode2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many candidate matches to return. Range 1-10. Default 3." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "attribution": { + "type": [ + "string", + "null" + ] + }, + "mode": { + "type": [ + "string", + "null" + ] + }, + "query": { + "type": [ + "string", + "null" + ] + }, + "results": { + "items": { + "properties": { + "city": {}, + "country": { + "type": [ + "string", + "null" + ] + }, + "country_code": { + "type": [ + "string", + "null" + ] + }, + "lat": { + "type": [ + "number", + "null" + ] + }, + "lon": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "osm": { + "type": [ + "string", + "null" + ] + }, + "postcode": {}, + "state": { + "type": [ + "string", + "null" + ] + }, + "street": {}, + "type": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
github_repo1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "activity": { + "properties": { + "days_since_push": { + "type": [ + "number", + "null" + ] + }, + "days_since_release": { + "type": [ + "number", + "null" + ] + }, + "verdict": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "archived": { + "type": [ + "boolean", + "null" + ] + }, + "created": { + "type": [ + "string", + "null" + ] + }, + "default_branch": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "forks": { + "type": [ + "number", + "null" + ] + }, + "homepage": { + "type": [ + "string", + "null" + ] + }, + "is_fork": { + "type": [ + "boolean", + "null" + ] + }, + "languages_pct": { + "properties": { + "CSS": { + "type": [ + "number", + "null" + ] + }, + "JavaScript": { + "type": [ + "number", + "null" + ] + }, + "Just": { + "type": [ + "number", + "null" + ] + }, + "Shell": { + "type": [ + "number", + "null" + ] + }, + "TypeScript": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "last_push": { + "type": [ + "string", + "null" + ] + }, + "latest_release": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "prerelease": { + "type": [ + "boolean", + "null" + ] + }, + "tag": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "open_issues_and_prs": { + "type": [ + "number", + "null" + ] + }, + "parent": {}, + "repo": { + "type": [ + "string", + "null" + ] + }, + "stars": { + "type": [ + "number", + "null" + ] + }, + "top_contributors": { + "items": { + "properties": { + "commits": { + "type": [ + "number", + "null" + ] + }, + "login": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "topics": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "watchers": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
hash_encode4 fields changed- changed
Input schema / properties / hashes / descriptionPrevious value: -"sha256, sha512, sha3-256, sha3-512, keccak256, blake2b512, blake2s256, md5, sha1, ripemd160"New value: +"sha256, sha512, sha3-256, sha3-512, keccak256, blake2b512, blake2s256, md5, sha1, ripemd160. 0-12 items. Default [\"sha256\",\"keccak256\"]." - added
Input schema / properties / input / descriptionAdded value: +"Data to hash or re-encode." - added
Input schema / properties / input_encoding / descriptionAdded value: +"How the input string is encoded. One of \"utf8\", \"hex\", \"base64\", \"base58\". Default \"utf8\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "bytes": { + "type": [ + "number", + "null" + ] + }, + "encodings": { + "properties": { + "base58": { + "type": [ + "string", + "null" + ] + }, + "base64": { + "type": [ + "string", + "null" + ] + }, + "base64url": { + "type": [ + "string", + "null" + ] + }, + "hex": { + "type": [ + "string", + "null" + ] + }, + "utf8": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "hashes": { + "properties": { + "evm_selector": { + "type": [ + "string", + "null" + ] + }, + "keccak256": { + "type": [ + "string", + "null" + ] + }, + "sha256": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
hn_search7 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Only items from the last N days. Range 1-3650. Default 365." - added
Input schema / properties / limit / descriptionAdded value: +"How many results to return. Range 1-50. Default 15." - added
Input schema / properties / min_points / descriptionAdded value: +"Only items with at least this many points. Default 0." - added
Input schema / properties / query / descriptionAdded value: +"Keywords to search for." - added
Input schema / properties / sort / descriptionAdded value: +"Order by relevance or newest first. One of \"relevance\", \"date\". Default \"relevance\"." - added
Input schema / properties / type / descriptionAdded value: +"Stories, comments, Show HN or Ask HN posts. One of \"story\", \"comment\", \"show_hn\", \"ask_hn\". Default \"story\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "query": { + "type": [ + "string", + "null" + ] + }, + "results": { + "items": { + "properties": { + "author": { + "type": [ + "string", + "null" + ] + }, + "comments": { + "type": [ + "number", + "null" + ] + }, + "date": { + "type": [ + "string", + "null" + ] + }, + "hn": { + "type": [ + "string", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
holidays2 fields changed- added
Input schema / properties / year / descriptionAdded value: +"Calendar year; defaults to the current year. Range 1975-2075." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "holidays": { + "items": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "local_name": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "nationwide": { + "type": [ + "boolean", + "null" + ] + }, + "regions": {}, + "types": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "next": { + "items": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "local_name": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "nationwide": { + "type": [ + "boolean", + "null" + ] + }, + "regions": {}, + "types": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "today_is_holiday": { + "type": "array" + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
http_probe2 fields changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL to probe." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "bytes": { + "type": [ + "number", + "null" + ] + }, + "cache_control": {}, + "cdn": { + "type": [ + "string", + "null" + ] + }, + "compressed": { + "type": [ + "boolean", + "null" + ] + }, + "content_type": { + "type": [ + "string", + "null" + ] + }, + "final_url": { + "type": [ + "string", + "null" + ] + }, + "http_tls": { + "properties": { + "authorized": { + "type": [ + "boolean", + "null" + ] + }, + "cipher": { + "type": [ + "string", + "null" + ] + }, + "issuer": { + "type": [ + "string", + "null" + ] + }, + "protocol": { + "type": [ + "string", + "null" + ] + }, + "subject": { + "type": [ + "string", + "null" + ] + }, + "valid_to": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "powered_by": {}, + "redirects": { + "items": { + "properties": { + "ms": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "number", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "remote_ip": { + "type": [ + "string", + "null" + ] + }, + "security_headers": { + "properties": { + "csp": { + "type": [ + "boolean", + "null" + ] + }, + "frame_protection": { + "type": [ + "boolean", + "null" + ] + }, + "grade": { + "type": [ + "string", + "null" + ] + }, + "hsts": { + "type": [ + "boolean", + "null" + ] + }, + "nosniff": { + "type": [ + "boolean", + "null" + ] + }, + "permissions_policy": { + "type": [ + "boolean", + "null" + ] + }, + "referrer_policy": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "server": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "number", + "null" + ] + }, + "timing_ms": { + "properties": { + "dns_connect": { + "type": [ + "number", + "null" + ] + }, + "first_byte": { + "type": [ + "number", + "null" + ] + }, + "tls": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "up": { + "type": [ + "boolean", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
hyperliquid_markets3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many markets to return. Range 1-100. Default 20." - added
Input schema / properties / sort / descriptionAdded value: +"Rank by 24 h volume, open interest, highest or most negative funding, or 24 h change. One of \"volume\", \"open_interest\", \"funding\", \"funding_negative\", \"change\". Default \"volume\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "markets": { + "type": [ + "number", + "null" + ] + }, + "ranked_by": { + "type": [ + "string", + "null" + ] + }, + "top": { + "items": { + "properties": { + "change_24h_pct": { + "type": [ + "number", + "null" + ] + }, + "coin": { + "type": [ + "string", + "null" + ] + }, + "funding_apr_pct": { + "type": [ + "number", + "null" + ] + }, + "funding_hourly_pct": { + "type": [ + "number", + "null" + ] + }, + "mark": { + "type": [ + "number", + "null" + ] + }, + "max_leverage": { + "type": [ + "number", + "null" + ] + }, + "open_interest_usd": { + "type": [ + "number", + "null" + ] + }, + "oracle": { + "type": [ + "number", + "null" + ] + }, + "premium_pct": { + "type": [ + "number", + "null" + ] + }, + "volume_24h_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total_open_interest_usd": { + "type": [ + "number", + "null" + ] + }, + "total_volume_24h_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
json_schema_validate3 fields changed- added
Input schema / properties / parse_strings / descriptionAdded value: +"true = if data is a string, parse it as JSON first. Default false." - added
Input schema / properties / schema / descriptionAdded value: +"The JSON Schema to validate against." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error_count": { + "type": [ + "number", + "null" + ] + }, + "errors": { + "items": { + "properties": { + "keyword": { + "type": [ + "string", + "null" + ] + }, + "message": { + "type": [ + "string", + "null" + ] + }, + "params": { + "type": [ + "object", + "null" + ] + }, + "path": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "valid": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" +}
- Changed
jwt_decode2 fields changed- added
Input schema / properties / token / descriptionAdded value: +"The JWT (three base64url parts). The signature is not verified." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "alg_none_warning": {}, + "expired": { + "type": [ + "boolean", + "null" + ] + }, + "expires_at": { + "type": [ + "string", + "null" + ] + }, + "header": { + "properties": { + "alg": { + "type": [ + "string", + "null" + ] + }, + "typ": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "issued_at": { + "type": [ + "string", + "null" + ] + }, + "not_before": {}, + "payload": { + "properties": { + "exp": { + "type": [ + "number", + "null" + ] + }, + "iat": { + "type": [ + "number", + "null" + ] + }, + "sub": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "seconds_left": { + "type": [ + "number", + "null" + ] + }, + "signature": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
launch_scan2 fields changed- changed
Input schema / properties / mint / descriptionPrevious value: -"pump.fun token mint"New value: +"pump.fun token mint. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "curve": { + "properties": { + "graduated": { + "type": [ + "boolean", + "null" + ] + }, + "graduated_at": {}, + "mcap_sol": {}, + "mcap_usd": {}, + "peak": { + "properties": { + "mcap_sol": {}, + "mcap_usd": {} + }, + "type": [ + "object", + "null" + ] + }, + "price_sol": {}, + "progress_pct": { + "type": [ + "number", + "null" + ] + }, + "real_sol_in_curve": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "dev": { + "properties": { + "bought_sol": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "holds_pct": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "sold_sol": { + "type": [ + "number", + "null" + ] + }, + "verdict": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "flags": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "flow": { + "properties": { + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "buys": { + "type": [ + "number", + "null" + ] + }, + "first_trade": { + "type": [ + "string", + "null" + ] + }, + "last_trade": { + "type": [ + "string", + "null" + ] + }, + "net_sol": { + "type": [ + "number", + "null" + ] + }, + "sell_sol": { + "type": [ + "number", + "null" + ] + }, + "sells": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "graduation": { + "properties": { + "base_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "bucket": { + "properties": { + "buy_sol_60s": { + "type": [ + "string", + "null" + ] + }, + "dev_buy_sol": { + "type": [ + "string", + "null" + ] + }, + "unique_buyers_60s": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "cell": { + "type": [ + "string", + "null" + ] + }, + "comparable_launches": { + "type": [ + "number", + "null" + ] + }, + "lift": { + "type": [ + "number", + "null" + ] + }, + "probability_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "launch_snipers": { + "properties": { + "bought_sol": { + "type": [ + "number", + "null" + ] + }, + "still_hold_pct": { + "type": [ + "number", + "null" + ] + }, + "wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "positives": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "risks": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "score": { + "type": [ + "number", + "null" + ] + }, + "swap_url": {}, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "top_curve_holders": { + "items": { + "properties": { + "label": {}, + "pct": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "verdict": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
markdown_convert3 fields changed- added
Input schema / properties / input / descriptionAdded value: +"Markdown or HTML to convert." - added
Input schema / properties / to / descriptionAdded value: +"Target format. One of \"html\", \"markdown\". Default \"html\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "output": { + "type": [ + "string", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
orderbook_depth3 fields changed- added
Input schema / properties / pair / descriptionAdded value: +"Market pair as BASE/QUOTE, e.g. \"BTC/USD\" or \"ETH/USDT\"." - added
Input schema / properties / venue / descriptionAdded value: +"Exchange whose order book to read. One of \"coinbase\", \"kraken\", \"okx\". Default \"coinbase\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "best_ask": { + "type": [ + "number", + "null" + ] + }, + "best_bid": { + "type": [ + "number", + "null" + ] + }, + "depth_usd": { + "properties": { + "pm_0.1pct": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "pm_0.5pct": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "pm_1pct": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "pm_2pct": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "pm_5pct": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "levels": { + "properties": { + "asks": { + "type": [ + "number", + "null" + ] + }, + "bids": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "mid": { + "type": [ + "number", + "null" + ] + }, + "pair": { + "type": [ + "string", + "null" + ] + }, + "slippage_bps_market_buy": { + "properties": { + "usd_100k": { + "type": [ + "number", + "null" + ] + }, + "usd_10k": { + "type": [ + "number", + "null" + ] + }, + "usd_1m": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "slippage_bps_market_sell": { + "properties": { + "usd_100k": { + "type": [ + "number", + "null" + ] + }, + "usd_10k": { + "type": [ + "number", + "null" + ] + }, + "usd_1m": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "spread_bps": { + "type": [ + "number", + "null" + ] + }, + "venue": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
package_info3 fields changed- added
Input schema / properties / ecosystem / descriptionAdded value: +"Registry to look in. One of \"npm\", \"pypi\", \"crates\". Default \"npm\"." - added
Input schema / properties / name / descriptionAdded value: +"Exact package name as published, e.g. \"express\" or \"requests\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dependencies": { + "type": [ + "number", + "null" + ] + }, + "deprecated": {}, + "description": { + "type": [ + "string", + "null" + ] + }, + "ecosystem": { + "type": [ + "string", + "null" + ] + }, + "homepage": { + "type": [ + "string", + "null" + ] + }, + "latest": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "maintainers": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "released": { + "type": [ + "string", + "null" + ] + }, + "repository": { + "type": [ + "string", + "null" + ] + }, + "stale": {}, + "url": { + "type": [ + "string", + "null" + ] + }, + "versions": { + "type": [ + "number", + "null" + ] + }, + "weekly_downloads": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
price2 fields changed- added
Input schema / properties / mints / descriptionAdded value: +"Solana token mint addresses (base58) to price. 1-100 items." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "prices": { + "items": { + "properties": { + "change_24h_pct": { + "type": [ + "number", + "null" + ] + }, + "dead": { + "type": [ + "boolean", + "null" + ] + }, + "liquidity_usd": { + "type": [ + "number", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
price_history4 fields changed- changed
Input schema / properties / chain / descriptionPrevious value: -"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad"New value: +"EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"." - added
Input schema / properties / days / descriptionAdded value: +"How many days back; hourly points up to 90 days, daily beyond. Range 1-365. Default 30." - changed
Input schema / properties / interval / descriptionPrevious value: -"hourly allowed up to 30 days"New value: +"hourly allowed up to 30 days. One of \"hour\", \"day\". Default \"day\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "asset": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "interval": { + "type": [ + "string", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "series": { + "items": { + "properties": { + "t": { + "type": [ + "string", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "stats": { + "properties": { + "first_usd": { + "type": [ + "number", + "null" + ] + }, + "high": { + "properties": { + "t": { + "type": [ + "string", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "last_usd": { + "type": [ + "number", + "null" + ] + }, + "low": { + "properties": { + "t": { + "type": [ + "string", + "null" + ] + }, + "usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "max_drawdown_pct": { + "type": [ + "number", + "null" + ] + }, + "return_pct": { + "type": [ + "number", + "null" + ] + }, + "volatility_annualized_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
pump_dev2 fields changed- changed
Input schema / properties / creator / descriptionPrevious value: -"creator (dev) wallet"New value: +"creator (dev) wallet. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "baseline": { + "type": [ + "string", + "null" + ] + }, + "creator": { + "type": [ + "string", + "null" + ] + }, + "first_launch": { + "type": [ + "string", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "graduation_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "last_launch": { + "type": [ + "string", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "launches_last_24h": { + "type": [ + "number", + "null" + ] + }, + "median_gap_between_launches_s": { + "type": [ + "number", + "null" + ] + }, + "recent_launches": { + "items": { + "properties": { + "created_at": { + "type": [ + "string", + "null" + ] + }, + "dev_bought_sol": { + "type": [ + "number", + "null" + ] + }, + "dev_first_sell_after_s": { + "type": [ + "number", + "null" + ] + }, + "dev_sold_sol": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "boolean", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "peak_mcap_sol": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_wallets": { + "type": [ + "number", + "null" + ] + }, + "volume_sol": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "verdict": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
pump_history2 fields changed- added
Input schema / properties / granularity / descriptionAdded value: +"Bucket size: \"day\" or \"hour\". Default \"day\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "compare": { + "properties": { + "against": { + "properties": { + "avg_unique_wallets_per_day": { + "type": [ + "number", + "null" + ] + }, + "from": { + "type": [ + "string", + "null" + ] + }, + "graduation_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "periods": { + "type": [ + "number", + "null" + ] + }, + "sol_volume": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "change_pct_per_period": { + "properties": { + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "sol_volume": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "graduation_rate_change_pts": { + "type": [ + "number", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "coverage": { + "type": [ + "string", + "null" + ] + }, + "definitions": { + "properties": { + "graduation_rate_pct": { + "type": [ + "string", + "null" + ] + }, + "mayhem_agent_trade_pct": { + "type": [ + "string", + "null" + ] + }, + "partial": { + "type": [ + "string", + "null" + ] + }, + "unique_wallets": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "granularity": { + "type": [ + "string", + "null" + ] + }, + "rows": { + "items": { + "properties": { + "active_tokens": { + "type": [ + "number", + "null" + ] + }, + "buy_share_pct": { + "type": [ + "number", + "null" + ] + }, + "graduation_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "mayhem_agent_trade_pct": { + "type": [ + "number", + "null" + ] + }, + "period": { + "type": [ + "string", + "null" + ] + }, + "sol_volume": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "summary": { + "properties": { + "avg_unique_wallets_per_day": { + "type": [ + "number", + "null" + ] + }, + "from": { + "type": [ + "string", + "null" + ] + }, + "graduation_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "periods": { + "type": [ + "number", + "null" + ] + }, + "sol_volume": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "timezone": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
pump_launches3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many of the newest launches to return. Range 1-50. Default 20." - changed
Input schema / properties / window_s / descriptionPrevious value: -"early-flow window after creation"New value: +"early-flow window after creation. Range 30-3600. Default 300." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "launches": { + "items": { + "properties": { + "age_s": { + "type": [ + "number", + "null" + ] + }, + "created_at": { + "type": [ + "string", + "null" + ] + }, + "creator": { + "type": [ + "string", + "null" + ] + }, + "creator_launches": { + "type": [ + "number", + "null" + ] + }, + "curve_progress_pct": { + "type": [ + "number", + "null" + ] + }, + "dev_buy_sol": {}, + "dev_sold_sol": {}, + "early": { + "type": [ + "object", + "null" + ] + }, + "mayhem": { + "type": [ + "boolean", + "null" + ] + }, + "mcap_sol": {}, + "mcap_usd": {}, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "token_program": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "window_s": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
pump_odds2 fields changed- changed
Input schema / properties / mint / descriptionPrevious value: -"pump.fun token mint"New value: +"pump.fun token mint. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "age_s": { + "type": [ + "number", + "null" + ] + }, + "created_at": { + "type": [ + "string", + "null" + ] + }, + "curve_progress_pct": { + "type": [ + "number", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "graduation": { + "properties": { + "base_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "bucket": { + "properties": { + "buy_sol_60s": { + "type": [ + "string", + "null" + ] + }, + "dev_buy_sol": { + "type": [ + "string", + "null" + ] + }, + "unique_buyers_60s": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "cell": { + "type": [ + "string", + "null" + ] + }, + "comparable_launches": { + "type": [ + "number", + "null" + ] + }, + "lift": { + "type": [ + "number", + "null" + ] + }, + "probability_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "launch_minute": { + "properties": { + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "dev_buy_sol": { + "type": [ + "number", + "null" + ] + }, + "unique_buyers": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "method": { + "type": [ + "string", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "model": { + "properties": { + "base_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "built_at": { + "type": [ + "string", + "null" + ] + }, + "sample": { + "type": [ + "number", + "null" + ] + }, + "window": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "swap_url": {}, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
pump_pulse1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "as_of": { + "type": [ + "string", + "null" + ] + }, + "coverage": { + "type": [ + "string", + "null" + ] + }, + "hottest_15m": { + "items": { + "properties": { + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "net_sol": { + "type": [ + "number", + "null" + ] + }, + "sell_sol": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "last_24h": { + "properties": { + "graduation_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "last_hour": { + "properties": { + "active_tokens": { + "type": [ + "number", + "null" + ] + }, + "graduations": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "sol_volume": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "recent_graduations": { + "items": { + "properties": { + "graduated_at": { + "type": [ + "string", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "sol_usd": { + "type": [ + "number", + "null" + ] + }, + "trades_per_min": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
pump_token2 fields changed- changed
Input schema / properties / mint / descriptionPrevious value: -"pump.fun token mint"New value: +"pump.fun token mint. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "created_at": { + "type": [ + "string", + "null" + ] + }, + "creator": { + "type": [ + "string", + "null" + ] + }, + "curve": { + "properties": { + "graduated": { + "type": [ + "boolean", + "null" + ] + }, + "graduated_at": {}, + "mcap_sol": {}, + "mcap_usd": {}, + "peak": { + "properties": { + "mcap_sol": {}, + "mcap_usd": {} + }, + "type": [ + "object", + "null" + ] + }, + "price_sol": {}, + "progress_pct": { + "type": [ + "number", + "null" + ] + }, + "real_sol_in_curve": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "dev": { + "properties": { + "bought_sol": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "holds_pct": { + "type": [ + "number", + "null" + ] + }, + "launches": { + "type": [ + "number", + "null" + ] + }, + "sold_sol": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "first_60s": { + "properties": { + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "sell_sol": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_buyers": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "flags": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "flow": { + "properties": { + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "buys": { + "type": [ + "number", + "null" + ] + }, + "first_trade": { + "type": [ + "string", + "null" + ] + }, + "last_trade": { + "type": [ + "string", + "null" + ] + }, + "net_sol": { + "type": [ + "number", + "null" + ] + }, + "sell_sol": { + "type": [ + "number", + "null" + ] + }, + "sells": { + "type": [ + "number", + "null" + ] + }, + "trades": { + "type": [ + "number", + "null" + ] + }, + "unique_wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "launch_snipers": { + "properties": { + "bought_sol": { + "type": [ + "number", + "null" + ] + }, + "still_hold_pct": { + "type": [ + "number", + "null" + ] + }, + "wallets": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "mayhem": { + "type": [ + "boolean", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "post_graduation": {}, + "socials": {}, + "swap_url": {}, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "token_program": { + "type": [ + "string", + "null" + ] + }, + "top_curve_holders": { + "items": { + "properties": { + "label": {}, + "pct": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
pump_wallet3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many of the wallet's most recent recorded trades to analyse. Range 100-20000. Default 20000." - changed
Input schema / properties / wallet / descriptionPrevious value: -"wallet address"New value: +"wallet address. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "activity": { + "properties": { + "avg_buy_sol": { + "type": [ + "number", + "null" + ] + }, + "buy_sol": { + "type": [ + "number", + "null" + ] + }, + "buys": { + "type": [ + "number", + "null" + ] + }, + "sell_sol": { + "type": [ + "number", + "null" + ] + }, + "sells": { + "type": [ + "number", + "null" + ] + }, + "tokens_traded": { + "type": [ + "number", + "null" + ] + }, + "trades_per_day": { + "type": [ + "number", + "null" + ] + }, + "unpriced_tokens": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "classification": { + "type": [ + "string", + "null" + ] + }, + "closed_positions": { + "properties": { + "best": { + "type": [ + "number", + "null" + ] + }, + "count": { + "type": [ + "number", + "null" + ] + }, + "median_hold_s": { + "type": [ + "number", + "null" + ] + }, + "realized_pnl_sol": { + "type": [ + "number", + "null" + ] + }, + "win_rate_pct": { + "type": [ + "number", + "null" + ] + }, + "worst": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "created_tokens": { + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "graduated": { + "type": [ + "number", + "null" + ] + }, + "recent": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "recent_tokens": { + "items": { + "properties": { + "bought_sol": { + "type": [ + "number", + "null" + ] + }, + "last_trade": { + "type": [ + "string", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "pnl_sol": {}, + "sold_sol": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "wallet": { + "type": [ + "string", + "null" + ] + }, + "window": { + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "trades_analyzed": { + "type": [ + "number", + "null" + ] + }, + "truncated": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": "object" +}
- Changed
qr_code10 fields changed- added
Input schema / properties / dark / descriptionAdded value: +"Foreground colour as #rrggbb. Default \"#000000\"." - added
Input schema / properties / error_correction / descriptionAdded value: +"Error-correction level: L 7%, M 15%, Q 25%, H 30%. One of \"L\", \"M\", \"Q\", \"H\". Default \"M\"." - added
Input schema / properties / format / descriptionAdded value: +"PNG (base64 data URL) or SVG markup. One of \"png\", \"svg\". Default \"png\"." - added
Input schema / properties / light / descriptionAdded value: +"Background colour as #rrggbb. Default \"#ffffff\"." - added
Input schema / properties / margin / descriptionAdded value: +"Quiet-zone width in modules. Range 0-16. Default 2." - added
Input schema / properties / size / descriptionAdded value: +"Image width/height in pixels. Range 64-2048. Default 512." - added
Input schema / properties / text / descriptionAdded value: +"Text or URL to encode (ignored when wifi_ssid is set)." - added
Input schema / properties / wifi_password / descriptionAdded value: +"Wi-Fi password (with wifi_ssid; omit for open networks)." - added
Input schema / properties / wifi_ssid / descriptionAdded value: +"Wi-Fi network name; makes a join-network QR instead of text." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "encoded": { + "type": [ + "string", + "null" + ] + }, + "format": { + "type": [ + "string", + "null" + ] + }, + "svg": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
random_gen8 fields changed- added
Input schema / properties / count / descriptionAdded value: +"How many values to generate. Range 1-100. Default 1." - added
Input schema / properties / items / descriptionAdded value: +"List to shuffle or pick from (kind=shuffle or pick). 0-1000 items." - added
Input schema / properties / kind / descriptionAdded value: +"What to generate. One of \"uuid4\", \"uuid7\", \"password\", \"token\", \"int\", \"shuffle\", \"pick\", \"coin\", \"dice\". Default \"uuid4\"." - added
Input schema / properties / length / descriptionAdded value: +"Length for passwords and tokens. Range 4-256. Default 20." - added
Input schema / properties / max / descriptionAdded value: +"Highest integer (kind=int). Default 100." - added
Input schema / properties / min / descriptionAdded value: +"Lowest integer (kind=int or dice sides). Default 1." - added
Input schema / properties / symbols / descriptionAdded value: +"Include symbols in passwords. Default true." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": [ + "string", + "null" + ] + }, + "result": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
robots_check3 fields changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute URL you intend to crawl." - added
Input schema / properties / user_agent / descriptionAdded value: +"User-agent token to evaluate the rules for. Default \"MAD-Synapse\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "ai_crawlers_site_root": { + "properties": { + "Amazonbot": { + "type": [ + "string", + "null" + ] + }, + "Applebot-Extended": { + "type": [ + "string", + "null" + ] + }, + "Bytespider": { + "type": [ + "string", + "null" + ] + }, + "CCBot": { + "type": [ + "string", + "null" + ] + }, + "ChatGPT-User": { + "type": [ + "string", + "null" + ] + }, + "Claude-SearchBot": { + "type": [ + "string", + "null" + ] + }, + "Claude-User": { + "type": [ + "string", + "null" + ] + }, + "ClaudeBot": { + "type": [ + "string", + "null" + ] + }, + "Diffbot": { + "type": [ + "string", + "null" + ] + }, + "DuckAssistBot": { + "type": [ + "string", + "null" + ] + }, + "GPTBot": { + "type": [ + "string", + "null" + ] + }, + "Google-Extended": { + "type": [ + "string", + "null" + ] + }, + "Meta-ExternalAgent": { + "type": [ + "string", + "null" + ] + }, + "MistralAI-User": { + "type": [ + "string", + "null" + ] + }, + "OAI-SearchBot": { + "type": [ + "string", + "null" + ] + }, + "Perplexity-User": { + "type": [ + "string", + "null" + ] + }, + "PerplexityBot": { + "type": [ + "string", + "null" + ] + }, + "anthropic-ai": { + "type": [ + "string", + "null" + ] + }, + "cohere-ai": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "allowed": { + "type": [ + "boolean", + "null" + ] + }, + "crawl_delay": {}, + "groups": { + "type": [ + "number", + "null" + ] + }, + "matched_group": { + "type": [ + "string", + "null" + ] + }, + "path": { + "type": [ + "string", + "null" + ] + }, + "robots_txt": { + "type": [ + "string", + "null" + ] + }, + "rule": { + "type": [ + "string", + "null" + ] + }, + "sitemaps": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "user_agent": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
smart_money5 fields changed- changed
Input schema / properties / exclude_bots / descriptionPrevious value: -"drop sub-20-second and high-frequency wallets"New value: +"drop sub-20-second and high-frequency wallets. Default false." - added
Input schema / properties / limit / descriptionAdded value: +"How many top wallets to return. Range 1-50. Default 20." - added
Input schema / properties / sort / descriptionAdded value: +"Rank by realized PnL in SOL (\"pnl\"), win rate (\"win_rate\") or return on SOL spent (\"roi\"). Default \"pnl\"." - changed
Input schema / properties / window_min / descriptionPrevious value: -"look-back for buying_now"New value: +"look-back for buying_now. Range 1-120. Default 15." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "buying_now": { + "properties": { + "among_top": { + "type": [ + "number", + "null" + ] + }, + "tokens": { + "items": { + "properties": {}, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "window_min": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "leaderboard_built_at": { + "type": [ + "string", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "sort": { + "type": [ + "string", + "null" + ] + }, + "wallets": { + "items": { + "properties": { + "avg_hold_s": { + "type": [ + "number", + "null" + ] + }, + "closed": { + "type": [ + "number", + "null" + ] + }, + "pnl_sol": { + "type": [ + "number", + "null" + ] + }, + "roi_pct": { + "type": [ + "number", + "null" + ] + }, + "style": { + "type": [ + "string", + "null" + ] + }, + "volume_sol": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + }, + "win_rate_pct": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "window": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
solana_network1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "avg_slot_ms": { + "type": [ + "number", + "null" + ] + }, + "block_height": { + "type": [ + "number", + "null" + ] + }, + "epoch": { + "type": [ + "number", + "null" + ] + }, + "epoch_ends_in_hours": { + "type": [ + "number", + "null" + ] + }, + "epoch_progress_pct": { + "type": [ + "number", + "null" + ] + }, + "priority_fee_micro_lamports_per_cu": { + "properties": { + "non_vote_txs_sampled": { + "type": [ + "number", + "null" + ] + }, + "p25": { + "type": [ + "number", + "null" + ] + }, + "p50": { + "type": [ + "number", + "null" + ] + }, + "p75": { + "type": [ + "number", + "null" + ] + }, + "p90": { + "type": [ + "number", + "null" + ] + }, + "share_paying_no_priority_pct": { + "type": [ + "number", + "null" + ] + }, + "slot_sampled": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "slot": { + "type": [ + "number", + "null" + ] + }, + "tps_non_vote": { + "type": [ + "number", + "null" + ] + }, + "tps_total": { + "type": [ + "number", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + }, + "window_minutes": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
stablecoins3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many stablecoins to return. Range 1-100. Default 25." - added
Input schema / properties / peg / descriptionAdded value: +"Filter by peg currency type. One of \"any\", \"peggedUSD\", \"peggedEUR\", \"peggedVAR\". Default \"any\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "depegged_over_1pct": { + "items": { + "properties": { + "circulating": { + "type": [ + "number", + "null" + ] + }, + "price_usd": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "stablecoins": { + "items": { + "properties": { + "chains": { + "type": [ + "number", + "null" + ] + }, + "change_1d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_30d_pct": { + "type": [ + "number", + "null" + ] + }, + "change_7d_pct": { + "type": [ + "number", + "null" + ] + }, + "circulating": { + "type": [ + "number", + "null" + ] + }, + "mechanism": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "peg": { + "type": [ + "string", + "null" + ] + }, + "peg_deviation_pct": { + "type": [ + "number", + "null" + ] + }, + "price_usd": { + "type": [ + "number", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "top_chains": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "total_usd_pegged": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
sun_moon2 fields changed- added
Input schema / properties / place / descriptionAdded value: +"Place name or \"lat,lon\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "lat": { + "type": [ + "number", + "null" + ] + }, + "lon": { + "type": [ + "number", + "null" + ] + }, + "moon": { + "properties": { + "always_down": { + "type": [ + "boolean", + "null" + ] + }, + "always_up": { + "type": [ + "boolean", + "null" + ] + }, + "illumination_pct": { + "type": [ + "number", + "null" + ] + }, + "phase": { + "type": [ + "string", + "null" + ] + }, + "phase_fraction": { + "type": [ + "number", + "null" + ] + }, + "rise": { + "type": [ + "string", + "null" + ] + }, + "set": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "place": { + "type": [ + "string", + "null" + ] + }, + "sun": { + "properties": { + "dawn": { + "type": [ + "string", + "null" + ] + }, + "day_length_hours": { + "type": [ + "number", + "null" + ] + }, + "dusk": { + "type": [ + "string", + "null" + ] + }, + "golden_hour_evening_starts": { + "type": [ + "string", + "null" + ] + }, + "golden_hour_morning_ends": { + "type": [ + "string", + "null" + ] + }, + "night": { + "type": [ + "string", + "null" + ] + }, + "polar": {}, + "solar_noon": { + "type": [ + "string", + "null" + ] + }, + "sunrise": { + "type": [ + "string", + "null" + ] + }, + "sunset": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "times_in": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
text_diff5 fields changed- added
Input schema / properties / a / descriptionAdded value: +"Original text." - added
Input schema / properties / b / descriptionAdded value: +"Changed text." - added
Input schema / properties / context / descriptionAdded value: +"Unchanged lines of context around each change in the patch. Range 0-20. Default 3." - added
Input schema / properties / mode / descriptionAdded value: +"Diff granularity. One of \"lines\", \"words\". Default \"lines\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "changes": { + "items": { + "properties": { + "op": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "chars_added": { + "type": [ + "number", + "null" + ] + }, + "chars_removed": { + "type": [ + "number", + "null" + ] + }, + "identical": { + "type": [ + "boolean", + "null" + ] + }, + "similarity_pct": { + "type": [ + "number", + "null" + ] + }, + "unified": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
text_stats3 fields changed- added
Input schema / properties / extract / descriptionAdded value: +"true = if text is a URL, fetch the page and analyse its readable text. Default true." - added
Input schema / properties / text / descriptionAdded value: +"Text (or a URL when extract=true) to analyse." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "characters": { + "type": [ + "number", + "null" + ] + }, + "characters_no_spaces": { + "type": [ + "number", + "null" + ] + }, + "estimated_tokens": { + "type": [ + "number", + "null" + ] + }, + "extracted": { + "properties": { + "emails": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "evm_addresses": { + "type": "array" + }, + "handles": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "hashtags": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "numbers": { + "type": "array" + }, + "solana_addresses": { + "type": "array" + }, + "urls": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "flesch_reading_ease": { + "type": [ + "number", + "null" + ] + }, + "lines": { + "type": [ + "number", + "null" + ] + }, + "paragraphs": { + "type": [ + "number", + "null" + ] + }, + "readability": { + "type": [ + "string", + "null" + ] + }, + "reading_minutes": { + "type": [ + "number", + "null" + ] + }, + "sentences": { + "type": [ + "number", + "null" + ] + }, + "words": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
time_convert3 fields changed- added
Input schema / properties / from_tz / descriptionAdded value: +"IANA time zone the input time is in, e.g. \"America/New_York\". Default \"UTC\"." - added
Input schema / properties / to_tz / descriptionAdded value: +"IANA time zones to convert into. 0-20 items. Default [\"UTC\"]." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "added": { + "type": [ + "string", + "null" + ] + }, + "converted": { + "items": { + "properties": { + "local": { + "type": [ + "string", + "null" + ] + }, + "readable": { + "type": [ + "string", + "null" + ] + }, + "utc_offset": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "input_utc": { + "type": [ + "string", + "null" + ] + }, + "iso_week": { + "type": [ + "number", + "null" + ] + }, + "source_zone": { + "properties": { + "local": { + "type": [ + "string", + "null" + ] + }, + "readable": { + "type": [ + "string", + "null" + ] + }, + "utc_offset": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "unix": { + "type": [ + "number", + "null" + ] + }, + "utc": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
tls_check3 fields changed- added
Input schema / properties / host / descriptionAdded value: +"Hostname without scheme or path, e.g. \"example.com\"." - added
Input schema / properties / port / descriptionAdded value: +"TCP port serving TLS. Range 1-65535. Default 443." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "alpn": { + "type": [ + "string", + "null" + ] + }, + "chain": { + "items": { + "properties": { + "issuer": { + "type": [ + "string", + "null" + ] + }, + "subject": { + "type": [ + "string", + "null" + ] + }, + "valid_to": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "cipher": { + "type": [ + "string", + "null" + ] + }, + "days_left": { + "type": [ + "number", + "null" + ] + }, + "fingerprint_sha256": { + "type": [ + "string", + "null" + ] + }, + "handshake_ms": { + "type": [ + "number", + "null" + ] + }, + "host": { + "type": [ + "string", + "null" + ] + }, + "issuer": { + "type": [ + "string", + "null" + ] + }, + "issuer_cn": { + "type": [ + "string", + "null" + ] + }, + "key_bits": { + "type": [ + "number", + "null" + ] + }, + "ok": { + "type": [ + "boolean", + "null" + ] + }, + "port": { + "type": [ + "number", + "null" + ] + }, + "protocol": { + "type": [ + "string", + "null" + ] + }, + "san": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "serial": { + "type": [ + "string", + "null" + ] + }, + "subject": { + "type": [ + "string", + "null" + ] + }, + "trust_error": {}, + "trusted": { + "type": [ + "boolean", + "null" + ] + }, + "valid_from": { + "type": [ + "string", + "null" + ] + }, + "valid_to": { + "type": [ + "string", + "null" + ] + }, + "warnings": { + "type": "array" + } + }, + "type": "object" +}
- Changed
token_risk2 fields changed- changed
Input schema / properties / mint / descriptionPrevious value: -"token mint"New value: +"token mint. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dex": { + "type": [ + "string", + "null" + ] + }, + "disclaimer": { + "type": [ + "string", + "null" + ] + }, + "fdv_usd": { + "type": [ + "number", + "null" + ] + }, + "flags": { + "items": { + "properties": { + "msg": { + "type": [ + "string", + "null" + ] + }, + "severity": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "generated_utc": { + "type": [ + "string", + "null" + ] + }, + "grade": { + "type": [ + "string", + "null" + ] + }, + "known_asset": { + "properties": { + "kind": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "liquidity_total_usd": { + "type": [ + "number", + "null" + ] + }, + "liquidity_usd": { + "type": [ + "number", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "onchain": { + "properties": { + "decimals": { + "type": [ + "number", + "null" + ] + }, + "freeze_authority": {}, + "holders": {}, + "metadata_mutable": { + "type": [ + "boolean", + "null" + ] + }, + "mint_authority": {}, + "program": { + "type": [ + "string", + "null" + ] + }, + "pump_fun": {}, + "supply": { + "type": [ + "number", + "null" + ] + }, + "token2022_extensions": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "onchain_error": {}, + "pair_age_hours": { + "type": [ + "number", + "null" + ] + }, + "pair_url": { + "type": [ + "string", + "null" + ] + }, + "price_usd": { + "type": [ + "string", + "null" + ] + }, + "score": { + "type": [ + "number", + "null" + ] + }, + "solana_pairs": { + "type": [ + "number", + "null" + ] + }, + "swap_url": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "txns_24h": { + "properties": { + "buys": { + "type": [ + "number", + "null" + ] + }, + "sells": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "volume_24h_usd": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
tx_explain2 fields changed- added
Input schema / properties / signature / descriptionAdded value: +"Solana transaction signature (base58, 64-90 chars)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "compute_units": { + "type": [ + "number", + "null" + ] + }, + "error": {}, + "error_logs": {}, + "fee_sol": { + "type": [ + "number", + "null" + ] + }, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "programs": { + "items": { + "properties": { + "instructions": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "program": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "signature": { + "type": [ + "string", + "null" + ] + }, + "signers": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "slot": { + "type": [ + "number", + "null" + ] + }, + "sol_changes": { + "items": { + "properties": { + "account": { + "type": [ + "string", + "null" + ] + }, + "sol": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "token_changes": { + "type": "array" + } + }, + "type": "object" +}
- Changed
unit_convert3 fields changed- added
Input schema / properties / from / descriptionAdded value: +"Source unit, e.g. \"mi\", \"kg\", \"degF\", \"GB\"." - added
Input schema / properties / value / descriptionAdded value: +"Number to convert." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "result": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
vuln_check5 fields changed- added
Input schema / properties / ecosystem / descriptionAdded value: +"Package ecosystem: npm, PyPI, crates.io, Go, Maven, NuGet, RubyGems or Packagist. Default \"npm\"." - added
Input schema / properties / name / descriptionAdded value: +"Exact package name as published." - changed
Input schema / properties / packages / descriptionPrevious value: -"e.g. [\"npm:lodash@4.17.15\",\"pypi:requests@2.19.0\"]"New value: +"e.g. [\"npm:lodash@4.17.15\",\"pypi:requests@2.19.0\"]. 0-50 items." - added
Input schema / properties / version / descriptionAdded value: +"Exact version to check, e.g. \"4.17.1\"." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "checked": { + "type": [ + "number", + "null" + ] + }, + "packages": { + "items": { + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "package": { + "type": [ + "string", + "null" + ] + }, + "upgrade_to": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + }, + "vulnerable": { + "type": [ + "boolean", + "null" + ] + }, + "vulns": { + "type": "array" + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "vulnerable": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
wallet_holdings2 fields changed- changed
Input schema / properties / wallet / descriptionPrevious value: -"wallet address"New value: +"wallet address. Base58 Solana address, 32-44 chars." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "empty_accounts": { + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "reclaimable_sol": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "sol": { + "type": [ + "number", + "null" + ] + }, + "sol_usd": { + "type": [ + "number", + "null" + ] + }, + "token_accounts": { + "type": [ + "number", + "null" + ] + }, + "tokens": { + "items": { + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "dead": { + "type": [ + "boolean", + "null" + ] + }, + "decimals": { + "type": [ + "number", + "null" + ] + }, + "mint": { + "type": [ + "string", + "null" + ] + }, + "program": { + "type": [ + "string", + "null" + ] + }, + "usd_price": { + "type": [ + "number", + "null" + ] + }, + "usd_value": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "tokens_usd": { + "type": [ + "number", + "null" + ] + }, + "total_usd": { + "type": [ + "number", + "null" + ] + }, + "wallet": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
weather2 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Days of daily forecast to include. Range 1-9. Default 3." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "daily": { + "items": { + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "max_c": { + "type": [ + "number", + "null" + ] + }, + "max_gust_ms": {}, + "max_wind_ms": { + "type": [ + "number", + "null" + ] + }, + "min_c": { + "type": [ + "number", + "null" + ] + }, + "rain_mm": { + "type": [ + "number", + "null" + ] + }, + "sky": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "hourly_48h": { + "items": { + "properties": { + "local": { + "type": [ + "string", + "null" + ] + }, + "rain_mm": { + "type": [ + "number", + "null" + ] + }, + "rain_prob_pct": {}, + "sky": { + "type": [ + "string", + "null" + ] + }, + "temp_c": { + "type": [ + "number", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "wind_ms": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "lat": { + "type": [ + "number", + "null" + ] + }, + "lon": { + "type": [ + "number", + "null" + ] + }, + "now": { + "properties": { + "cloud_pct": { + "type": [ + "number", + "null" + ] + }, + "dew_point_c": { + "type": [ + "number", + "null" + ] + }, + "feels_like_c": { + "type": [ + "number", + "null" + ] + }, + "humidity_pct": { + "type": [ + "number", + "null" + ] + }, + "pressure_hpa": { + "type": [ + "number", + "null" + ] + }, + "rain_next_hour_mm": { + "type": [ + "number", + "null" + ] + }, + "sky": { + "type": [ + "string", + "null" + ] + }, + "temp_c": { + "type": [ + "number", + "null" + ] + }, + "time": { + "type": [ + "string", + "null" + ] + }, + "uv_index": { + "type": [ + "number", + "null" + ] + }, + "wind_from_deg": { + "type": [ + "number", + "null" + ] + }, + "wind_gust_ms": {}, + "wind_kmh": { + "type": [ + "number", + "null" + ] + }, + "wind_ms": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "place": { + "type": [ + "string", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "updated": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
web_meta2 fields changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the page." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "apple_touch_icon": {}, + "canonical": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "favicon": { + "type": [ + "string", + "null" + ] + }, + "feeds": { + "type": "array" + }, + "h1": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "h2": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "json_ld_types": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "lang": { + "type": [ + "string", + "null" + ] + }, + "link_preview_problems": { + "type": "array" + }, + "manifest": {}, + "opengraph": { + "properties": { + "og:description": { + "type": [ + "string", + "null" + ] + }, + "og:image": { + "type": [ + "string", + "null" + ] + }, + "og:title": { + "type": [ + "string", + "null" + ] + }, + "og:type": { + "type": [ + "string", + "null" + ] + }, + "og:url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "robots": {}, + "status": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "twitter": { + "properties": { + "twitter:card": { + "type": [ + "string", + "null" + ] + }, + "twitter:image": { + "type": [ + "string", + "null" + ] + }, + "twitter:site": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
web_read3 fields changed- changed
Input schema / properties / include_links / descriptionPrevious value: -"keep hyperlinks (absolute) in the markdown and return a link list"New value: +"keep hyperlinks (absolute) in the markdown and return a link list. Default false." - added
Input schema / properties / max_chars / descriptionAdded value: +"Truncate the returned markdown to this many characters. Range 500-100000. Default 20000." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "byline": { + "type": [ + "string", + "null" + ] + }, + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "extracted_with": { + "type": [ + "string", + "null" + ] + }, + "lang": { + "type": [ + "string", + "null" + ] + }, + "markdown": { + "type": [ + "string", + "null" + ] + }, + "published": { + "type": [ + "string", + "null" + ] + }, + "site": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "truncated": { + "type": [ + "boolean", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "words": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Changed
wiki5 fields changed- added
Input schema / properties / full / descriptionAdded value: +"true = return the full article text, not just the summary. Default false." - added
Input schema / properties / lang / descriptionAdded value: +"Wikipedia language code, e.g. \"en\", \"de\", \"pt-br\". Default \"en\"." - added
Input schema / properties / max_chars / descriptionAdded value: +"Truncate full article text to this many characters (with full=true). Range 500-60000. Default 8000." - added
Input schema / properties / query / descriptionAdded value: +"Topic or article title to look up." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": {}, + "found": { + "type": [ + "boolean", + "null" + ] + }, + "last_edited": { + "type": [ + "string", + "null" + ] + }, + "other_matches": { + "items": { + "properties": { + "snippet": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "thumbnail": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
yield_pools7 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"How many pools to return. Range 1-50. Default 20." - changed
Input schema / properties / max_apy / descriptionPrevious value: -"drop absurd APYs above this"New value: +"drop absurd APYs above this. Default 1000." - added
Input schema / properties / min_tvl_usd / descriptionAdded value: +"Skip pools with less TVL than this (USD); raises quality. Default 1000000." - changed
Input schema / properties / single_exposure_only / descriptionPrevious value: -"no LP pairs (no impermanent loss)"New value: +"no LP pairs (no impermanent loss) Default false." - added
Input schema / properties / sort / descriptionAdded value: +"Rank by total APY, TVL, base (non-reward) APY or 30-day mean APY. One of \"apy\", \"tvl\", \"apy_base\", \"apy_30d_mean\". Default \"apy\"." - added
Input schema / properties / stablecoin_only / descriptionAdded value: +"true = only pools whose assets are all stablecoins. Default false." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "matched": { + "type": [ + "number", + "null" + ] + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "pools": { + "items": { + "properties": { + "apy_30d_mean_pct": { + "type": [ + "number", + "null" + ] + }, + "apy_base_pct": { + "type": [ + "number", + "null" + ] + }, + "apy_change_7d": { + "type": [ + "number", + "null" + ] + }, + "apy_pct": { + "type": [ + "number", + "null" + ] + }, + "apy_reward_pct": {}, + "chain": { + "type": [ + "string", + "null" + ] + }, + "exposure": { + "type": [ + "string", + "null" + ] + }, + "il_risk": { + "type": [ + "string", + "null" + ] + }, + "outlook": { + "type": [ + "object", + "null" + ] + }, + "pool_id": { + "type": [ + "string", + "null" + ] + }, + "pool_meta": {}, + "project": { + "type": [ + "string", + "null" + ] + }, + "reward_tokens": { + "type": "array" + }, + "stablecoin": { + "type": [ + "boolean", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + }, + "tvl_usd": { + "type": [ + "number", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "type": "array" + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
57 tool updates
- Added
address_check - Added
arxiv_search - Added
bitcoin_network - Added
book_search - Added
cex_ticker - Added
chain_tvl - Added
country_info - Added
cron_explain - Added
crypto_price - Added
defi_protocol - Added
defi_rankings - Added
dex_volumes - Added
dns_lookup - Added
doi_lookup - Added
domain_whois - Added
earthquakes - Added
email_check - Added
ens_resolve - Added
erc20_info - Added
evm_address - Added
evm_token_security - Added
evm_tx - Added
fear_greed - Added
fees_revenue - Added
funding_rates - Added
fx_rates - Added
gas_now - Added
geocode - Added
github_repo - Added
hash_encode - Added
hn_search - Added
holidays - Added
http_probe - Added
hyperliquid_markets - Added
json_schema_validate - Added
jwt_decode - Added
markdown_convert - Added
orderbook_depth - Added
package_info - Added
price_history - Added
qr_code - Added
random_gen - Added
robots_check - Added
solana_network - Added
stablecoins - Added
sun_moon - Added
text_diff - Added
text_stats - Added
time_convert - Added
tls_check - Added
unit_convert - Added
vuln_check - Added
weather - Added
web_meta - Added
web_read - Added
wiki - Added
yield_pools
1 tool update
- Added
copy_backtest
1 tool update
- Added
pump_history
16 tool updates
- First observed
counterparty_check - First observed
dlmm_pool - First observed
dlmm_positions - First observed
dlmm_whales - First observed
launch_scan - First observed
price - First observed
pump_dev - First observed
pump_launches - First observed
pump_odds - First observed
pump_pulse - First observed
pump_token - First observed
pump_wallet - First observed
smart_money - First observed
token_risk - First observed
tx_explain - First observed
wallet_holdings
Related MCP Connectors
Solana onchain intelligence for AI agents: wallet risk, due-diligence, perps funding, smart money.
Solana address risk grades and token scans for AI agents. Pay-per-call via x402 (USDC on Base).
Solana memecoin rug + creator-reputation checks for agents. PASS/CAUTION/FAIL + 0-100 score.
Solana memecoin rug check for trading agents: pump.fun launches, calibrated rug risk, wallets, KOL.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables agents to query real-time labelled pump.fun intelligence—launch risk cards, creator reputation, rug/graduation flags, wallet profiles, and market regime—with paid endpoints settled per request via x402 USDC on Solana and free sample/regime tools.27MIT
- AlicenseAqualityAmaintenanceSolana memecoin rug check and token risk for trading agents in the trenches: pump.fun launches, calibrated rug probability with a published hit rate, sniper, insider and bundle detection, holder clusters, KOL trades, wallet history and a live sellability check for memecoins. Available as a remote MCP endpoint (OAuth or API key) and as an npm stdio package.2683 npm3MIT
- AlicenseAqualityAmaintenanceRug pull risk scores and on-chain forensics for memecoins on Solana, Ethereum, Base and Robinhood Chain - launch-bundle detection, funding-origin tracing, deployer history, insider networks and whale flow. 15 read-only tools.1515 npmMIT
- AlicenseNot gradedqualityDmaintenanceSolana on-chain intelligence API — token scans, wallet PnL, bundle detection, fresh wallets, dev profiling. MCP server for Claude, Cursor & AI agents. Live PumpFun/Raydium streams1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.