Token Honeypot & Rug-Pull Check avatar

Token Honeypot & Rug-Pull Check

Pricing

Pay per usage

Go to Apify Store
Token Honeypot & Rug-Pull Check

Token Honeypot & Rug-Pull Check

Before you or your AI agent buy a token, check whether you could still sell it: sell simulation and taxes on Ethereum, BSC and Base, mint and freeze authority on Solana, plus liquidity depth, pair age and impersonation. One fail-closed verdict per token.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

jake gu

jake gu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Check a token before you, your trading bot or your AI agent buys it, and answer the question that matters first: could you still sell it?

This Actor sends each address to VetAgent, a free pre-trade check, and returns one row per token with a low, medium, high or unknown verdict and every signal behind it. Use it for batch checks, scheduled runs, or to wire a pre-trade check into Make, Zapier or a webhook through Apify's integrations.

What it checks

CheckChains
Buy/sell simulation (honeypot), buy/sell/transfer taxEthereum, BSC, Base
Mint and freeze authority, top-10 holder concentrationSolana
Liquidity depth, counted only for reserves held in independently priced assetsEthereum, BSC, Base, Arbitrum, Optimism, Polygon, Avalanche, Solana
Pair age, 24h turnover across the token's poolsEvery chain
Same-ticker impersonation within one chainEvery chain
Owner powers in the bytecode (blacklist, tax change, pause, mint): disclosed, never scoredEthereum, BSC, Base

On a chain the sell simulator does not cover, the answer says so and comes back unknown rather than pretending the check ran.

How to read the verdict

  • low: no fatal signal in the checks that ran. The exit was open when the token was checked; that does not mean nobody can close it later.
  • medium: real signals, none fatal. Read them before acting.
  • high: do not proceed without review.
  • unknown: a critical check could not run. Never treat it as a green light. nextAction says whether to retry (a data source failed) or abstain (nothing can see the token).

If this Actor cannot get an answer at all (an invalid address, or a call that still failed after retries), the row still comes back unknown, with verdictSource set to actor and the reason in error. A failure can never be read as low risk.

Input

{
"tokens": ["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"],
"chainHint": "base",
"verboseEvidence": false
}
  • tokens: EVM (0x...) or Solana mint addresses, up to 100 per run.
  • chainHint: auto, ethereum, bsc, base, arbitrum, polygon, optimism, avalanche or solana. The same address can exist on several chains; with auto, each answer covers the chain holding the most liquidity and names it.
  • verboseEvidence: also return raw upstream fields such as reserves.

Output

One dataset row per token. A real row for USDC on Base from this Actor's own test run on 2026-09-16, with two of its four signals and the evidence object left out:

{
"token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chain": "base",
"dex": "geckoterminal",
"liquidityUsd": 124555000,
"riskLevel": "low",
"confidence": "high",
"driver": null,
"recommendation": "Low risk: sellable and liquid when checked, no fatal signal. The exit was open when we looked; that is not the same as it cannot be closed. **Owner powers unchecked**: bytecode unreadable (rpc 429). A gap on our side, not a clean result.",
"nextAction": null,
"checkedAt": "2026-09-16T10:53:21Z",
"signals": [
{"severity": "ok", "name": "Liquidity is adequate", "message": "Main pair holds $124,554,916.", "category": "liquidity"},
{"severity": "ok", "name": "Established pair", "message": "Main pair has existed for 1033 days.", "category": "freshness"}
],
"verdictSource": "vetagent",
"error": null
}

Note what that recommendation does: one check (owner powers in the bytecode) could not run on the day, and the answer says so instead of passing over it. dex names the DEX when VetAgent's primary source does, and says geckoterminal when the pool was read through its fallback source.

How accurate is it?

VetAgent publishes its own measured error rates, including the ones that make it look worst, with the benchmark that reproduces them: vetagent.dev/method. No figures are copied here, because they change every time the benchmark is re-run.

For AI agents: connect over MCP instead

An agent that speaks MCP does not need this Actor. Point it at https://vetagent.dev/mcp (Streamable HTTP, no key) and it gets assess_token_risk, get_token_liquidity and find_new_hot_pools directly. See vetagent.dev/api.

Limits and cost

  • Up to 100 addresses per run; any beyond that are skipped, and the log says how many.
  • VetAgent allows about 60 calls a minute per caller. The Actor paces itself and waits when it is asked to.
  • VetAgent is free and needs no API key. Runs use your Apify platform usage like any Actor.

Privacy

Each address goes in the body of an HTTPS POST to https://vetagent.dev/assess, never in a URL. VetAgent does not log the token addresses it is asked about. The Actor sends no Apify user id, token or run id; it sends a client name, which is how VetAgent tells its own test traffic from real use. Runs of the prefilled example, which Apify's daily health check uses, and runs by this Actor's author are labelled as VetAgent's own.

Not investment advice

Read-only analysis. It executes no trades and gives no investment advice.

Source