Agent-native x402 API for keyless Solana token intelligence. Runs on Deno Deploy. Returns fused safety/quality read on any Solana token, gated behind x402 micropayment in USDC on Base.
Three tools with clear, descriptive names and good descriptions (150-250 chars each). All tools have input schemas with mint parameter typed as string. However, output schemas are completely undocumented, LLMs cannot predict what fields to expect from responses. Error handling is implicit (throws on invalid mint, returns null on optional sources) but lacks actionable recovery guidance. No parameter constraints (regex, length bounds) are formally declared in schemas. Tool composition is sound (each does one thing), but missing pagination/limit guidance for potential future scaling.
Optional second data source (keyless). Fetches token pair data from DexScreener API for Solana chain, aggregates liquidity and 24h volume across pairs, returns pair count and USD values. Failures return null and never break the main route.
Third data source (keyless). Fetches RugCheck summary for token including LP-lock depth, named risk flags, and normalized safety score (0-100, lower is safer). Returns up to 8 risk entries with name and level. Failures return null and never break the main route.
Returns fused safety/quality read on any Solana token by querying Jupiter v2 API, DexScreener, and RugCheck. Validates mint address, fetches token data, computes safety score (0-100), and returns comprehensive audit including identity, market data, authorities, holder concentration, liquidity, organic score, and risk flags.
Output schemas completely undocumented. LLMs cannot predict response structure (fields, types, nesting). tokenIntel returns a complex object with score, red[], green[], dex, rug fields, none documented. dexScreener and rugCheck return nullable objects with specific fields, no schema provided.
Input parameter constraints not formally declared in schema. mint parameter accepts base58 strings (32-44 chars) but this constraint is only in code comment (isMint regex), not in JSON Schema. LLMs cannot see the constraint and may pass invalid values.
Error handling lacks recovery guidance. tokenIntel throws 'invalid mint address' and 'token not found on Jupiter' but does not suggest next steps (e.g., 'Try a different mint' or 'Search for the token name first'). dexScreener and rugCheck silently return null on failure, which is safe but opaque to the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared in the tool definition. LLMs cannot infer safety properties and may incorrectly assume side effects.
Response field naming inconsistency. tokenIntel returns 'score', 'red', 'green', 'dex', 'rug'. dexScreener returns 'pairCount', 'liquidityUsd', 'volume24hUsd'. rugCheck returns 'scoreNormalised', 'lpLockedPct', 'risks'. No consistent naming convention across tools makes chaining and parsing harder for LLMs.