Server definition
- Hash
- sha256:347362282470b4582f6c2ac8816db6e9498a7157261381d81482dc97dc3b9e7d
- What it is
- What a remote MCP server returned when asked what it offers: 21 tools
The blob, as servednamed by its sha256
{
"instructions": "Free, read-only pump.fun + Solana intelligence tools from three.ws. ORACLE CONVICTION (highest-signal trade read): get_oracle_conviction returns the fused 0–100 Oracle score for a mint — a 4-pillar synthesis of pedigree (smart-money presence), structure (organic vs bundle, holder concentration, bubblemaps connectivity), narrative (category, meme virality, news hook), and momentum (velocity, timing). Includes the tier (prime ≥86 / strong ≥72 / lean ≥54 / watch ≥36 / avoid), natural-language reasons, badge labels, and the full classified trader roster with win-rates. COIN INTELLIGENCE (raw signals): get_coin_intel returns every signal recorded during the observation window — bundle/organic verdict, bubblemaps cluster connectivity, smart-money wallet details, dev behaviour, category, news-meme detection, risk flags, quality score, and now also includes the Oracle score inline. Token discovery (search_tokens, get_trending_tokens, get_new_tokens, get_graduated_tokens, get_king_of_the_hill), on-chain analysis (get_bonding_curve, get_token_holders, get_token_details, get_token_trades), creator intelligence (get_creator_profile, pumpfun_list_claims, pumpfun_watch_claims, pumpfun_first_claims), Solana Name Service (sns_resolve, sns_reverseLookup), market signals (kol_leaderboard, pumpfun_quote_swap, pumpfun_watch_whales), and social sentiment (social_cashtag_sentiment, social_x_post_impact). Discovery tools require the indexer backend — call pumpfun_bot_status (always available) to check. LAUNCH A COIN: to deploy a new pump.fun coin as an agent, call pumpfun_upload_metadata (bearer required) to pin name/symbol/description/image to IPFS and get a uri, then POST to /api/pump/launch-agent with agent_id + uri to build, sign, and submit the launch transaction using the agent's custodial wallet. All data is live; most tools need no key.",
"tools": [
{
"description": "Bonding curve analysis: real reserves, virtual reserves, and graduation progress (on-chain). Pre-graduation only: these reserves come from the pump program bonding-curve account, not from a PumpSwap pool. Pump renamed the quote-side fields on-chain (real_sol_reserves -> real_quote_reserves, virtual_sol_reserves -> virtual_quote_reserves) once a non-SOL quote asset became possible; the response keys below keep their original names and are still denominated in SOL, because the curve quote_mint is the SOL default on every coin created to date. Once complete=true the curve is retired and pricing moves to the PumpSwap pool, so use pumpfun_quote_swap from that point on.",
"inputSchema": {
"properties": {
"mint": {
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_bonding_curve",
"outputSchema": {
"additionalProperties": true,
"properties": {
"complete": {
"description": "true once the curve has graduated",
"type": "boolean"
},
"graduationPercent": {
"description": "0–100 graduation progress",
"type": "number"
},
"mint": {
"type": "string"
},
"network": {
"type": "string"
},
"solReserves": {
"description": "Real quote reserves in SOL (4-decimal string). On-chain field: real_quote_reserves.",
"type": "string"
},
"tokenReserves": {
"description": "Real token reserves (raw base units)",
"type": "string"
},
"virtualSolReserves": {
"description": "Virtual quote reserves (lamports). On-chain field: virtual_quote_reserves (u64). Spot price = virtual_quote_reserves / virtual_token_reserves. Distinct from the identically-named PumpSwap Pool.virtual_quote_reserves (an i128), which applies only after graduation.",
"type": "string"
},
"virtualTokenReserves": {
"description": "Virtual token reserves (raw base units)",
"type": "string"
}
},
"required": [
"mint",
"network",
"complete",
"graduationPercent",
"solReserves",
"tokenReserves",
"virtualSolReserves",
"virtualTokenReserves"
],
"type": "object"
}
},
{
"description": "Full Coin Intelligence snapshot for a pump.fun mint. Returns every signal the engine recorded during the observation window: bundle vs organic verdict, bubblemaps-style cluster connectivity, smart-money presence (with wallet labels and win-rates), dev behaviour, category/classification, news-meme detection with the matching headline, risk flags, and a 0–100 quality score. Also returns the outcome if the coin is old enough to be labeled (graduated/rugged/ATH multiple). This is the single highest-signal read for a trade decision — call this before entering any position.",
"inputSchema": {
"properties": {
"mint": {
"description": "Solana mint address (base58).",
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_coin_intel",
"outputSchema": {
"additionalProperties": true,
"properties": {
"bubblemap_connectivity": {
"description": "0–1 wallet-cluster share. null = enrichment not yet run.",
"nullable": true,
"type": "number"
},
"bundle_score": {
"description": "0–1, coordinated-launch likelihood.",
"type": "number"
},
"category": {
"type": "string"
},
"dev_buy_sol": {
"nullable": true,
"type": "number"
},
"dev_sold": {
"type": "boolean"
},
"found": {
"type": "boolean"
},
"is_news_meme": {
"type": "boolean"
},
"mint": {
"type": "string"
},
"name": {
"type": "string"
},
"news_headline": {
"nullable": true,
"type": "string"
},
"oracle": {
"description": "Fused Oracle conviction score (null if the Oracle engine has not yet scored this coin). Call get_oracle_conviction for the full read including who's-in roster and narrative.",
"nullable": true,
"properties": {
"badges": {
"items": {
"type": "string"
},
"type": "array"
},
"pillars": {
"description": "Per-pillar scores: pedigree, structure, narrative, momentum (each 0–100).",
"type": "object"
},
"reasons": {
"description": "Natural-language explanation of the score.",
"items": {
"type": "string"
},
"type": "array"
},
"score": {
"description": "0–100 fused Oracle score.",
"type": "number"
},
"tier": {
"enum": [
"prime",
"strong",
"lean",
"watch",
"avoid"
],
"type": "string"
}
},
"type": "object"
},
"oracle_url": {
"description": "Oracle deep-link for the coin — opens the Oracle war-room drawer directly.",
"type": "string"
},
"organic_score": {
"description": "0–1, organic-demand likelihood.",
"type": "number"
},
"outcome": {
"description": "Labeled outcome if available (graduated, ath_multiple, etc).",
"nullable": true,
"type": "object"
},
"quality_score": {
"description": "0–100 composite quality.",
"type": "number"
},
"risk_flags": {
"items": {
"type": "string"
},
"type": "array"
},
"smart_money_count": {
"description": "Proven wallets (score≥65) in this coin.",
"type": "integer"
},
"smart_money_notable": {
"items": {
"type": "object"
},
"type": "array"
},
"smart_money_score": {
"nullable": true,
"type": "number"
},
"symbol": {
"type": "string"
},
"unique_buyers": {
"type": "integer"
},
"verdict": {
"properties": {
"key": {
"enum": [
"strong",
"watch",
"caution",
"avoid"
],
"type": "string"
},
"label": {
"type": "string"
},
"tone": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"found"
],
"type": "object"
}
},
{
"description": "Most recently launched pump.fun tokens.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_new_tokens",
"outputSchema": null
},
{
"description": "Oracle conviction score for a pump.fun mint: the fused 0-100 score the Oracle engine produces by combining four intelligence pillars: pedigree (who bought it), structure (organic vs bundle, holder concentration, bubblemaps connectivity), narrative (category, meme virality, news hook), and momentum (timing, velocity). Returns the tier (prime ≥86 / strong ≥72 / lean ≥54 / watch ≥36 / avoid), the per-pillar breakdown, the natural-language reasons that drove the score, the full \"who's in\" trader roster with reputation labels and win-rates, and the narrative read (category, virality, tags). Call this when you need the highest-confidence trade signal; it synthesises everything get_coin_intel exposes into one actionable score. Pairs with get_coin_intel for raw signals.",
"inputSchema": {
"properties": {
"mint": {
"description": "Solana mint address (base58).",
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_oracle_conviction",
"outputSchema": {
"additionalProperties": true,
"properties": {
"conviction": {
"description": "Fused conviction verdict. null if the Oracle has not yet scored this coin.",
"nullable": true,
"properties": {
"badges": {
"description": "Short human-readable badges attached to this coin, e.g. \"Smart money: 3 wallets\".",
"items": {
"type": "string"
},
"type": "array"
},
"pillars": {
"properties": {
"momentum": {
"description": "Momentum pillar score: velocity, buy/sell ratio, timing entropy (0–100, weight 18%).",
"type": "number"
},
"narrative": {
"description": "Narrative pillar score: category fit, meme virality, news hook (0–100, weight 18%).",
"type": "number"
},
"pedigree": {
"description": "Smart-money pedigree pillar score (0–100, weight 34%).",
"type": "number"
},
"structure": {
"description": "Structure pillar score: organic/bundle/concentration/connectivity (0–100, weight 30%).",
"type": "number"
}
},
"type": "object"
},
"reasons": {
"description": "Natural-language sentences explaining every signal that drove the score.",
"items": {
"type": "string"
},
"type": "array"
},
"score": {
"description": "0–100 fused Oracle score.",
"type": "number"
},
"scored_at": {
"description": "ISO timestamp when the conviction was last computed.",
"type": "string"
},
"structure_cap": {
"description": "true when structural flags capped the score below raw pillar math.",
"type": "boolean"
},
"tier": {
"description": "prime ≥86, strong ≥72, lean ≥54, watch ≥36, avoid <36.",
"enum": [
"prime",
"strong",
"lean",
"watch",
"avoid"
],
"type": "string"
}
},
"type": "object"
},
"found": {
"type": "boolean"
},
"mint": {
"type": "string"
},
"name": {
"type": "string"
},
"narrative": {
"description": "Narrative classification for the coin.",
"nullable": true,
"properties": {
"category": {
"description": "E.g. meme, ai, tech, culture, news, defi.",
"type": "string"
},
"confidence": {
"nullable": true,
"type": "number"
},
"narrative": {
"description": "One-sentence description of the coin's story or hook.",
"type": "string"
},
"source": {
"description": "Classifier that produced the narrative read.",
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"virality": {
"description": "0–1 estimated virality of the narrative.",
"nullable": true,
"type": "number"
}
},
"type": "object"
},
"outcome": {
"description": "Labeled outcome if available.",
"nullable": true,
"properties": {
"ath_market_cap_usd": {
"nullable": true,
"type": "number"
},
"ath_multiple": {
"nullable": true,
"type": "number"
},
"graduated": {
"type": "boolean"
},
"outcome": {
"type": "string"
},
"rugged": {
"type": "boolean"
}
},
"type": "object"
},
"symbol": {
"type": "string"
},
"url": {
"description": "Oracle deep-link URL for this coin.",
"type": "string"
},
"whos_in": {
"description": "Classified trader roster — every wallet that touched this coin, annotated with their reputation.",
"items": {
"properties": {
"buy_sol": {
"description": "Total SOL bought.",
"type": "number"
},
"early_win_rate": {
"description": "Win-rate on early entries specifically.",
"nullable": true,
"type": "number"
},
"funder": {
"description": "The wallet that funded this one (if identified).",
"nullable": true,
"type": "string"
},
"is_creator": {
"type": "boolean"
},
"label": {
"description": "Trader archetype: smart_money, kol, sniper, whale, early_degen, recycler, dca_buyer, dca_seller, bot, unproven.",
"type": "string"
},
"score": {
"description": "Brain reputation score (0–100).",
"nullable": true,
"type": "number"
},
"sell_sol": {
"description": "Total SOL sold.",
"type": "number"
},
"source": {
"description": "\"brain\" (trained) or \"gmgn\" (seed corpus).",
"nullable": true,
"type": "string"
},
"tag": {
"description": "Social handle when known (from seed corpus).",
"nullable": true,
"type": "string"
},
"wallet": {
"type": "string"
},
"win_rate": {
"description": "Historical win-rate (0–1).",
"nullable": true,
"type": "number"
}
},
"type": "object"
},
"type": "array"
}
},
"required": [
"found"
],
"type": "object"
}
},
{
"description": "Full details for a specific pump.fun token by mint address.",
"inputSchema": {
"properties": {
"mint": {
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_token_details",
"outputSchema": null
},
{
"description": "Top holders of a token with concentration analysis (on-chain).",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"mint": {
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_token_holders",
"outputSchema": null
},
{
"description": "Recent buy/sell history for a token.",
"inputSchema": {
"properties": {
"limit": {
"default": 50,
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"mint": {
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "get_token_trades",
"outputSchema": null
},
{
"description": "Top pump.fun tokens by market cap.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_trending_tokens",
"outputSchema": null
},
{
"description": "Top KOL traders ranked by P&L for a given time window. Returns wallet, pnlUsd, winRate, trades, rank.",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"window": {
"default": "7d",
"enum": [
"24h",
"7d",
"30d"
],
"type": "string"
}
},
"type": "object"
},
"name": "kol_leaderboard",
"outputSchema": null
},
{
"description": "Returns the configuration and health status of the pump.fun indexer backend. Always available — does not require PUMPFUN_BOT_URL.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "pumpfun_bot_status",
"outputSchema": {
"additionalProperties": true,
"properties": {
"configured": {
"description": "true when PUMPFUN_BOT_URL is set on the server",
"type": "boolean"
},
"error": {
"description": "Failure reason when healthy is false",
"type": "string"
},
"healthy": {
"description": "true when the indexer answered the health ping",
"type": "boolean"
},
"latencyMs": {
"description": "Round-trip ms of the health ping (configured backends only)",
"type": "number"
},
"message": {
"description": "Human-readable note when the indexer is unconfigured",
"type": "string"
}
},
"required": [
"configured",
"healthy"
],
"type": "object"
}
},
{
"description": "First-ever pump.fun creator fee claims in a time window: a cash-out signal. Returns creators who have never claimed before, with creator wallet, mint, lamports, and timestamp.",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"sinceMinutes": {
"default": 60,
"description": "How far back to look for new claimers (minutes)",
"maximum": 1440,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "pumpfun_first_claims",
"outputSchema": null
},
{
"description": "List recent pump.fun fee-claim events for a creator wallet (on-chain, no indexer needed). Returns signature, mint, lamports, and Unix timestamp for each claim.",
"inputSchema": {
"properties": {
"creator": {
"description": "Creator wallet address (base58)",
"type": "string"
},
"limit": {
"default": 20,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"creator"
],
"type": "object"
},
"name": "pumpfun_list_claims",
"outputSchema": null
},
{
"description": "Read-only price quote for a pump.fun AMM (PumpSwap) swap. No signing or tx sending. One of inputMint/outputMint must be wSOL (So11111111111111111111111111111111111111112). Only GRADUATED coins have an AMM pool; for a coin still on its bonding curve use get_bonding_curve instead. Pricing runs on the pool effective quote reserves (quote vault balance + pool.virtual_quote_reserves); the base side is the raw base vault balance. Returns amountOut, priceImpactBps, route, expiresAtMs, plus the reserves the quote was computed from so the number can be reproduced.",
"inputSchema": {
"properties": {
"amountIn": {
"description": "Input amount in raw base units (lamports for SOL).",
"type": "number"
},
"inputMint": {
"description": "Input token mint (base58).",
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
},
"outputMint": {
"description": "Output token mint (base58).",
"type": "string"
},
"slippageBps": {
"description": "Slippage tolerance in basis points (default 100 = 1%).",
"type": "number"
}
},
"required": [
"inputMint",
"outputMint",
"amountIn"
],
"type": "object"
},
"name": "pumpfun_quote_swap",
"outputSchema": {
"additionalProperties": true,
"properties": {
"amountOut": {
"description": "Expected output amount in raw base units",
"type": "string"
},
"base_reserve": {
"description": "Raw base vault balance. Unchanged by the virtual-reserve rollout.",
"type": "string"
},
"effective_quote_reserve": {
"description": "quote_reserve + virtual_quote_reserves. This is what the quote is priced against.",
"type": "string"
},
"expiresAtMs": {
"description": "Epoch ms after which the quote is stale",
"type": "number"
},
"priceImpactBps": {
"description": "Price impact in basis points",
"type": "number"
},
"quote_reserve": {
"description": "Raw quote vault balance, before virtual reserves are added.",
"type": "string"
},
"route": {
"description": "AMM pool address the quote routes through (base58)",
"type": "string"
},
"virtual_quote_reserves": {
"description": "Pool.virtual_quote_reserves. Quote-side liquidity the pool carries outside its vault. 0 on non-launchpad pools.",
"type": "string"
}
},
"required": [
"amountOut",
"priceImpactBps",
"route",
"expiresAtMs"
],
"type": "object"
}
},
{
"description": "Upload coin metadata (name, symbol, description, image) to IPFS and get back a pump.fun-ready metadata URI. Call this before launching a coin — pass the returned uri to the launch-agent endpoint or the studio launch flow. Requires a valid bearer token (API key). Image may be a public HTTPS URL or a base64 data URI (max 10 MB). The returned uri is a permanent ipfs:// link; the call is idempotent for the same content.",
"inputSchema": {
"properties": {
"description": {
"description": "Coin description (max 500 chars).",
"type": "string"
},
"image_url": {
"description": "Image for the coin icon. Public HTTPS URL or base64 data URI (data:image/png;base64,…). Square image, at least 400×400 px, under 5 MB.",
"type": "string"
},
"name": {
"description": "Coin name (1–32 chars).",
"type": "string"
},
"symbol": {
"description": "Ticker symbol (1–10 chars, no $).",
"type": "string"
},
"telegram": {
"description": "Telegram URL (optional).",
"type": "string"
},
"twitter": {
"description": "Twitter/X handle or URL (optional).",
"type": "string"
},
"website": {
"description": "Website URL (optional).",
"type": "string"
}
},
"required": [
"name",
"symbol",
"description",
"image_url"
],
"type": "object"
},
"name": "pumpfun_upload_metadata",
"outputSchema": {
"additionalProperties": false,
"properties": {
"cid": {
"description": "IPFS CID of the metadata JSON.",
"type": "string"
},
"image_cid": {
"description": "IPFS CID of the uploaded image.",
"type": "string"
},
"provider": {
"description": "IPFS provider used.",
"type": "string"
},
"uri": {
"description": "ipfs:// URI ready for the pump.fun launch-agent `uri` field.",
"type": "string"
}
},
"required": [
"uri",
"cid"
],
"type": "object"
}
},
{
"description": "Generate a Solana keypair whose address ends/starts with a vanity pattern. Returns publicKey + secretKey (base58). Caller must save the secret key immediately — it is never stored. Hard timeout: 60 s.",
"inputSchema": {
"properties": {
"caseSensitive": {
"default": false,
"type": "boolean"
},
"maxAttempts": {
"default": 5000000,
"type": "integer"
},
"prefix": {
"description": "Desired address prefix (case-insensitive by default)",
"type": "string"
},
"suffix": {
"description": "Desired address suffix (case-insensitive by default)",
"type": "string"
}
},
"type": "object"
},
"name": "pumpfun_vanity_mint",
"outputSchema": {
"additionalProperties": true,
"properties": {
"attempts": {
"description": "Keypairs ground before the match",
"type": "integer"
},
"ms": {
"description": "Wall-clock grind time in milliseconds",
"type": "number"
},
"publicKey": {
"description": "Matched Solana address (base58)",
"type": "string"
},
"secretKey": {
"description": "Secret key (base58) — caller is sole custodian",
"type": "string"
}
},
"required": [
"publicKey",
"secretKey",
"attempts",
"ms"
],
"type": "object"
}
},
{
"description": "Return all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs). Useful for batch collection after a delay.",
"inputSchema": {
"properties": {
"creator": {
"description": "Creator wallet address (base58)",
"type": "string"
},
"durationMs": {
"description": "Look-back window in ms (default 300000 = 5 min, max 1800000)",
"type": "number"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
}
},
"required": [
"creator"
],
"type": "object"
},
"name": "pumpfun_watch_claims",
"outputSchema": null
},
{
"description": "Collect whale trades on a pump.fun token for a short window (max 10 s). Returns all trades whose USD value meets minUsd.",
"inputSchema": {
"properties": {
"durationMs": {
"description": "Collection window in ms (default 5000, max 10000)",
"type": "number"
},
"minUsd": {
"description": "Minimum trade value in USD (default 5000)",
"type": "number"
},
"mint": {
"description": "SPL mint pubkey (base58)",
"type": "string"
}
},
"required": [
"mint"
],
"type": "object"
},
"name": "pumpfun_watch_whales",
"outputSchema": null
},
{
"description": "Resolve a .sol Solana Name Service domain to its owner wallet address.",
"inputSchema": {
"properties": {
"name": {
"description": ".sol domain name, e.g. \"bonfida.sol\"",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "sns_resolve",
"outputSchema": {
"additionalProperties": true,
"properties": {
"address": {
"description": "Owner wallet address (base58)",
"type": "string"
},
"name": {
"description": "The .sol domain that was resolved",
"type": "string"
}
},
"required": [
"name",
"address"
],
"type": "object"
}
},
{
"description": "Reverse-lookup a Solana wallet address to its primary .sol domain name.",
"inputSchema": {
"properties": {
"address": {
"description": "Base58 Solana wallet address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "sns_reverseLookup",
"outputSchema": {
"additionalProperties": true,
"properties": {
"address": {
"description": "The wallet address that was looked up",
"type": "string"
},
"name": {
"description": "Primary .sol domain for the address",
"type": "string"
}
},
"required": [
"address",
"name"
],
"type": "object"
}
},
{
"description": "Score social-post sentiment for a cashtag using a deterministic lexicon. Returns score (-1..1), positive/negative/neutral percentages, and example posts.",
"inputSchema": {
"properties": {
"posts": {
"description": "Array of post objects. Each must have a text field; id, ts, and author are optional.",
"items": {
"properties": {
"author": {
"type": "string"
},
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"ts": {
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"posts"
],
"type": "object"
},
"name": "social_cashtag_sentiment",
"outputSchema": {
"additionalProperties": true,
"properties": {
"count": {
"description": "Number of posts scored",
"type": "integer"
},
"examples": {
"additionalProperties": true,
"properties": {
"neg": {
"items": {
"type": "string"
},
"type": "array"
},
"pos": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"pos",
"neg"
],
"type": "object"
},
"negPct": {
"description": "Percentage of negative posts (0–100)",
"type": "number"
},
"neuPct": {
"description": "Percentage of neutral posts (0–100)",
"type": "number"
},
"posPct": {
"description": "Percentage of positive posts (0–100)",
"type": "number"
},
"score": {
"description": "Net sentiment, -1 (bearish) to 1 (bullish)",
"type": "number"
}
},
"required": [
"score",
"posPct",
"negPct",
"neuPct",
"count",
"examples"
],
"type": "object"
}
},
{
"description": "Correlate an X (Twitter) post to a memecoin price impact. Fetches post metadata via oEmbed (no API key) and computes price delta from the pump.fun bonding curve in a ±windowMin window around the post.",
"inputSchema": {
"properties": {
"mint": {
"description": "Solana token mint address (base58)",
"type": "string"
},
"network": {
"default": "mainnet",
"enum": [
"mainnet",
"devnet"
],
"type": "string"
},
"postUrl": {
"description": "X post URL (e.g. https://x.com/user/status/123)",
"type": "string"
},
"windowMin": {
"default": 30,
"description": "±window in minutes around the post time",
"type": "integer"
}
},
"required": [
"postUrl",
"mint"
],
"type": "object"
},
"name": "social_x_post_impact",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:347362282470b4582f6c2ac8816db6e9498a7157261381d81482dc97dc3b9e7d | sha256sum