agentdata.networkSource

PumpCheck: operators

What a supplier needs to serve pump-check.

Service ID
pump-check
Required version
pump-check >= 1.0
Image
ghcr.io/thefeloniousmonk/pump-check:1.1.1
Minimum RAM
1 GB
Minimum disk
2 GB
RPC types
REST (expected)

Backend

The pump-check container (Node 22, SQLite store on a volume; built from github.com/TheFeloniousMonk/portal-services, pump-check/backend) behind the HA RelayMiner. It ingests new pools from DexPaprika every 2 minutes on a rolling 30-day credit ledger, precomputes each token through Pocket's public RPC (failing over to two public endpoints per chain only for request-time reads), and answers checks from the store plus live re-reads. Each supplier sets its own free DexPaprika and Blockscout keys in the app's Service settings. Since 1.1, suppliers' nodes share chain-verified token facts and Base holder snapshots over a peer API on port 8090, routed at /pump-check-peer (deploy/routes.json). Outbound HTTPS to the RPC endpoints, DexPaprika and Blockscout.

REST

Backend: pump-check container on :8080; mount at /

POST /v1/check and /v1/recent with a JSON body, plus GET /v1/version, /healthz, /v1/capabilities, /v1/openapi.json. Every response is a JSON object, including errors (which carry an 'error' field); token names are escaped against gateway phrases.

Notes

A check of 10 tokens answers within about 11 s. SAGE operators: type generic (its name for passthrough), rpc_types ["rest"], relay_timeout at least 15s.

Health checks

TypeRequestExpectWhy
RESTGET /v1/version$.service matches ^pump-check$Identity probe: pins the backend to this service.
RESTGET /healthz$.status matches ^ok$Readiness: an ingest completed in the last 10 minutes and at least one chain's RPC answers.
RESTPOST /v1/check
{"tokens":[{"chain":"solana","address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}]}
$.results[0].checks.freeze_authority.value matches ^7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar$Functional probe: USDC's freeze authority, read live through Solana RPC. Stable, and proves a real chain read.

Running it

Build the backend from backend/, or pull the published image:

docker pull ghcr.io/thefeloniousmonk/pump-check:1.1.1

Images are tagged with the version the backend reports at GET /v1/version. Keep up with the required version above; an older backend can reject requests that newer callers send.

The service's deploy/ folder has:

The service's docs cover its settings and anything a supplier must provide.