Rug Check
Inspect token contract risk, holder and liquidity signals, and trending tokens.
Get token security
Query parameters:
address: required token contract address.chainId: required chain/network ID.
curl -G https://www.sharpe.ai/api/v1/rug-check/security \
-H "Authorization: Bearer sk_live_your_key_here" \
--data-urlencode "address=0x..." \
--data-urlencode "chainId=1"
When the security provider (GoPlus) is temporarily unavailable, a token checked in the last 7 days answers from its last good record with stale: true and dataAsOf (when that record was fetched). Without one, a token on Ethereum, BNB Smart Chain or Base answers with a partial record from Honeypot.is, flagged partial: true: isHoneypot comes from its buy/sell simulation and every other security field is null (unknown). Live answers carry none of these fields. With nothing to answer from, the response is 503 service_unavailable with a Retry-After header; the provider throttling us is never a 429, which is only ever your own rate limit. An address the provider holds nothing for returns 404.
Every answer also carries the Rug Check score the Rug Check page shows, computed from these GoPlus fields, the token's DexScreener market figures (liquidity and 24h volume summed over its pairs on the chain, age from its oldest pair) and its GeckoTerminal holder data:
score.value:0to100, higher is safer. Contract checks weigh 0.40, holders 0.35 and market health 0.25; hard signals cap the result (a honeypot or sell block sets5).score.verdict:safe(80 or more),caution(50 or more),risky(20 or more) ordanger.score.verdict_labelis the page's label for it:Looks Safe,Use Caution,RiskyorDanger.score.verdict_note:Trusted issuer, centralised controlswhen GoPlus trust-lists the token and its issuer can still mint, freeze, pause or upgrade it (those controls are listed as warnings but neither scored nor capped); otherwisenull.score.data_completeness:full,partial(a pillar had no data and scores a neutral 50) ornone(no provider answered:value,verdictandverdict_labelarenull, never a default 50).score.engine_version: the version of the scoring rules the value was computed under.score.insights: the verdict's reasons, at most 6.checks: the rows of the page's Contract Security and Token Health tables, each withpillar(contractorhealth),label,value,status(safe,warning,dangerorneutral) andtooltip.
A market or holder figure the route could not read is unknown, never zero. A stale answer is scored from the last good record. A partial answer scores the contract checks as unknown (as when no provider answers), except that a detected honeypot scores 5 (danger).
Get trending tokens
The list is rebuilt every 15 minutes from GeckoTerminal by a scheduled job and is stale after 30 minutes (stale: true on the free route). With no list to serve the endpoint answers 503 (service_unavailable, Retry-After: 30).
Query parameters:
limit:1to100. Default50.
curl -G https://www.sharpe.ai/api/v1/rug-check/trending \
-H "Authorization: Bearer sk_live_your_key_here" \
--data-urlencode "limit=25"