Skip to content

feat: add GROUNDTRUTH action provider (memecoin creator/coin records, known-bad flag) - #1518

Open
groundtruth-now wants to merge 1 commit into
coinbase:mainfrom
groundtruth-now:groundtruth-action-provider
Open

groundtruth-now wants to merge 1 commit into
coinbase:mainfrom
groundtruth-now:groundtruth-action-provider

Conversation

@groundtruth-now

Copy link
Copy Markdown

Description

Adds a GROUNDTRUTH action provider. GROUNDTRUTH records the outcomes of memecoin launches on Solana (pump.fun) and Robinhood Chain, and the track record of the wallets that launch them. It gives an agent three things to check before it buys a newly launched token:

action endpoint returns
get_creator_record GET /v1/flag a creator wallet's launches and how many rugged, died, survived or graduated
get_coin_record GET /v1/record one coin's recorded outcome and its creator
get_known_bad_flag GET /api/flag whether the creator rugs more often than the chain baseline by more than chance (one-sided exact binomial, p < 0.01, ≥ 5 resolved launches), with that basis
  • Network-agnostic (off-chain HTTP API), with no wallet provider needed.
  • Optional apiKey (or GROUNDTRUTH_API_KEY), sent as x-api-key. Without a key, a small free per-IP allowance applies. After that the API answers 402 with an x402 challenge, and the action returns a clear message pointing to the existing x402 action provider rather than failing silently.
  • The action descriptions tell the model these are records, not safety ratings: known_bad: null means "not in the published set", and a fresh coin has "no outcome yet".
  • Follows the DefiLlama provider's pattern: fetch, a JSON string on success, and an error string on failure.
  • Scaffolded with scripts/generate-action-provider, registered in action-providers/index.ts, with a changeset.

Tests

Unit tests (groundtruthActionProvider.test.ts, 8 passing) cover:

  • the schema, and chain inference (0x… → Robinhood Chain, base58 → Solana)
  • each endpoint and its query parameters
  • the API key header being present only when configured
  • the 402 message
  • HTTP and network errors

pnpm run lint, format and tsc --noEmit are clean.

Live check of the endpoints the provider calls:

GET https://api.groundtruths.xyz/api/flag?addr=WB6dqX3niseHgaMNMiWBkmqQ5heAMGSKxKkdA2WNak3&chain=solana
200 {"creator":"WB6dqX3niseHgaMNMiWBkmqQ5heAMGSKxKkdA2WNak3","chain":"solana","in_set":true,"known_bad":true,"p_value":4.58e-98,"rugs":933,"launches":1019,...}

🤖 Generated with Claude Code

Three actions over the GROUNDTRUTH API: creator record, coin record and
known-bad creator flag for memecoin launches on Solana and Robinhood Chain.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@cb-heimdall

Copy link
Copy Markdown

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

@github-actions github-actions Bot added documentation Improvements or additions to documentation action provider New action provider typescript labels Sep 24, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action provider New action provider documentation Improvements or additions to documentation typescript

Development

Successfully merging this pull request may close these issues.

2 participants