protogrid

Search / xyz.groundtruths/groundtruth

groundtruth

R0· no sign-in

Dev records, pump.fun + Robinhood Chain: launches, rugs, bonded, live last mint. Every figure has N.

v1.3.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality83good
Trust100of 100
Uptime, 30 days97%
Latency p50504 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "groundtruth": {
      "type": "http",
      "url": "https://api.groundtruths.xyz/mcp"
    }
  }
}
claude mcp add --transport http groundtruth https://api.groundtruths.xyz/mcp
[mcp_servers.groundtruth]
url = "https://api.groundtruths.xyz/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "groundtruth": {
      "type": "remote",
      "url": "https://api.groundtruths.xyz/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "groundtruth": {
      "type": "http",
      "url": "https://api.groundtruths.xyz/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=groundtruth&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmdyb3VuZHRydXRocy54eXovbWNwIn0%3D"
}
{
  "servers": {
    "groundtruth": {
      "type": "http",
      "url": "https://api.groundtruths.xyz/mcp"
    }
  }
}
{
  "mcpServers": {
    "groundtruth": {
      "httpUrl": "https://api.groundtruths.xyz/mcp"
    }
  }
}
extensions:
  "groundtruth":
    enabled: true
    name: "groundtruth"
    type: streamable_http
    uri: "https://api.groundtruths.xyz/mcp"
    timeout: 300

Quality 83 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations17 of 17 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,127 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes26 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

17 tools, about 4,127 tokens to load them all · tool set db28f435110b · tools last changed 2026-10-18 · checked 2026-10-20 13:17 UTC

Tool changes

  • beat_the_botadded

    Beat the Bot: fight SWAPNUTZ, GT's paper sniper, on a live pump.fun launch. action "state" lists open rounds, the bot's live P&L and the rules. action "in" enters a round (round = the coin mint, size_sol, optional tp_pct / sl_pct / hold_s for an auto exit); action "out" exits. Orders are stamped on arrival and fill on GT's captured curve, same fees as the bot. action "session" reads a result. Paper only. Not financial advice.

  • launch_feedchangeddescription
    before

    The newest launches on Solana and Robinhood Chain, each with the dev's rap sheet attached: SAME DEV X OF Y RUGGED, median pull, last launch, bonded count, the dev's labels where backed, active hours, the $100 line for the dev's last coin, a link to the card. Free keys read it 5 min behind; a key with credits reads it real time. Counts only, wallets only. Needs a key.

    after · 81% of words in common

    GT Launch Feed: GT's RPC-style stream, with GT's data already embedded (not a JSON-RPC endpoint: no RPC methods). The newest launches on Solana and Robinhood Chain, each with the dev's rap sheet attached: SAME DEV X OF Y RUGGED, median pull, last launch, bonded count, the dev's labels where backed, active hours, the $100 line for the dev's last coin, a link to the card. Free keys read it 5 min behind; a key with credits reads it real time. Counts only, wallets only. Needs a key.

  • launch_feedadded

    The newest launches on Solana and Robinhood Chain, each with the dev's rap sheet attached: SAME DEV X OF Y RUGGED, median pull, last launch, bonded count, the dev's labels where backed, active hours, the $100 line for the dev's last coin, a link to the card. Free keys read it 5 min behind; a key with credits reads it real time. Counts only, wallets only. Needs a key.

  • groundtruth_copycheckchangeddescription
    before

    For a copy bot about to follow a wallet into a coin: the coin's creator counts (to that coin's launch when we have them), the wallet's counts from the capture tape, and one line built from those counts only, e.g. "creator: SAME HAND 12/12 RUGGED (counted to this coin's launch) · wallet: 393/1,241 sells within 60 s before a rug, below the all-wallet rate · 701/2,450 buys where a wallet that first bought 1-2 s later still held at the rug, below the all-wallet rate · ... · tape 2026-08-29..2026-09-28". Solana only. Counts only.

    after · 64% of words in common

    For a copy bot about to follow a wallet into a coin: the coin's creator counts (to that coin's launch when we have them), the wallet's counts from the capture tape, and one line built from those counts only, e.g. "creator: SAME DEV · {r} OF {n} RUGGED (counted to this coin's launch) · wallet: {a}/{b} sells within 60 s before a rug, {vs} the all-wallet rate · {c}/{d} buys where a wallet that first bought 1-2 s later still held at the rug, {vs} the all-wallet rate · ... · tape {from}..{to}" (every {x} is that call's own count; GT_NO_HANDTYPED_V1). Solana only. Counts only.

  • groundtruth_kol_feedchangeddescription
    before

    undefined JUST IN: launches by wallets on the KOL and top-profit lists, newest first, each with that wallet's rugged / resolved before it; AGAIN: rugs on their coins with the seconds to the pull. 10 minutes behind. Free: the newest 3; with an API key, 30 (or /v1/kol/feed over x402).

    after · 79% of words in common

    What the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. JUST IN: launches by wallets on the KOL and top-profit lists, newest first, each with that wallet's rugged / resolved before it; AGAIN: rugs on their coins with the seconds to the pull. 10 minutes behind. Free: the newest 3; with an API key, 30 (or /v1/kol/feed over x402).

  • groundtruth_kol_boardchangeddescription
    before

    undefined The wallets on kolscan, the pump.fun leaderboard, kolscan.fun, KolHood and Kolosseum that launched coins, counted by GROUNDTRUTH: tag KOL or TOP PROFIT, launches, rugged / resolved, PULL, bonded, last mint, and list juice (Telegram / X / verified as yes-no, list rank, listed now). Wallets only, never a name. Free: the top 3 per list and every list total; with an API key, every row (or /v1/kol over x402).

    after · 80% of words in common

    What the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. The wallets on kolscan, the pump.fun leaderboard, kolscan.fun, KolHood and Kolosseum that launched coins, counted by GROUNDTRUTH: tag KOL or TOP PROFIT, launches, rugged / resolved, PULL, bonded, last mint, and list juice (Telegram / X / verified as yes-no, list rank, listed now). Wallets only, never a name. Free: the top 3 per list and every list total; with an API key, every row (or /v1/kol over x402).

  • groundtruth_kol_feedadded

    undefined JUST IN: launches by wallets on the KOL and top-profit lists, newest first, each with that wallet's rugged / resolved before it; AGAIN: rugs on their coins with the seconds to the pull. 10 minutes behind. Free: the newest 3; with an API key, 30 (or /v1/kol/feed over x402).

  • groundtruth_kol_boardadded

    undefined The wallets on kolscan, the pump.fun leaderboard, kolscan.fun, KolHood and Kolosseum that launched coins, counted by GROUNDTRUTH: tag KOL or TOP PROFIT, launches, rugged / resolved, PULL, bonded, last mint, and list juice (Telegram / X / verified as yes-no, list rank, listed now). Wallets only, never a name. Free: the top 3 per list and every list total; with an API key, every row (or /v1/kol over x402).

  • groundtruth_creator_flagchangeddescription
    before

    One creator in, one small answer out: is this creator known bad, with the rug rate, the chain baseline and the multiple that justifies the verdict. Also returns TTR -- ttr_median, ttr_p25 and ttr_mean, in seconds from launch to rug over this creator's rugged launches, with ttr_n and n_rugged -- and rugged_resolved / faded_resolved as x/y, all counted to the build time of the data and from launch outcomes only. The cheapest call on this server -- use it when all you need is the decision rather than the wallet list. known_bad is null, never false, for a creator not in our count. The counts are a batch recount; LIVE FIELDS, from the mint feed every 5 s: last_mint_live (unix s of the dev's newest mint), launched_live, bonded_live and mints_since_asof; ticker_asof = the newest mint the feed has seen. A row with no mints_since_asof is not live: refuse it. bonded_asof dates the recount part; peak / pull and ttr_* are history (peak_proven / pull_proven false), not a trade signal; known_bad is the census rule.

    after · 80% of words in common

    What the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. kol: when the creator is on a public KOL list (kolscan, the pump.fun leaderboard, kolscan.fun, KolHood, Kolosseum) -- tag KOL or TOP PROFIT, the lists, tg / x / verified as yes-no, the list rank, listed now; null when it is on none. Never a name or handle. One creator in, one small answer out: is this creator known bad, with the rug rate, the chain baseline and the multiple that justifies the verdict. Also returns TTR -- ttr_median, ttr_p25 and ttr_mean, in seconds from launch to rug over this creator's rugged launches, with ttr_n and n_rugged -- and rugged_resolved / faded_resolved as x/y, all counted to the build time of the data and from launch outcomes only. The cheapest call on this server -- use it when all you need is the decision rather than the wallet list. known_bad is null, never false, for a creator not in our count. The counts are a batch recount; LIVE FIELDS, from the mint feed every 5 s: last_mint_live (unix s of the dev's newest mint), launched_live, bonded_live and mints_since_asof; ticker_asof = the newest mint the feed has seen. A row with no mints_since_asof is not live: refuse it. bonded_asof dates the recount part; peak / pull and ttr_* are history (peak_proven / pull_proven false), not a trade signal; known_bad is the census rule.

  • groundtruth_scan_coinchangeddescription
    before

    Look up one token and return what GROUNDTRUTH counted about it: the outcome label (rugged, died, graduated, survived, or no outcome), liquidity and market-cap figures, holder counts, and the launch counts of the wallet that launched it. Accepts a Solana mint or a Robinhood Chain 0x contract address. This is the same read the public site performs when someone pastes a contract address. The answer carries the envelope; its live block holds the dev's last_mint_live, launched_live, bonded_live, mints_since_asof and ticker_asof (the newest mint the feed has seen). A dev WALLET pasted here answers not_token plus that dev's creator_record and the same live fields.

    after · 77% of words in common

    What the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. When the dev is on a KOL list, envelope.kol carries tag KOL / TOP PROFIT, the lists, yes-no flags and rank (never a name). Look up one token and return what GROUNDTRUTH counted about it: the outcome label (rugged, died, graduated, survived, or no outcome), liquidity and market-cap figures, holder counts, and the launch counts of the wallet that launched it. Accepts a Solana mint or a Robinhood Chain 0x contract address. This is the same read the public site performs when someone pastes a contract address. The answer carries the envelope; its live block holds the dev's last_mint_live, launched_live, bonded_live, mints_since_asof and ticker_asof (the newest mint the feed has seen). A dev WALLET pasted here answers not_token plus that dev's creator_record and the same live fields.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 100 / 100

provenance100
liveness99
freshness100
hygiene100

+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-97% +updated-19d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.groundtruths.xyz/mcp streamable-httpnoneyes97%504 ms2025-06-182026-10-20

Tools (17)

beat_the_botBeat the Bot: fight SWAPNUTZ, GT's paper sniper, on a live pump.fun launch. action "state" lists open rounds, the bot's live P&L and the rules. action "in" enters a round (round = the coin mint, size_sol, optional tp_pct / sl_pct / hold_s for an auto exit); action "out" exits. Orders are stamped on arrival and fill on GT's captured curve, same fees as the bot. action "session" reads a result. Paper only. Not financial advice.
groundtruth_autopsy_indexread-onlyList the dated autopsies GROUNDTRUTH has published. Each is a writeup of one launch and what happened to it. Returns the available days; fetch a specific one from the public site at /autopsy/<day>.
groundtruth_census_figuresread-onlyReturn the corpus-level figures the site publishes: launches captured per chain, how many resolved, and the share that rugged, died, survived or graduated, with the generation timestamp. This is market data GROUNDTRUTH has captured, not exhaustive coverage from a start date -- use it for baselines, not for totals of all activity.
groundtruth_copycheckread-onlyFor a copy bot about to follow a wallet into a coin: the coin's creator counts (to that coin's launch when we have them), the wallet's counts from the capture tape, and one line built from those counts only, e.g. "creator: SAME DEV · {r} OF {n} RUGGED (counted to this coin's launch) · wallet: {a}/{b} sells within 60 s before a rug, {vs} the all-wallet rate · {c}/{d} buys where a wallet that first bought 1-2 s later still held at the rug, {vs} the all-wallet rate · ... · tape {from}..{to}" (every {x} is that call's own count; GT_NO_HANDTYPED_V1). Solana only. Counts only.
groundtruth_creator_flagread-onlyWhat the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. kol: when the creator is on a public KOL list (kolscan, the pump.fun leaderboard, kolscan.fun, KolHood, Kolosseum) -- tag KOL or TOP PROFIT, the lists, tg / x / verified as yes-no, the list rank, listed now; null when it is on none. Never a name or handle. One creator in, one small answer out: is this creator known bad, with the rug rate, the chain baseline and the multiple that justifies the verdict. Also returns TTR -- ttr_median, ttr_p25 and ttr_mean, in seconds from launch to rug over this creator's rugged launches, with ttr_n and n_rugged -- and rugged_resolved / faded_resolved as x/y, all counted to the build time of the data and from launch outcomes only. The cheapest call on this server -- use it when all you need is the decision rather than the wallet list. known_bad is null, never false, for a creator not in our count. The counts are a batch recount; LIVE FIELDS, from the mint feed every 5 s: last_mint_live (unix s of the dev's newest mint), launched_live, bonded_live and mints_since_asof; ticker_asof = the newest mint the feed has seen. A row with no mints_since_asof is not live: refuse it. bonded_asof dates the recount part; peak / pull and ttr_* are history (peak_proven / pull_proven false), not a trade signal; known_bad is the census rule.
groundtruth_creator_replayread-onlyWhat $100 would have done across a creator's last N resolved launches. Returns two rows. held_to_end is a MEASUREMENT: the recorded multiple at the end of each launch, with rugged launches counted as zero because the liquidity was pulled. clock_upper_bound is a CEILING, not a prediction: it uses the recorded PEAK multiple and only where the peak arrived at or before the band p25, because the published data carries the peak and the final multiple, not the path between them. Say "at most" when you quote it. Launches with no recorded multiple are excluded from BOTH the stake and the return, so the two describe the same set -- quote computed_for and of, never just the total. Solana only today: the Robinhood outcome data carries no peak multiple, so neither row can be computed there.
groundtruth_kol_boardread-onlyWhat the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. The wallets on kolscan, the pump.fun leaderboard, kolscan.fun, KolHood and Kolosseum that launched coins, counted by GROUNDTRUTH: tag KOL or TOP PROFIT, launches, rugged / resolved, PULL, bonded, last mint, and list juice (Telegram / X / verified as yes-no, list rank, listed now). Wallets only, never a name. Free: the top 3 per list and every list total; with an API key, every row (or /v1/kol over x402).
groundtruth_kol_feedread-onlyWhat the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. JUST IN: launches by wallets on the KOL and top-profit lists, newest first, each with that wallet's rugged / resolved before it; AGAIN: rugs on their coins with the seconds to the pull. 10 minutes behind. Free: the newest 3; with an API key, 30 (or /v1/kol/feed over x402).
groundtruth_scan_coinread-onlyWhat the KOL wallet launched, and how it ended. Rugged of resolved, seconds to the pull, every count with its N. One call. When the dev is on a KOL list, envelope.kol carries tag KOL / TOP PROFIT, the lists, yes-no flags and rank (never a name). Look up one token and return what GROUNDTRUTH counted about it: the outcome label (rugged, died, graduated, survived, or no outcome), liquidity and market-cap figures, holder counts, and the launch counts of the wallet that launched it. Accepts a Solana mint or a Robinhood Chain 0x contract address. This is the same read the public site performs when someone pastes a contract address. The answer carries the envelope; its live block holds the dev's last_mint_live, launched_live, bonded_live, mints_since_asof and ticker_asof (the newest mint the feed has seen). A dev WALLET pasted here answers not_token plus that dev's creator_record and the same live fields.
groundtruth_scoreboardread-onlyReturn the public accuracy scoreboard: how many forward calls GROUNDTRUTH has made, how many have resolved, and how those resolved. Use this to judge how much weight to give the other tools.
groundtruth_scorecardread-onlyHow often calls stamped under this API key were right. Groups them by band and by what the coin actually did, resolved from the same data the card reads. A call whose coin has not resolved counts as PENDING, never as a win -- report pending alongside resolved, because the denominator is the point. Also returns whether the hash chain is intact; if it is not, say so rather than quoting the numbers.
groundtruth_screen_batchread-onlyScreen up to 200 creator addresses in ONE call and get one compact row each: launches, rug rate, the chain baseline, the multiple of that baseline, wallets tied, and the apparent-versus-true operator collapse. Use this instead of calling groundtruth_screen_creator in a loop. known_bad is true only when the creator is in the published set, has at least 5 resolved launches, and rugs at 1.5 times the chain baseline or worse -- a bare rug rate is noise, the multiple is a decision. known_bad is null, NEVER false, for a creator not in our count: not in our count means nothing either way.
groundtruth_screen_creatorread-onlyGiven one creator address, return every wallet that was early in that creator's launches: the role each played (creator, repeat_buyer, one_off), how many of this creator's launches it was early in versus how many it was early in anywhere, and the creator's own rug rate against the chain baseline, because a rate without its baseline is not a finding. It does not say who owns the wallets. LIVE FIELDS, from the mint feed every 5 s: last_mint_live (unix s of the dev's newest mint), launched_live, bonded_live and mints_since_asof; ticker_asof = the newest mint the feed has seen. A row with no mints_since_asof is not live: refuse it. bonded_asof dates the recount part; peak / pull and ttr_* are history (peak_proven / pull_proven false), not a trade signal; known_bad is the census rule.
groundtruth_seal_callStamp a verdict ahead of the outcome, so it can be counted later. This is the honesty mechanism: the row is hash-chained to the previous one under your API key, so a verdict cannot be edited or removed after the coin resolves. Stamp every call you make, including the ones you are confident about -- a scorecard built only from remembered wins is not a scorecard. Returns the row hash and sequence number.
groundtruth_time_to_rugread-onlyWITHDRAWN 2026-09-29: the bands did not beat an age-matched baseline, so this now returns nulls plus band_withdrawn. Was: how fast coins in a given risk band actually rugged: median seconds from GROUNDTRUTH first seeing the curve to the rug, with p25 and p75, for one chain, band and window. Use it to answer "how long would I have had". The denominator is calls that rugged in the window AND carry a rug time, and it travels in the answer. Below 30 such calls the percentiles are null and enough_data is false -- say "not enough resolved calls to state a time" rather than quoting a number. Omit every argument to get the whole table in one call.
groundtruth_wallet_recordread-onlyOne WALLET in, its counts out, from GROUNDTRUTH's own Solana capture tape (not a third party feed). Each of four fields is x/n with a one-line definition of n beside it, its rate, the same rate over all wallets, and the word above, below or about ("about" = within 2 percentage points): bad_share (buys in coins from creators with 5+ launches, 80%+ rugged, judged at each coin's launch; n = buys in coins whose dev we have counted), pre_rug_exits (n = the wallet's sells in coins that rugged; x = those in the 60 s up to the rug), copier_bagholder (buys where a wallet that first bought 1-2 s later still held at the rug; n = buys in coins that rugged where another wallet's first buy in that coin landed 1-2 s later; x = those where at least one wallet that first bought 1-2 s later had not sold at the rug) and early_buys (n = buys in coins with a known launch time; x = within 30 s of the launch). Then the tape range, buys_total (counts all buys; each n counts only the buys that meet its own condition), role (a label; role_label is its display form: deployer, early buyer or trader) and, for a deployer, its launches last (hand_label), dated, with the pip legend and what rugged means. A coin the wallet created itself is left out of the four fields (own_coins_excluded counts them). wallet_record is null, with wallet_record_reason, when the wallet is not in the tape cut (fewer than 100 buys in the tape range). Counts only. creator_record (a deployer) carries the LIVE FIELDS, from the mint feed every 5 s: last_mint_live (unix s of the dev's newest mint), launched_live, bonded_live and mints_since_asof; ticker_asof = the newest mint the feed has seen. A row with no mints_since_asof is not live: refuse it. bonded_asof dates the recount part; peak / pull and ttr_* are history (peak_proven / pull_proven false), not a trade signal; known_bad is the census rule.
launch_feedread-onlyGT Launch Feed: GT's RPC-style stream, with GT's data already embedded (not a JSON-RPC endpoint: no RPC methods). The newest launches on Solana and Robinhood Chain, each with the dev's rap sheet attached: SAME DEV X OF Y RUGGED, median pull, last launch, bonded count, the dev's labels where backed, active hours, the $100 line for the dev's last coin, a link to the card. Free keys read it 5 min behind; a key with credits reads it real time. Counts only, wallets only. Needs a key.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "xyz.groundtruths/groundtruth",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
  "remotes": [
    {
      "url": "https://api.groundtruths.xyz/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.3.0",
  "repository": {
    "url": "https://github.com/groundtruths/groundtruth-mcp",
    "source": "github"
  },
  "websiteUrl": "https://groundtruths.xyz/api",
  "description": "Dev records, pump.fun + Robinhood Chain: launches, rugs, bonded, live last mint. Every figure has N."
}