Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
33
A2A A2A 1.0 v1.0.0 x402 micropay

SolEnrich

solenrich.com

Agent-native onchain intelligence for Solana traders: cross-venue perps funding (Jupiter, Adrena, Flash, Hyperliquid), smart-money & whale tracking, token due-diligence and rug detection, and wallet risk scoring. Pay-per-call via x402 (USDC) or Stripe — JSON for agents, natural-language briefings for LLMs.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain solenrich.com via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
33/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~187 ms response
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
1 snapshot tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 33/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 0/25
Card declares a URL but that URL returns 404.
How to earn +25 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs →
pass Protocol version 10/10
Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape).
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
partial Skill declaration 8/10
Declares 51 skills with structured metadata. 51 of 51 skills lack tags or a description — both REQUIRED on AgentSkill since A2A v1.0; discovery filters cannot match an untagged skill.
How to earn +2 points
Declare your skills
Add at least one entry to the `skills` array on the AgentCard, each with `id`, `name`, `description`, `tags` — `description` and `tags` are REQUIRED on AgentSkill since A2A v1.0, and tags are what discovery filters match on. We canonicalise these into the global skill taxonomy on next probe.
Docs →
fail Verified Identity 0/10
No provider organisation declared. Anonymous agent.
How to earn +10 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-09 18:32:21 current 78a2d458ea56… view →
Uptime
accumulating
1 direct probes · 30d
Response
313ms
last direct probe
Skills
51
declared
Streaming
—
SSE-capable

Endpoints

Pricing x402 Self-declared · /.well-known/x402 Dispute or improve this rating
From $0.0010 per call
Endpoint Price Currency
https://solenrich.com/entrypoints/enrich-wallet-light/invoke 0.002 USD
https://solenrich.com/entrypoints/enrich-wallet-full/invoke 0.005 USD
https://solenrich.com/entrypoints/enrich-token-light/invoke 0.002 USD
https://solenrich.com/entrypoints/enrich-token-full/invoke 0.004 USD
https://solenrich.com/entrypoints/parse-transaction/invoke 0.001 USD
https://solenrich.com/entrypoints/whale-watch/invoke 0.008 USD
https://solenrich.com/entrypoints/batch-enrich/invoke 0.015 USD
https://solenrich.com/entrypoints/wallet-graph/invoke 0.01 USD
https://solenrich.com/entrypoints/wallet-link-check/invoke 0.03 USD
https://solenrich.com/entrypoints/copy-trade-signals/invoke 0.01 USD
https://solenrich.com/entrypoints/due-diligence/invoke 0.02 USD
https://solenrich.com/entrypoints/query/invoke 0.003 USD
https://solenrich.com/entrypoints/compare-tokens/invoke 0.006 USD
https://solenrich.com/entrypoints/compare-wallets/invoke 0.006 USD
https://solenrich.com/entrypoints/token-trend/invoke 0.006 USD
https://solenrich.com/entrypoints/wallet-history/invoke 0.006 USD
https://solenrich.com/entrypoints/new-tokens/invoke 0.012 USD
https://solenrich.com/entrypoints/protocol-profile/invoke 0.008 USD
https://solenrich.com/entrypoints/perps-market-structure/invoke 0.012 USD
https://solenrich.com/entrypoints/perps-trader-profile/invoke 0.01 USD
https://solenrich.com/entrypoints/hyperliquid-trader-profile/invoke 0.012 USD
https://solenrich.com/entrypoints/hyperliquid-smart-money/invoke 0.05 USD
https://solenrich.com/entrypoints/perps-cross-venue-funding/invoke 0.015 USD
https://solenrich.com/entrypoints/perps-venue-comparison/invoke 0.02 USD
https://solenrich.com/entrypoints/perps-basis-signal/invoke 0.015 USD
https://solenrich.com/entrypoints/perps-market-trend/invoke 0.008 USD
https://solenrich.com/entrypoints/trending-signals/invoke 0.05 USD
https://solenrich.com/entrypoints/smart-money-flow/invoke 0.1 USD
https://solenrich.com/entrypoints/smart-money-trenches/invoke 0.05 USD
https://solenrich.com/entrypoints/runner-scan/invoke 0.04 USD
https://solenrich.com/entrypoints/feed-latest/invoke 0.005 USD
https://solenrich.com/entrypoints/consensus-signal/invoke 0.005 USD
https://solenrich.com/entrypoints/attention-momentum/invoke 0.02 USD
https://solenrich.com/entrypoints/trenches-scan/invoke 0.08 USD
https://solenrich.com/entrypoints/trenches-check/invoke 0.03 USD
https://solenrich.com/entrypoints/exit-signal/invoke 0.04 USD
https://solenrich.com/entrypoints/portfolio-history/invoke 0.006 USD
https://solenrich.com/entrypoints/check-alerts/invoke 0.008 USD
https://solenrich.com/entrypoints/gacha-ev-scan/invoke 0.02 USD
https://solenrich.com/entrypoints/stonk-reward-risk/invoke 0.005 USD
https://solenrich.com/entrypoints/stonk-yield/invoke 0.005 USD
https://solenrich.com/entrypoints/stonk-screener/invoke 0.01 USD
https://solenrich.com/entrypoints/stonk-launch-preflight/invoke 0.25 USD
https://solenrich.com/entrypoints/stonk-gems/invoke 0.03 USD
https://solenrich.com/entrypoints/stonk-launch-intel/invoke 0.02 USD
https://solenrich.com/entrypoints/stonk-quote/invoke 0.005 USD
https://solenrich.com/entrypoints/stonk-yield-batch/invoke 0.05 USD
https://solenrich.com/entrypoints/stonk-alerts/invoke 0.02 USD
https://solenrich.com/entrypoints/stonk-creator/invoke 0.01 USD
https://solenrich.com/entrypoints/stonk-market-pulse/invoke 0.005 USD
Agent cardhttps://solenrich.com/.well-known/agent.json
Discovered via
smithery

Skills · 51 declared · mapped to canonical taxonomy

enrich-wallet-light

Light wallet profile with holdings, labels, and risk score

orphan: no canonical match yet
enrich-wallet-full

Full wallet profile with holdings, DeFi positions, labels, risk score, and connected wallets

orphan: no canonical match yet
enrich-token-light

Token analysis with price, market data, liquidity, and risk flags

canonical Investment Analysis match 86%
enrich-token-full

Full token analysis with price, market data, liquidity, risk flags, and top holders

orphan: no canonical match yet
parse-transaction

Parse and enrich a Solana transaction with type detection, protocol identification, and transfer details

orphan: no canonical match yet
whale-watch

Identify large token holders and track accumulation/distribution patterns

orphan: no canonical match yet
batch-enrich

Enrich multiple wallets or tokens in parallel

orphan: no canonical match yet
wallet-graph

Map wallet transaction connections and detect suspicious clusters

orphan: no canonical match yet
wallet-link-check

Are two Solana wallets the same owner? Same-owner confidence and a verdict (LIKELY_SAME_OWNER / LIKELY_ROTATION, UNCERTAIN, SUSPICIOUS) from direct transfers, f…

canonical Solana Token Risk Assessment match 90%
copy-trade-signals

Analyze wallet trading performance and copyability

canonical Market Signals and Strategy match 87%
due-diligence

Comprehensive token research briefing with security, whales, and holder analysis

orphan: no canonical match yet
compare-tokens

Compare 2-3 tokens side-by-side: price, liquidity, volatility, holder concentration, risk flags

canonical Investment Analysis match 86%
compare-wallets

Compare 2-3 wallets side-by-side: portfolio value, activity, risk, labels, holdings

canonical Investment Analysis match 86%
token-trend

Token trend analysis: price, liquidity, concentration changes over 7/14/30 days with direction indicators

orphan: no canonical match yet
wallet-history

Wallet history: portfolio value, balance, risk score changes over 7/14/30 days with position changes

orphan: no canonical match yet
portfolio-history

Full portfolio time-series for a wallet — daily snapshots of value, balance, holdings, risk, plus summary stats (peak, trough, max drawdown, average, change vs …

orphan: no canonical match yet
perps-market-trend

Jupiter Perps market trend: per-symbol (SOL/BTC/ETH) deltas for mark price, total open interest, long/short skew, utilization, and borrow APR over 7/14/30 days.…

orphan: no canonical match yet
new-tokens

Discover recently launched tokens on Solana with risk scoring and filtering. Returns safest first.

canonical Solana Token Risk Assessment match 90%
protocol-profile

DeFi protocol analytics: TVL, yield pools, on-chain activity, health signals

canonical Crypto Derivatives Analytics match 87%
perps-market-structure

Jupiter Perps market structure — per-market OI, utilization, borrow APR, skew, OI caps, and health flags for SOL/BTC/ETH

orphan: no canonical match yet
perps-trader-profile

Multi-venue perps trader profile — fetches open positions from BOTH Jupiter Perps and Adrena for the wallet. Returns per-position size/leverage/entry/unrealized…

orphan: no canonical match yet
gacha-ev-scan

Jupiter Gacha (Collector Crypt) pack EV scan — for each tokenized-card pack machine, computes net-of-exit-mechanics expected value: gross insured EV vs the guar…

orphan: no canonical match yet
hyperliquid-trader-profile

Hyperliquid trader profile for an EVM (0x) address. Reads the trader's live perp positions directly from Hyperliquid's public on-chain state: per-position coin,…

orphan: no canonical match yet
hyperliquid-smart-money

Where Hyperliquid smart money is positioned right now. Scans the HL leaderboard, excludes market-makers/HFT (turnover filter) and dust/mega-funds (account band)…

orphan: no canonical match yet
perps-cross-venue-funding

Cross-venue perps funding rate aggregator. Compares borrow/funding APR + open interest across Solana on-chain venues (Jupiter Perps, Adrena) with cross-chain re…

orphan: no canonical match yet
perps-venue-comparison

Where to trade this market at this size. Compares total entry cost (slippage + fee + first-hour borrow), OI cap headroom, and venue health across Jupiter Perps,…

orphan: no canonical match yet
perps-basis-signal

Net-yield-after-borrow basis trade scanner. Computes perp mark vs spot price across venues and surfaces actually-earnable yield — funding APR on reference venue…

orphan: no canonical match yet
trending-signals

Orchestrated ranking of trending Solana tokens. Scans DexScreener trending, enriches with token analysis + optional whale-watch flow, and returns a composite-si…

orphan: no canonical match yet
smart-money-flow

Orchestrated smart-money intelligence. Scores a seed wallet list via copy-trade metrics, filters to qualifying winners (win rate + trade count), then surfaces t…

orphan: no canonical match yet
smart-money-trenches

Which proven-winner wallets are aping fresh (<6h) memecoin launches right now, and what are they buying? Scans a vetted seed set of realized-PnL winners (bot-fi…

orphan: no canonical match yet
runner-scan

Detect Solana memecoins whose on-chain buying is accelerating right now — the signature of a run in progress. Measures buy-rate acceleration across 5m/1h/6h win…

canonical Solana Token Risk Assessment match 91%
query

Plain English questions routed to the right enricher. Single-intent questions hit one enricher; compound questions ("should I buy X?", "wallet deep dive on X", …

orphan: no canonical match yet
feed-latest

Daily SolEnrich intelligence brief — pre-computed ranking of trending Solana tokens with composite signal scoring (liquidity, risk, holder concentration, whale …

canonical Solana Token Risk Assessment match 91%
consensus-signal

Agent attention signal — what tokens or wallets are being queried by other agents right now. Proprietary data: derived from SolEnrich's own query stream, not ma…

orphan: no canonical match yet
attention-momentum

Agent-attention ACCELERATION with price divergence — tokens ranked by how fast attention is speeding up (query velocity change across three consecutive windows)…

orphan: no canonical match yet
trenches-scan

The three-signal memecoin scan in one call: on-chain velocity (runner-scan), proven-winner buys (smart-money-trenches), and agent attention (attention-momentum)…

orphan: no canonical match yet
trenches-check

The trenches suite pointed at ONE token: pass a mint, get a HIGH_CONFLUENCE / MODERATE / SINGLE_SIGNAL / NO_SIGNAL verdict with reasoning. Runs the same three l…

orphan: no canonical match yet
exit-signal

The sell-side verdict for a token you hold: pass a mint, get EXIT / DERISK / HOLD with an exit score and reasoning. Reads sell pressure, buy-rate deceleration, …

orphan: no canonical match yet
stonk-market-pulse

Is the StonkFun market rising or falling right now? Verdict RISK_ON / NEUTRAL / RISK_OFF from breadth (share of live coins up over 24h) and the median 24h move,…

orphan: no canonical match yet
stonk-creator

Track record of a StonkFun creator — pass the creator wallet, or a coin mint to look up who launched it. Verdict ESTABLISHED (several coins that survive), MIXED…

orphan: no canonical match yet
stonk-pairs

FREE. Quote assets a StonkFun launch can be paired against (xStocks, pre-stocks, currencies, custom mints), with normalized categories and an is_agent_launchabl…

orphan: no canonical match yet
stonk-reward-risk

Payout status for a StonkFun reward coin — what a holder observes: PAYING (payout in the last 24h), STALE, NEVER, or NOT_REWARD — plus trading cost (tax bps, ro…

orphan: no canonical match yet
stonk-yield

Trailing 7d / 30d / lifetime holder yield for a StonkFun reward coin: rewards distributed in the quote asset, priced in USD, divided by average market cap over …

orphan: no canonical match yet
stonk-yield-batch

stonk-yield for up to 25 StonkFun reward coins in one call: trailing 7d / 30d / lifetime holder yield per coin (rewards in the quote asset, priced in USD, over …

orphan: no canonical match yet
stonk-alerts

What changed for your StonkFun reward coins since your last check, for up to 25 coins: payout_landed (a payout reached holders), payout_stale (no payout for 24h…

orphan: no canonical match yet
stonk-screener

Screen every StonkFun reward coin from a 10-minute index. Per row: payout status (PAYING / STALE / NEVER), hours since last payout, live flag (traded AND paid i…

orphan: no canonical match yet
stonk-gems

Shortlist of StonkFun reward coins that are alive, paying, and liquid. Scores 0-100 from the 10-minute index — recent holder payout, holders, size, 24h turnover…

orphan: no canonical match yet
stonk-launch-intel

What to launch on StonkFun, and against what. Per quote asset: coins, launches (24h / 7d), share trading today, share paying holders today, survival past day 3,…

orphan: no canonical match yet
stonk-launch-preflight

Preflight a self-built Raydium LaunchLab launch before broadcasting: decodes the initialize instruction from your unsigned transaction and diffs every parameter…

orphan: no canonical match yet
stonk-quote

Cost and payback of one StonkFun trade at one size, no swap: entry and exit cost (transfer tax + price impact at size), round-trip % and the breakeven price mov…

orphan: no canonical match yet
check-alerts

Poll-based event detection. Pass a watchlist (tokens + wallets) and a `since` ISO 8601 timestamp; receive alerts fired since that time. Detects: token alerts (p…

orphan: no canonical match yet

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-09 18:32:21 200 ✗ 313ms

Cheaper or better alternatives per-skill

↑ 4 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

SolEnrich
Agent-native onchain intelligence for Solana traders: cross-venue perps funding (Jupiter, Adrena, Flash, Hyperliquid), smart-money & whale t
api.solenrich.com · q 75%
x402 Multi-Chain Blockchain & Lighter Intelligence API
Pay-per-call blockchain data for NEAR Protocol, Solana, and Base (Ethereum L2), plus proprietary Lighter DEX intelligence (spread analytics,
OpenClaw · q 76%
Mindjack Agent Data API
Calibrated rug-risk verdicts and wallet identity for Solana tokens. Every pump.fun and letsbonk migration is recorded as it happens, so a to
Mindjack · q 90%
trustdex.app
Machine-payable token-safety intelligence for AI agents: A+-F risk verdicts, pre-graduation Solana signals, authority checks, wallet portfol
trustdex.app · q 0%
Deepnets
Deepnets: Solana trading intelligence — token safety, holder graphs, funding-network detection, social research, watchlist, trending feed. F
Deepnets · q 76%
HostDeFi Token Risk API
Machine-payable token-safety intelligence for AI agents: A+-F risk verdicts, pre-graduation Solana signals, authority checks, wallet portfol
HostDeFi · q 90%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/solenrich.com.svg)](https://agenstry.com/agents/solenrich.com)
[![Verified Business](https://agenstry.com/badge/solenrich.com/identity.svg)](https://agenstry.com/agents/solenrich.com)
[![Uptime](https://agenstry.com/badge/solenrich.com/uptime.svg)](https://agenstry.com/agents/solenrich.com)
[![A2A version](https://agenstry.com/badge/solenrich.com/protocol.svg)](https://agenstry.com/agents/solenrich.com)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "protocolVersion": "1.0",
  "name": "SolEnrich",
  "description": "Agent-native onchain intelligence for Solana traders: cross-venue perps funding (Jupiter, Adrena, Flash, Hyperliquid), smart-money & whale tracking, token due-diligence and rug detection, and wallet risk scoring. Pay-per-call via x402 (USDC) or Stripe \u2014 JSON for agents, natural-language briefings for LLMs.",
  "url": "https://api.solenrich.com/",
  "supportedInterfaces": [
    {
      "url": "https://api.solenrich.com/",
      "protocolBinding": "HTTP+JSON"
    }
  ],
  "version": "1.0.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "enrich-wallet-light",
      "name": "enrich-wallet-light",
      "description": "Light wallet profile with holdings, labels, and risk score",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "enrich-wallet-full",
      "name": "enrich-wallet-full",
      "description": "Full wallet profile with holdings, DeFi positions, labels, risk score, and connected wallets",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "enrich-token-light",
      "name": "enrich-token-light",
      "description": "Token analysis with price, market data, liquidity, and risk flags",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "include_holders": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "include_holders",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "enrich-token-full",
      "name": "enrich-token-full",
      "description": "Full token analysis with price, market data, liquidity, risk flags, and top holders",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "include_holders": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "include_holders",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "parse-transaction",
      "name": "parse-transaction",
      "description": "Parse and enrich a Solana transaction with type detection, protocol identification, and transfer details",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "signature": {
            "type": "string",
            "minLength": 86,
            "maxLength": 90,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "signature",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "whale-watch",
      "name": "whale-watch",
      "description": "Identify large token holders and track accumulation/distribution patterns",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "threshold_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 100
          },
          "lookback_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 168
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "threshold_usd",
          "lookback_hours",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "batch-enrich",
      "name": "batch-enrich",
      "description": "Enrich multiple wallets or tokens in parallel",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "addresses": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "type": {
            "type": "string",
            "enum": [
              "wallet",
              "token"
            ]
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "addresses",
          "type",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "wallet-graph",
      "name": "wallet-graph",
      "description": "Map wallet transaction connections and detect suspicious clusters",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": 1,
            "type": "number",
            "minimum": 1,
            "maximum": 2
          },
          "min_interactions": {
            "default": 1,
            "type": "number",
            "minimum": 1
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "min_interactions",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "wallet-link-check",
      "name": "wallet-link-check",
      "description": "Are two Solana wallets the same owner? Same-owner confidence and a verdict (LIKELY_SAME_OWNER / LIKELY_ROTATION, UNCERTAIN, SUSPICIOUS) from direct transfers, first funders, the new wallet's age and x402 history, and risk flags. Built for x402 trust monitors deciding whether a payout-wallet change is a rotation or a hijack.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "wallet_a": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "wallet_b": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "context": {
            "default": "general",
            "type": "string",
            "enum": [
              "payout_rotation",
              "general"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "wallet_a",
          "wallet_b",
          "context",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "copy-trade-signals",
      "name": "copy-trade-signals",
      "description": "Analyze wallet trading performance and copyability",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback_days": {
            "default": 30,
            "type": "number",
            "minimum": 1,
            "maximum": 90
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "lookback_days",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "due-diligence",
      "name": "due-diligence",
      "description": "Comprehensive token research briefing with security, whales, and holder analysis",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "compare-tokens",
      "name": "compare-tokens",
      "description": "Compare 2-3 tokens side-by-side: price, liquidity, volatility, holder concentration, risk flags",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mints": {
            "minItems": 2,
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            },
            "description": "2-3 token mint addresses to compare"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mints",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "compare-wallets",
      "name": "compare-wallets",
      "description": "Compare 2-3 wallets side-by-side: portfolio value, activity, risk, labels, holdings",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "addresses": {
            "minItems": 2,
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            },
            "description": "2-3 wallet addresses to compare"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "addresses",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "token-trend",
      "name": "token-trend",
      "description": "Token trend analysis: price, liquidity, concentration changes over 7/14/30 days with direction indicators",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "wallet-history",
      "name": "wallet-history",
      "description": "Wallet history: portfolio value, balance, risk score changes over 7/14/30 days with position changes",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "portfolio-history",
      "name": "portfolio-history",
      "description": "Full portfolio time-series for a wallet \u2014 daily snapshots of value, balance, holdings, risk, plus summary stats (peak, trough, max drawdown, average, change vs period start). Distinct from wallet-history which returns two-point deltas; this returns the series for charting.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "period": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "period",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-market-trend",
      "name": "perps-market-trend",
      "description": "Jupiter Perps market trend: per-symbol (SOL/BTC/ETH) deltas for mark price, total open interest, long/short skew, utilization, and borrow APR over 7/14/30 days. Direction indicators per metric and per market. Mirror of token-trend for perps markets \u2014 required for regime-detection strategies and any bot that adjusts behavior based on whether the market is growing, stressed, or rebalancing.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "new-tokens",
      "name": "new-tokens",
      "description": "Discover recently launched tokens on Solana with risk scoring and filtering. Returns safest first.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "min_liquidity_usd": {
            "default": 1000,
            "description": "Minimum liquidity in USD to include",
            "type": "number"
          },
          "max_risk_score": {
            "default": 0.8,
            "description": "Maximum risk score (0-1) to include",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "limit": {
            "default": 10,
            "description": "Number of tokens to return",
            "type": "number",
            "minimum": 1,
            "maximum": 20
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_liquidity_usd",
          "max_risk_score",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "protocol-profile",
      "name": "protocol-profile",
      "description": "DeFi protocol analytics: TVL, yield pools, on-chain activity, health signals",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "protocol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Protocol slug (e.g. \"raydium\", \"orca\") or Solana program ID"
          },
          "include_yields": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "protocol",
          "include_yields",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-market-structure",
      "name": "perps-market-structure",
      "description": "Jupiter Perps market structure \u2014 per-market OI, utilization, borrow APR, skew, OI caps, and health flags for SOL/BTC/ETH",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-trader-profile",
      "name": "perps-trader-profile",
      "description": "Multi-venue perps trader profile \u2014 fetches open positions from BOTH Jupiter Perps and Adrena for the wallet. Returns per-position size/leverage/entry/unrealized PnL/risk flags, per-venue breakdown with venue totals, and combined totals across venues. Output includes a `venue` tag on every position and a `by_venue` breakdown alongside combined `totals`. Adrena PnL requires per-collateral mark prices (jitoSOL/WBTC/BONK via Jupiter price API) and is null when unavailable.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "gacha-ev-scan",
      "name": "gacha-ev-scan",
      "description": "Jupiter Gacha (Collector Crypt) pack EV scan \u2014 for each tokenized-card pack machine, computes net-of-exit-mechanics expected value: gross insured EV vs the guaranteed instant-buyback floor (85\u201393% of insured, \u226472h) vs a marketplace sale (insured value minus 2% fee, fill-risk). Returns a POSITIVE_EV / HOUSE_EDGE / NEGATIVE_EV verdict per machine plus rare+epic stock share, ranked by the chosen exit path. The number the platform hides behind its gross EV headline.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "machine": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "franchise": {
            "default": "all",
            "type": "string",
            "enum": [
              "pokemon",
              "onepiece",
              "all"
            ]
          },
          "exit_strategy": {
            "default": "both",
            "type": "string",
            "enum": [
              "buyback",
              "marketplace",
              "both"
            ]
          },
          "min_edge_pct": {
            "type": "number",
            "minimum": -100,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "franchise",
          "exit_strategy",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "hyperliquid-trader-profile",
      "name": "hyperliquid-trader-profile",
      "description": "Hyperliquid trader profile for an EVM (0x) address. Reads the trader's live perp positions directly from Hyperliquid's public on-chain state: per-position coin, side, leverage, notional, entry, unrealized PnL, distance-to-liquidation, and risk flags (high_leverage, extreme_leverage, approaching_liquidation, losing). Plus account value, directional bias, profile (directional/market-neutral/diversified), weighted leverage, and realized+unrealized PnL over week/month/all-time. Hyperliquid is uniquely transparent \u2014 every position is public \u2014 making this the building block for smart-money tracking.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "hyperliquid-smart-money",
      "name": "hyperliquid-smart-money",
      "description": "Where Hyperliquid smart money is positioned right now. Scans the HL leaderboard, excludes market-makers/HFT (turnover filter) and dust/mega-funds (account band), keeps only CONSISTENT directional traders (week+month PnL > 0, not a systematic book), then aggregates their live positions into a per-coin consensus signal (long/short trader counts, net notional, bias, conviction) plus a top-trader drill-down ranked by robust month PnL. Pass `market` (e.g. HYPE/BTC/ETH) to focus one coin. NOTE: a positioning signal, not a trade \u2014 consensus is often late/crowded and regime-dependent; use as confluence/risk context, not a standalone entry.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "minLength": 1,
            "maxLength": 12
          },
          "top_traders": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-cross-venue-funding",
      "name": "perps-cross-venue-funding",
      "description": "Cross-venue perps funding rate aggregator. Compares borrow/funding APR + open interest across Solana on-chain venues (Jupiter Perps, Adrena) with cross-chain reference (Hyperliquid, dYdX v4). Returns best entry per side, basis vs Hyperliquid, and arbitrage opportunities.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "include_reference": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "market",
          "include_reference",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-venue-comparison",
      "name": "perps-venue-comparison",
      "description": "Where to trade this market at this size. Compares total entry cost (slippage + fee + first-hour borrow), OI cap headroom, and venue health across Jupiter Perps, Adrena, Hyperliquid, and dYdX v4. Returns rankings + recommendation with warnings.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "size_usd": {
            "type": "number",
            "minimum": 100,
            "maximum": 10000000
          },
          "side": {
            "default": "long",
            "type": "string",
            "enum": [
              "long",
              "short"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "market",
          "size_usd",
          "side",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "perps-basis-signal",
      "name": "perps-basis-signal",
      "description": "Net-yield-after-borrow basis trade scanner. Computes perp mark vs spot price across venues and surfaces actually-earnable yield \u2014 funding APR on reference venues (Hyperliquid, dYdX v4), correctly flagged as not-viable on Solana pool perps (Jupiter, Adrena) which charge borrow on both sides. Returns per-venue trade, filtered opportunities, and best trade.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "asset": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "min_yield_apr_pct": {
            "default": 5,
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "asset",
          "min_yield_apr_pct",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "trending-signals",
      "name": "trending-signals",
      "description": "Orchestrated ranking of trending Solana tokens. Scans DexScreener trending, enriches with token analysis + optional whale-watch flow, and returns a composite-signal ranked list with reasoning. \"What's worth paying attention to right now?\"",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "min_liquidity_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 0
          },
          "max_risk_score": {
            "default": 0.7,
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "include_whale_watch": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_liquidity_usd",
          "max_risk_score",
          "limit",
          "include_whale_watch",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "smart-money-flow",
      "name": "smart-money-flow",
      "description": "Orchestrated smart-money intelligence. Scores a seed wallet list via copy-trade metrics, filters to qualifying winners (win rate + trade count), then surfaces tokens they're accumulating and wallet clusters. Pass your own `wallets` array or use our curated default list.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "wallets": {
            "maxItems": 30,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "lookback_days": {
            "default": 14,
            "type": "integer",
            "minimum": 1,
            "maximum": 90
          },
          "min_win_rate": {
            "default": 0.55,
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "top_n_tokens": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "include_graph": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "lookback_days",
          "min_win_rate",
          "top_n_tokens",
          "include_graph",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "smart-money-trenches",
      "name": "smart-money-trenches",
      "description": "Which proven-winner wallets are aping fresh (<6h) memecoin launches right now, and what are they buying? Scans a vetted seed set of realized-PnL winners (bot-filtered, re-checked live each scan), overlays their recent buys against token launch times, and ranks fresh tokens by distinct smart buyers + recency. The trenches attention signal.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "hours_back": {
            "default": 12,
            "type": "integer",
            "minimum": 1,
            "maximum": 48
          },
          "max_token_age_hours": {
            "default": 6,
            "type": "number",
            "minimum": 1,
            "maximum": 72
          },
          "min_buyers": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 14
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "hours_back",
          "max_token_age_hours",
          "min_buyers",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "runner-scan",
      "name": "runner-scan",
      "description": "Detect Solana memecoins whose on-chain buying is accelerating right now \u2014 the signature of a run in progress. Measures buy-rate acceleration across 5m/1h/6h windows, buy pressure, volume and price velocity, holder growth, and liquidity trend, then classifies each token IGNITING / RUNNING / PARABOLIC_LATE / FADING with a 0-1 velocity score and reasoning. Flags already-ran tokens as entry risk and liquidity pulls as rugs rather than dressing them up as runners.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "max_token_age_hours": {
            "default": 24,
            "type": "number",
            "minimum": 0.1,
            "maximum": 168
          },
          "min_liquidity_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "min_volume_h1_usd": {
            "default": 5000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "limit": {
            "default": 15,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_token_age_hours",
          "min_liquidity_usd",
          "min_volume_h1_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "query",
      "name": "query",
      "description": "Plain English questions routed to the right enricher. Single-intent questions hit one enricher; compound questions (\"should I buy X?\", \"wallet deep dive on X\", \"what's trending?\") chain 2-3 enrichers in parallel and return a unified briefing.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "question",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "feed-latest",
      "name": "feed-latest",
      "description": "Daily SolEnrich intelligence brief \u2014 pre-computed ranking of trending Solana tokens with composite signal scoring (liquidity, risk, holder concentration, whale flow). Cached 24h. Pass `since` (ISO 8601) to short-circuit on no-change. Pay-per-poll model \u2014 designed for agents that want recurring signal without orchestration cost.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "consensus-signal",
      "name": "consensus-signal",
      "description": "Agent attention signal \u2014 what tokens or wallets are being queried by other agents right now. Proprietary data: derived from SolEnrich's own query stream, not market volume. Two modes: pass `address` to get that entity's rank/percentile/trend; omit it to get the top-N most-queried entities. Windows: 1h, 6h, 24h.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "type": {
            "default": "token",
            "type": "string",
            "enum": [
              "token",
              "wallet"
            ]
          },
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "window": {
            "default": "1h",
            "type": "string",
            "enum": [
              "1h",
              "6h",
              "24h"
            ]
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "type",
          "window",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "attention-momentum",
      "name": "attention-momentum",
      "description": "Agent-attention ACCELERATION with price divergence \u2014 tokens ranked by how fast attention is speeding up (query velocity change across three consecutive windows), overlaid with price change over the same window. early_signal = attention accelerating while price is flat (agents researching before the market moves); distribution_risk = attention cooling while price pumps. Proprietary: derived from SolEnrich's own agent query stream. Windows: 1h, 6h, 24h.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "window": {
            "default": "6h",
            "type": "string",
            "enum": [
              "1h",
              "6h",
              "24h"
            ]
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "window",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "trenches-scan",
      "name": "trenches-scan",
      "description": "The three-signal memecoin scan in one call: on-chain velocity (runner-scan), proven-winner buys (smart-money-trenches), and agent attention (attention-momentum), composited into a ranked ape-able list with per-token reasoning and HIGH_CONFLUENCE / MODERATE / SINGLE_SIGNAL verdicts. Legs degrade independently \u2014 one upstream failure annotates the result instead of killing it.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "max_token_age_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 72
          },
          "min_liquidity_usd": {
            "default": 5000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_token_age_hours",
          "min_liquidity_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "trenches-check",
      "name": "trenches-check",
      "description": "The trenches suite pointed at ONE token: pass a mint, get a HIGH_CONFLUENCE / MODERATE / SINGLE_SIGNAL / NO_SIGNAL verdict with reasoning. Runs the same three legs as trenches-scan \u2014 on-chain velocity (runner stage + score), proven-winner buys, agent attention \u2014 but targeted. The follow-up call to a new-tokens discovery or any token someone shilled you: before you ape, run the check.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "exit-signal",
      "name": "exit-signal",
      "description": "The sell-side verdict for a token you hold: pass a mint, get EXIT / DERISK / HOLD with an exit score and reasoning. Reads sell pressure, buy-rate deceleration, volume fade, distribution-into-strength divergence, top-holder flow (who is distributing vs accumulating), liquidity trend, and holder churn. Rug triggers (LP pull, active dump) override everything. Works on tokens of any age. Optional entry_price_usd adds unrealized-PnL context.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "entry_price_usd": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-market-pulse",
      "name": "stonk-market-pulse",
      "description": "Is the StonkFun market rising or falling right now? Verdict RISK_ON / NEUTRAL / RISK_OFF from breadth (share of live coins up over 24h) and the median 24h move, plus the volume-weighted move (big coins vs the typical coin), launches per day, share of all reward coins trading and paying, survival past day 3, holder revenue for the last 7 days vs the 7 before, the strongest and weakest quote shelves, and a daily breadth trend from our own hourly record. One call, no inputs; gate entries on it or show it on a dashboard.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-creator",
      "name": "stonk-creator",
      "description": "Track record of a StonkFun creator \u2014 pass the creator wallet, or a coin mint to look up who launched it. Verdict ESTABLISHED (several coins that survive), MIXED, SERIAL_LAUNCHER (many launches, few survivors), or NEW (too little history). Launches in 24h / 7d / all-time, share of coins older than 3 days that still trade, how many paid holders in 24h, living coins with market cap, quote shelves used, plus the measured baseline (19% of one-time creators' coins vs 5% of serial launchers' still trade after 3 days). A cheap filter before paying for anything else on a fresh coin.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "creator": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-pairs",
      "name": "stonk-pairs",
      "description": "FREE. Quote assets a StonkFun launch can be paired against (xStocks, pre-stocks, currencies, custom mints), with normalized categories and an is_agent_launchable flag (launchable + LaunchLab-ready + allowed category). Call this before sizing or preflighting a launch.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "launchable_only": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "launchable_only",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-reward-risk",
      "name": "stonk-reward-risk",
      "description": "Payout status for a StonkFun reward coin \u2014 what a holder observes: PAYING (payout in the last 24h), STALE, NEVER, or NOT_REWARD \u2014 plus trading cost (tax bps, round-trip %) and a 0-100 health score read from the chain: fee bps and cap, withdraw authority (must be StonkFun's distributor), fee mutability, distributions and recency, flywheel, holders and concentration, quote category, age. Call before sizing a reward-coin position.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-yield",
      "name": "stonk-yield",
      "description": "Trailing 7d / 30d / lifetime holder yield for a StonkFun reward coin: rewards distributed in the quote asset, priced in USD, divided by average market cap over the window, annualized with an explicit caution flag when the window is under 7 days. Also returns quote exposure \u2014 what a holder is economically long (the coin plus the quote asset) and the reward asset.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-yield-batch",
      "name": "stonk-yield-batch",
      "description": "stonk-yield for up to 25 StonkFun reward coins in one call: trailing 7d / 30d / lifetime holder yield per coin (rewards in the quote asset, priced in USD, over average market cap, annualized, with caution flags) plus quote exposure, payouts and holders. Select coins by `mints` (up to 25) or by the stonk-screener filters (quote, category, holders, age, volume, market cap, paying_only, live_only, sort). Computed from the 10-minute index in milliseconds. Cheaper than a screener call plus stonk-yield per coin.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_holders": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "min_age_days": {
            "type": "number",
            "minimum": 0
          },
          "max_age_days": {
            "type": "number",
            "minimum": 0
          },
          "min_volume_24h_usd": {
            "type": "number",
            "minimum": 0
          },
          "max_market_cap_usd": {
            "type": "number",
            "minimum": 0
          },
          "paying_only": {
            "default": false,
            "type": "boolean"
          },
          "live_only": {
            "default": false,
            "type": "boolean"
          },
          "sort": {
            "default": "volume24h",
            "type": "string",
            "enum": [
              "yield7d",
              "yield30d",
              "rewardsUsd",
              "volume24h",
              "lastPayout",
              "holders",
              "priceChange24h"
            ]
          },
          "mints": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "limit": {
            "default": 25,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "paying_only",
          "live_only",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-alerts",
      "name": "stonk-alerts",
      "description": "What changed for your StonkFun reward coins since your last check, for up to 25 coins: payout_landed (a payout reached holders), payout_stale (no payout for 24h+, went stale inside the window), stopped_trading (no 24h volume: no tax, no payouts), holders_change (\u00b110% default), and rewards_since (quote + USD paid to holders since the snapshot nearest to `since`). Plus current payout status per coin. From the 10-minute index in milliseconds; poll it and pass checked_at back as since.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mints": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "min_holders_change_pct": {
            "default": 10,
            "type": "number",
            "minimum": 1,
            "maximum": 1000
          },
          "stale_after_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 168
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mints",
          "since",
          "min_holders_change_pct",
          "stale_after_hours",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-screener",
      "name": "stonk-screener",
      "description": "Screen every StonkFun reward coin from a 10-minute index. Per row: payout status (PAYING / STALE / NEVER), hours since last payout, live flag (traded AND paid in 24h), round-trip transfer-tax cost, holders, rewards USD, yields, volume, mcap, 24h change. Filters: quote_mint, category, holders, age, volume, market cap, paying_only, live_only. Sort by volume24h (default), lastPayout, holders, priceChange24h, or yield. \"Which coins on NVDAX paid holders today?\" is one call.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_holders": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "min_age_days": {
            "type": "number",
            "minimum": 0
          },
          "max_age_days": {
            "type": "number",
            "minimum": 0
          },
          "min_volume_24h_usd": {
            "type": "number",
            "minimum": 0
          },
          "max_market_cap_usd": {
            "type": "number",
            "minimum": 0
          },
          "paying_only": {
            "default": false,
            "type": "boolean"
          },
          "live_only": {
            "default": false,
            "type": "boolean"
          },
          "sort": {
            "default": "volume24h",
            "type": "string",
            "enum": [
              "yield7d",
              "yield30d",
              "rewardsUsd",
              "volume24h",
              "lastPayout",
              "holders",
              "priceChange24h"
            ]
          },
          "limit": {
            "default": 25,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "paying_only",
          "live_only",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-gems",
      "name": "stonk-gems",
      "description": "Shortlist of StonkFun reward coins that are alive, paying, and liquid. Scores 0-100 from the 10-minute index \u2014 recent holder payout, holders, size, 24h turnover, age, momentum, quote-asset strength, flywheel. Stages GEM / WATCH / NOISE / DEAD with plain reasons and warnings per coin, plus the round-trip tax cost. A liveness ranking, not a price forecast: in a paper test (9/26-10/3) higher scores did not beat the market. Check stonk-creator and stonk-quote before sizing. Filters: quote_mint, category, max_age_days, min_holders, max_market_cap_usd. Milliseconds.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "max_age_days": {
            "default": 14,
            "type": "number",
            "minimum": 0,
            "maximum": 90
          },
          "min_holders": {
            "default": 25,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "max_market_cap_usd": {
            "default": 5000000,
            "type": "number",
            "minimum": 0
          },
          "limit": {
            "default": 15,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_age_days",
          "min_holders",
          "max_market_cap_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-launch-intel",
      "name": "stonk-launch-intel",
      "description": "What to launch on StonkFun, and against what. Per quote asset: coins, launches (24h / 7d), share trading today, share paying holders today, survival past day 3, volume, median holders and mcap, 100 vs 300 bps tax mix with trading and paying rates, crowding, and a 0-100 demand score. Plus overall stats and plain recommendations. Sort by demand, survival, volume, launches, or paying. Milliseconds.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_coins": {
            "default": 5,
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "sort": {
            "default": "demand",
            "type": "string",
            "enum": [
              "demand",
              "survival",
              "volume",
              "launches",
              "paying"
            ]
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_coins",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-launch-preflight",
      "name": "stonk-launch-preflight",
      "description": "Preflight a self-built Raydium LaunchLab launch before broadcasting: decodes the initialize instruction from your unsigned transaction and diffs every parameter against StonkFun's /launchlab/pricing for that quote and mode \u2014 GlobalConfig, platform id per mode, curve type, supply, totalSellA, raise, 6-decimal Token-2022 base mint, quote token program, vesting, curve-rule account appended last, and for reward mode the transfer-fee option, tier, and cap (catches Raydium's transferFeeBasePoints / maxinumFee spelling). Returns ok, mismatches with fixes, warnings. A mismatched pool is never adopted: the tax goes to nobody.",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "unsigned_transaction": {
            "type": "string",
            "minLength": 64,
            "maxLength": 6000
          },
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "mode": {
            "type": "string",
            "enum": [
              "standard",
              "reward"
            ]
          },
          "launch_params": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "unsigned_transaction",
          "quote_mint",
          "mode",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "stonk-quote",
      "name": "stonk-quote",
      "description": "Cost and payback of one StonkFun trade at one size, no swap: entry and exit cost (transfer tax + price impact at size), round-trip % and the breakeven price move, your pro-rata share of each payout with a dust warning, expected payout over the hold from the yield window with real history, and a PAYS / MARGINAL / COSTS / NOT_PAYING verdict with breakeven hold days. Composes stonk-reward-risk, stonk-yield, and enrich-token-light. Inputs: mint, size_usd (100), hold_days (7).",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "size_usd": {
            "default": 100,
            "type": "number",
            "minimum": 1,
            "maximum": 1000000
          },
          "hold_days": {
            "default": 7,
            "type": "number",
            "minimum": 0.25,
            "maximum": 365
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "size_usd",
          "hold_days",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "check-alerts",
      "name": "check-alerts",
      "description": "Poll-based event detection. Pass a watchlist (tokens + wallets) and a `since` ISO 8601 timestamp; receive alerts fired since that time. Detects: token alerts (price spikes/drops, risk score changes, whale inflow/outflow, holder concentration shifts); spot wallet alerts (portfolio value changes, position additions/removals); and Jupiter Perps alerts per wallet (perp_position_added, perp_position_closed, perp_at_risk, liquidation_approaching, pnl_swing). Stateless: agent owns the `since` cursor. Watchlist capped at 10 tokens + 10 wallets per call. Step 1 of 3 (poll \u2192 SSE \u2192 webhooks).",
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "streaming": false,
      "x_input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "tokens": {
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "wallets": {
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "criteria": {
            "default": {},
            "type": "object",
            "properties": {
              "min_price_change_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000
              },
              "min_risk_score_delta": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "min_whale_volume_usd": {
                "type": "number",
                "minimum": 0
              },
              "min_portfolio_change_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000
              },
              "min_concentration_shift_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "perp_max_leverage": {
                "type": "number",
                "minimum": 1,
                "maximum": 100
              },
              "perp_min_pnl_swing_pts": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000
              },
              "perp_liquidation_buffer_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              }
            },
            "additionalProperties": false
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "tokens",
          "wallets",
          "since",
          "criteria",
          "format"
        ],
        "additionalProperties": false
      }
    }
  ],
  "supportsAuthenticatedExtendedCard": false,
  "entrypoints": {
    "enrich-wallet-light": {
      "description": "Light wallet profile with holdings, labels, and risk score",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "enrich-wallet-full": {
      "description": "Full wallet profile with holdings, DeFi positions, labels, risk score, and connected wallets",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "enrich-token-light": {
      "description": "Token analysis with price, market data, liquidity, and risk flags",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "include_holders": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "include_holders",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "enrich-token-full": {
      "description": "Full token analysis with price, market data, liquidity, risk flags, and top holders",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "include_holders": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "include_holders",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "parse-transaction": {
      "description": "Parse and enrich a Solana transaction with type detection, protocol identification, and transfer details",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "signature": {
            "type": "string",
            "minLength": 86,
            "maxLength": 90,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "signature",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "whale-watch": {
      "description": "Identify large token holders and track accumulation/distribution patterns",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "threshold_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 100
          },
          "lookback_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 168
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "threshold_usd",
          "lookback_hours",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "batch-enrich": {
      "description": "Enrich multiple wallets or tokens in parallel",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "addresses": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "type": {
            "type": "string",
            "enum": [
              "wallet",
              "token"
            ]
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "addresses",
          "type",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "wallet-graph": {
      "description": "Map wallet transaction connections and detect suspicious clusters",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "depth": {
            "default": 1,
            "type": "number",
            "minimum": 1,
            "maximum": 2
          },
          "min_interactions": {
            "default": 1,
            "type": "number",
            "minimum": 1
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "depth",
          "min_interactions",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "wallet-link-check": {
      "description": "Are two Solana wallets the same owner? Same-owner confidence and a verdict (LIKELY_SAME_OWNER / LIKELY_ROTATION, UNCERTAIN, SUSPICIOUS) from direct transfers, first funders, the new wallet's age and x402 history, and risk flags. Built for x402 trust monitors deciding whether a payout-wallet change is a rotation or a hijack.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "wallet_a": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "wallet_b": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "context": {
            "default": "general",
            "type": "string",
            "enum": [
              "payout_rotation",
              "general"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "wallet_a",
          "wallet_b",
          "context",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "copy-trade-signals": {
      "description": "Analyze wallet trading performance and copyability",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback_days": {
            "default": 30,
            "type": "number",
            "minimum": 1,
            "maximum": 90
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "lookback_days",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "due-diligence": {
      "description": "Comprehensive token research briefing with security, whales, and holder analysis",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "compare-tokens": {
      "description": "Compare 2-3 tokens side-by-side: price, liquidity, volatility, holder concentration, risk flags",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mints": {
            "minItems": 2,
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            },
            "description": "2-3 token mint addresses to compare"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mints",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "compare-wallets": {
      "description": "Compare 2-3 wallets side-by-side: portfolio value, activity, risk, labels, holdings",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "addresses": {
            "minItems": 2,
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            },
            "description": "2-3 wallet addresses to compare"
          },
          "depth": {
            "default": "light",
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "addresses",
          "depth",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "token-trend": {
      "description": "Token trend analysis: price, liquidity, concentration changes over 7/14/30 days with direction indicators",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "wallet-history": {
      "description": "Wallet history: portfolio value, balance, risk score changes over 7/14/30 days with position changes",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "portfolio-history": {
      "description": "Full portfolio time-series for a wallet \u2014 daily snapshots of value, balance, holdings, risk, plus summary stats (peak, trough, max drawdown, average, change vs period start). Distinct from wallet-history which returns two-point deltas; this returns the series for charting.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "period": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "period",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-market-trend": {
      "description": "Jupiter Perps market trend: per-symbol (SOL/BTC/ETH) deltas for mark price, total open interest, long/short skew, utilization, and borrow APR over 7/14/30 days. Direction indicators per metric and per market. Mirror of token-trend for perps markets \u2014 required for regime-detection strategies and any bot that adjusts behavior based on whether the market is growing, stressed, or rebalancing.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "lookback": {
            "default": "7d",
            "type": "string",
            "enum": [
              "7d",
              "14d",
              "30d"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "lookback",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "new-tokens": {
      "description": "Discover recently launched tokens on Solana with risk scoring and filtering. Returns safest first.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "min_liquidity_usd": {
            "default": 1000,
            "description": "Minimum liquidity in USD to include",
            "type": "number"
          },
          "max_risk_score": {
            "default": 0.8,
            "description": "Maximum risk score (0-1) to include",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "limit": {
            "default": 10,
            "description": "Number of tokens to return",
            "type": "number",
            "minimum": 1,
            "maximum": 20
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_liquidity_usd",
          "max_risk_score",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "protocol-profile": {
      "description": "DeFi protocol analytics: TVL, yield pools, on-chain activity, health signals",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "protocol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Protocol slug (e.g. \"raydium\", \"orca\") or Solana program ID"
          },
          "include_yields": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "protocol",
          "include_yields",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-market-structure": {
      "description": "Jupiter Perps market structure \u2014 per-market OI, utilization, borrow APR, skew, OI caps, and health flags for SOL/BTC/ETH",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-trader-profile": {
      "description": "Multi-venue perps trader profile \u2014 fetches open positions from BOTH Jupiter Perps and Adrena for the wallet. Returns per-position size/leverage/entry/unrealized PnL/risk flags, per-venue breakdown with venue totals, and combined totals across venues. Output includes a `venue` tag on every position and a `by_venue` breakdown alongside combined `totals`. Adrena PnL requires per-collateral mark prices (jitoSOL/WBTC/BONK via Jupiter price API) and is null when unavailable.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "gacha-ev-scan": {
      "description": "Jupiter Gacha (Collector Crypt) pack EV scan \u2014 for each tokenized-card pack machine, computes net-of-exit-mechanics expected value: gross insured EV vs the guaranteed instant-buyback floor (85\u201393% of insured, \u226472h) vs a marketplace sale (insured value minus 2% fee, fill-risk). Returns a POSITIVE_EV / HOUSE_EDGE / NEGATIVE_EV verdict per machine plus rare+epic stock share, ranked by the chosen exit path. The number the platform hides behind its gross EV headline.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "machine": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "franchise": {
            "default": "all",
            "type": "string",
            "enum": [
              "pokemon",
              "onepiece",
              "all"
            ]
          },
          "exit_strategy": {
            "default": "both",
            "type": "string",
            "enum": [
              "buyback",
              "marketplace",
              "both"
            ]
          },
          "min_edge_pct": {
            "type": "number",
            "minimum": -100,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "franchise",
          "exit_strategy",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "hyperliquid-trader-profile": {
      "description": "Hyperliquid trader profile for an EVM (0x) address. Reads the trader's live perp positions directly from Hyperliquid's public on-chain state: per-position coin, side, leverage, notional, entry, unrealized PnL, distance-to-liquidation, and risk flags (high_leverage, extreme_leverage, approaching_liquidation, losing). Plus account value, directional bias, profile (directional/market-neutral/diversified), weighted leverage, and realized+unrealized PnL over week/month/all-time. Hyperliquid is uniquely transparent \u2014 every position is public \u2014 making this the building block for smart-money tracking.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "address",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "hyperliquid-smart-money": {
      "description": "Where Hyperliquid smart money is positioned right now. Scans the HL leaderboard, excludes market-makers/HFT (turnover filter) and dust/mega-funds (account band), keeps only CONSISTENT directional traders (week+month PnL > 0, not a systematic book), then aggregates their live positions into a per-coin consensus signal (long/short trader counts, net notional, bias, conviction) plus a top-trader drill-down ranked by robust month PnL. Pass `market` (e.g. HYPE/BTC/ETH) to focus one coin. NOTE: a positioning signal, not a trade \u2014 consensus is often late/crowded and regime-dependent; use as confluence/risk context, not a standalone entry.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "minLength": 1,
            "maxLength": 12
          },
          "top_traders": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-cross-venue-funding": {
      "description": "Cross-venue perps funding rate aggregator. Compares borrow/funding APR + open interest across Solana on-chain venues (Jupiter Perps, Adrena) with cross-chain reference (Hyperliquid, dYdX v4). Returns best entry per side, basis vs Hyperliquid, and arbitrage opportunities.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "include_reference": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "market",
          "include_reference",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-venue-comparison": {
      "description": "Where to trade this market at this size. Compares total entry cost (slippage + fee + first-hour borrow), OI cap headroom, and venue health across Jupiter Perps, Adrena, Hyperliquid, and dYdX v4. Returns rankings + recommendation with warnings.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "size_usd": {
            "type": "number",
            "minimum": 100,
            "maximum": 10000000
          },
          "side": {
            "default": "long",
            "type": "string",
            "enum": [
              "long",
              "short"
            ]
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "market",
          "size_usd",
          "side",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "perps-basis-signal": {
      "description": "Net-yield-after-borrow basis trade scanner. Computes perp mark vs spot price across venues and surfaces actually-earnable yield \u2014 funding APR on reference venues (Hyperliquid, dYdX v4), correctly flagged as not-viable on Solana pool perps (Jupiter, Adrena) which charge borrow on both sides. Returns per-venue trade, filtered opportunities, and best trade.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "asset": {
            "type": "string",
            "enum": [
              "SOL",
              "BTC",
              "ETH",
              "BONK"
            ]
          },
          "min_yield_apr_pct": {
            "default": 5,
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "asset",
          "min_yield_apr_pct",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "trending-signals": {
      "description": "Orchestrated ranking of trending Solana tokens. Scans DexScreener trending, enriches with token analysis + optional whale-watch flow, and returns a composite-signal ranked list with reasoning. \"What's worth paying attention to right now?\"",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "min_liquidity_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 0
          },
          "max_risk_score": {
            "default": 0.7,
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "include_whale_watch": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_liquidity_usd",
          "max_risk_score",
          "limit",
          "include_whale_watch",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "smart-money-flow": {
      "description": "Orchestrated smart-money intelligence. Scores a seed wallet list via copy-trade metrics, filters to qualifying winners (win rate + trade count), then surfaces tokens they're accumulating and wallet clusters. Pass your own `wallets` array or use our curated default list.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "wallets": {
            "maxItems": 30,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "lookback_days": {
            "default": 14,
            "type": "integer",
            "minimum": 1,
            "maximum": 90
          },
          "min_win_rate": {
            "default": 0.55,
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "top_n_tokens": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "include_graph": {
            "default": true,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "lookback_days",
          "min_win_rate",
          "top_n_tokens",
          "include_graph",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "smart-money-trenches": {
      "description": "Which proven-winner wallets are aping fresh (<6h) memecoin launches right now, and what are they buying? Scans a vetted seed set of realized-PnL winners (bot-filtered, re-checked live each scan), overlays their recent buys against token launch times, and ranks fresh tokens by distinct smart buyers + recency. The trenches attention signal.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "hours_back": {
            "default": 12,
            "type": "integer",
            "minimum": 1,
            "maximum": 48
          },
          "max_token_age_hours": {
            "default": 6,
            "type": "number",
            "minimum": 1,
            "maximum": 72
          },
          "min_buyers": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 14
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "hours_back",
          "max_token_age_hours",
          "min_buyers",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "runner-scan": {
      "description": "Detect Solana memecoins whose on-chain buying is accelerating right now \u2014 the signature of a run in progress. Measures buy-rate acceleration across 5m/1h/6h windows, buy pressure, volume and price velocity, holder growth, and liquidity trend, then classifies each token IGNITING / RUNNING / PARABOLIC_LATE / FADING with a 0-1 velocity score and reasoning. Flags already-ran tokens as entry risk and liquidity pulls as rugs rather than dressing them up as runners.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "max_token_age_hours": {
            "default": 24,
            "type": "number",
            "minimum": 0.1,
            "maximum": 168
          },
          "min_liquidity_usd": {
            "default": 10000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "min_volume_h1_usd": {
            "default": 5000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "limit": {
            "default": 15,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_token_age_hours",
          "min_liquidity_usd",
          "min_volume_h1_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "query": {
      "description": "Plain English questions routed to the right enricher. Single-intent questions hit one enricher; compound questions (\"should I buy X?\", \"wallet deep dive on X\", \"what's trending?\") chain 2-3 enrichers in parallel and return a unified briefing.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "question",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "feed-latest": {
      "description": "Daily SolEnrich intelligence brief \u2014 pre-computed ranking of trending Solana tokens with composite signal scoring (liquidity, risk, holder concentration, whale flow). Cached 24h. Pass `since` (ISO 8601) to short-circuit on no-change. Pay-per-poll model \u2014 designed for agents that want recurring signal without orchestration cost.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    "consensus-signal": {
      "description": "Agent attention signal \u2014 what tokens or wallets are being queried by other agents right now. Proprietary data: derived from SolEnrich's own query stream, not market volume. Two modes: pass `address` to get that entity's rank/percentile/trend; omit it to get the top-N most-queried entities. Windows: 1h, 6h, 24h.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "type": {
            "default": "token",
            "type": "string",
            "enum": [
              "token",
              "wallet"
            ]
          },
          "address": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "window": {
            "default": "1h",
            "type": "string",
            "enum": [
              "1h",
              "6h",
              "24h"
            ]
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "type",
          "window",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "attention-momentum": {
      "description": "Agent-attention ACCELERATION with price divergence \u2014 tokens ranked by how fast attention is speeding up (query velocity change across three consecutive windows), overlaid with price change over the same window. early_signal = attention accelerating while price is flat (agents researching before the market moves); distribution_risk = attention cooling while price pumps. Proprietary: derived from SolEnrich's own agent query stream. Windows: 1h, 6h, 24h.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "window": {
            "default": "6h",
            "type": "string",
            "enum": [
              "1h",
              "6h",
              "24h"
            ]
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "window",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "trenches-scan": {
      "description": "The three-signal memecoin scan in one call: on-chain velocity (runner-scan), proven-winner buys (smart-money-trenches), and agent attention (attention-momentum), composited into a ranked ape-able list with per-token reasoning and HIGH_CONFLUENCE / MODERATE / SINGLE_SIGNAL verdicts. Legs degrade independently \u2014 one upstream failure annotates the result instead of killing it.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "max_token_age_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 72
          },
          "min_liquidity_usd": {
            "default": 5000,
            "type": "number",
            "minimum": 0,
            "maximum": 10000000
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_token_age_hours",
          "min_liquidity_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "trenches-check": {
      "description": "The trenches suite pointed at ONE token: pass a mint, get a HIGH_CONFLUENCE / MODERATE / SINGLE_SIGNAL / NO_SIGNAL verdict with reasoning. Runs the same three legs as trenches-scan \u2014 on-chain velocity (runner stage + score), proven-winner buys, agent attention \u2014 but targeted. The follow-up call to a new-tokens discovery or any token someone shilled you: before you ape, run the check.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "exit-signal": {
      "description": "The sell-side verdict for a token you hold: pass a mint, get EXIT / DERISK / HOLD with an exit score and reasoning. Reads sell pressure, buy-rate deceleration, volume fade, distribution-into-strength divergence, top-holder flow (who is distributing vs accumulating), liquidity trend, and holder churn. Rug triggers (LP pull, active dump) override everything. Works on tokens of any age. Optional entry_price_usd adds unrealized-PnL context.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "entry_price_usd": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-market-pulse": {
      "description": "Is the StonkFun market rising or falling right now? Verdict RISK_ON / NEUTRAL / RISK_OFF from breadth (share of live coins up over 24h) and the median 24h move, plus the volume-weighted move (big coins vs the typical coin), launches per day, share of all reward coins trading and paying, survival past day 3, holder revenue for the last 7 days vs the 7 before, the strongest and weakest quote shelves, and a daily breadth trend from our own hourly record. One call, no inputs; gate entries on it or show it on a dashboard.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-creator": {
      "description": "Track record of a StonkFun creator \u2014 pass the creator wallet, or a coin mint to look up who launched it. Verdict ESTABLISHED (several coins that survive), MIXED, SERIAL_LAUNCHER (many launches, few survivors), or NEW (too little history). Launches in 24h / 7d / all-time, share of coins older than 3 days that still trade, how many paid holders in 24h, living coins with market cap, quote shelves used, plus the measured baseline (19% of one-time creators' coins vs 5% of serial launchers' still trade after 3 days). A cheap filter before paying for anything else on a fresh coin.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "creator": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-pairs": {
      "description": "FREE. Quote assets a StonkFun launch can be paired against (xStocks, pre-stocks, currencies, custom mints), with normalized categories and an is_agent_launchable flag (launchable + LaunchLab-ready + allowed category). Call this before sizing or preflighting a launch.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "launchable_only": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "launchable_only",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-reward-risk": {
      "description": "Payout status for a StonkFun reward coin \u2014 what a holder observes: PAYING (payout in the last 24h), STALE, NEVER, or NOT_REWARD \u2014 plus trading cost (tax bps, round-trip %) and a 0-100 health score read from the chain: fee bps and cap, withdraw authority (must be StonkFun's distributor), fee mutability, distributions and recency, flywheel, holders and concentration, quote category, age. Call before sizing a reward-coin position.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-yield": {
      "description": "Trailing 7d / 30d / lifetime holder yield for a StonkFun reward coin: rewards distributed in the quote asset, priced in USD, divided by average market cap over the window, annualized with an explicit caution flag when the window is under 7 days. Also returns quote exposure \u2014 what a holder is economically long (the coin plus the quote asset) and the reward asset.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-yield-batch": {
      "description": "stonk-yield for up to 25 StonkFun reward coins in one call: trailing 7d / 30d / lifetime holder yield per coin (rewards in the quote asset, priced in USD, over average market cap, annualized, with caution flags) plus quote exposure, payouts and holders. Select coins by `mints` (up to 25) or by the stonk-screener filters (quote, category, holders, age, volume, market cap, paying_only, live_only, sort). Computed from the 10-minute index in milliseconds. Cheaper than a screener call plus stonk-yield per coin.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_holders": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "min_age_days": {
            "type": "number",
            "minimum": 0
          },
          "max_age_days": {
            "type": "number",
            "minimum": 0
          },
          "min_volume_24h_usd": {
            "type": "number",
            "minimum": 0
          },
          "max_market_cap_usd": {
            "type": "number",
            "minimum": 0
          },
          "paying_only": {
            "default": false,
            "type": "boolean"
          },
          "live_only": {
            "default": false,
            "type": "boolean"
          },
          "sort": {
            "default": "volume24h",
            "type": "string",
            "enum": [
              "yield7d",
              "yield30d",
              "rewardsUsd",
              "volume24h",
              "lastPayout",
              "holders",
              "priceChange24h"
            ]
          },
          "mints": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "limit": {
            "default": 25,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "paying_only",
          "live_only",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-alerts": {
      "description": "What changed for your StonkFun reward coins since your last check, for up to 25 coins: payout_landed (a payout reached holders), payout_stale (no payout for 24h+, went stale inside the window), stopped_trading (no 24h volume: no tax, no payouts), holders_change (\u00b110% default), and rewards_since (quote + USD paid to holders since the snapshot nearest to `since`). Plus current payout status per coin. From the 10-minute index in milliseconds; poll it and pass checked_at back as since.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mints": {
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "min_holders_change_pct": {
            "default": 10,
            "type": "number",
            "minimum": 1,
            "maximum": 1000
          },
          "stale_after_hours": {
            "default": 24,
            "type": "number",
            "minimum": 1,
            "maximum": 168
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mints",
          "since",
          "min_holders_change_pct",
          "stale_after_hours",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-screener": {
      "description": "Screen every StonkFun reward coin from a 10-minute index. Per row: payout status (PAYING / STALE / NEVER), hours since last payout, live flag (traded AND paid in 24h), round-trip transfer-tax cost, holders, rewards USD, yields, volume, mcap, 24h change. Filters: quote_mint, category, holders, age, volume, market cap, paying_only, live_only. Sort by volume24h (default), lastPayout, holders, priceChange24h, or yield. \"Which coins on NVDAX paid holders today?\" is one call.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_holders": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "min_age_days": {
            "type": "number",
            "minimum": 0
          },
          "max_age_days": {
            "type": "number",
            "minimum": 0
          },
          "min_volume_24h_usd": {
            "type": "number",
            "minimum": 0
          },
          "max_market_cap_usd": {
            "type": "number",
            "minimum": 0
          },
          "paying_only": {
            "default": false,
            "type": "boolean"
          },
          "live_only": {
            "default": false,
            "type": "boolean"
          },
          "sort": {
            "default": "volume24h",
            "type": "string",
            "enum": [
              "yield7d",
              "yield30d",
              "rewardsUsd",
              "volume24h",
              "lastPayout",
              "holders",
              "priceChange24h"
            ]
          },
          "limit": {
            "default": 25,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "paying_only",
          "live_only",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-gems": {
      "description": "Shortlist of StonkFun reward coins that are alive, paying, and liquid. Scores 0-100 from the 10-minute index \u2014 recent holder payout, holders, size, 24h turnover, age, momentum, quote-asset strength, flywheel. Stages GEM / WATCH / NOISE / DEAD with plain reasons and warnings per coin, plus the round-trip tax cost. A liveness ranking, not a price forecast: in a paper test (9/26-10/3) higher scores did not beat the market. Check stonk-creator and stonk-quote before sizing. Filters: quote_mint, category, max_age_days, min_holders, max_market_cap_usd. Milliseconds.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "max_age_days": {
            "default": 14,
            "type": "number",
            "minimum": 0,
            "maximum": 90
          },
          "min_holders": {
            "default": 25,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "max_market_cap_usd": {
            "default": 5000000,
            "type": "number",
            "minimum": 0
          },
          "limit": {
            "default": 15,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "max_age_days",
          "min_holders",
          "max_market_cap_usd",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-launch-intel": {
      "description": "What to launch on StonkFun, and against what. Per quote asset: coins, launches (24h / 7d), share trading today, share paying holders today, survival past day 3, volume, median holders and mcap, 100 vs 300 bps tax mix with trading and paying rates, crowding, and a 0-100 demand score. Plus overall stats and plain recommendations. Sort by demand, survival, volume, launches, or paying. Milliseconds.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "xstock",
              "prestock",
              "currency",
              "leverage",
              "solana",
              "collectible",
              "custom"
            ]
          },
          "min_coins": {
            "default": 5,
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "sort": {
            "default": "demand",
            "type": "string",
            "enum": [
              "demand",
              "survival",
              "volume",
              "launches",
              "paying"
            ]
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "min_coins",
          "sort",
          "limit",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-launch-preflight": {
      "description": "Preflight a self-built Raydium LaunchLab launch before broadcasting: decodes the initialize instruction from your unsigned transaction and diffs every parameter against StonkFun's /launchlab/pricing for that quote and mode \u2014 GlobalConfig, platform id per mode, curve type, supply, totalSellA, raise, 6-decimal Token-2022 base mint, quote token program, vesting, curve-rule account appended last, and for reward mode the transfer-fee option, tier, and cap (catches Raydium's transferFeeBasePoints / maxinumFee spelling). Returns ok, mismatches with fixes, warnings. A mismatched pool is never adopted: the tax goes to nobody.",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "unsigned_transaction": {
            "type": "string",
            "minLength": 64,
            "maxLength": 6000
          },
          "quote_mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "mode": {
            "type": "string",
            "enum": [
              "standard",
              "reward"
            ]
          },
          "launch_params": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "unsigned_transaction",
          "quote_mint",
          "mode",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "stonk-quote": {
      "description": "Cost and payback of one StonkFun trade at one size, no swap: entry and exit cost (transfer tax + price impact at size), round-trip % and the breakeven price move, your pro-rata share of each payout with a dust warning, expected payout over the hold from the yield window with real history, and a PAYS / MARGINAL / COSTS / NOT_PAYING verdict with breakeven hold days. Composes stonk-reward-risk, stonk-yield, and enrich-token-light. Inputs: mint, size_usd (100), hold_days (7).",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "minLength": 32,
            "maxLength": 44,
            "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
          },
          "size_usd": {
            "default": 100,
            "type": "number",
            "minimum": 1,
            "maximum": 1000000
          },
          "hold_days": {
            "default": 7,
            "type": "number",
            "minimum": 0.25,
            "maximum": 365
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "mint",
          "size_usd",
          "hold_days",
          "format"
        ],
        "additionalProperties": false
      }
    },
    "check-alerts": {
      "description": "Poll-based event detection. Pass a watchlist (tokens + wallets) and a `since` ISO 8601 timestamp; receive alerts fired since that time. Detects: token alerts (price spikes/drops, risk score changes, whale inflow/outflow, holder concentration shifts); spot wallet alerts (portfolio value changes, position additions/removals); and Jupiter Perps alerts per wallet (perp_position_added, perp_position_closed, perp_at_risk, liquidation_approaching, pnl_swing). Stateless: agent owns the `since` cursor. Watchlist capped at 10 tokens + 10 wallets per call. Step 1 of 3 (poll \u2192 SSE \u2192 webhooks).",
      "streaming": false,
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "tokens": {
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "wallets": {
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 44,
              "pattern": "^[1-9A-HJ-NP-Za-km-z]+$"
            }
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "criteria": {
            "default": {},
            "type": "object",
            "properties": {
              "min_price_change_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000
              },
              "min_risk_score_delta": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "min_whale_volume_usd": {
                "type": "number",
                "minimum": 0
              },
              "min_portfolio_change_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000
              },
              "min_concentration_shift_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "perp_max_leverage": {
                "type": "number",
                "minimum": 1,
                "maximum": 100
              },
              "perp_min_pnl_swing_pts": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000
              },
              "perp_liquidation_buffer_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              }
            },
            "additionalProperties": false
          },
          "format": {
            "default": "json",
            "type": "string",
            "enum": [
              "json",
              "llm",
              "both"
            ]
          }
        },
        "required": [
          "tokens",
          "wallets",
          "since",
          "criteria",
          "format"
        ],
        "additionalProperties": false
      }
    }
  }
}