Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM) avatar

Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)

Pricing

from $12.00 / 1,000 token risk profile results

Go to Apify Store
Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)

Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)

Crypto token due-diligence across 14 EVM chains: honeypot status, buy/sell/transfer taxes, ownership/mint/blacklist controls, holder concentration, open-source and proxy flags, plus a derived risk score, risk level and human-readable risk flags.

Pricing

from $12.00 / 1,000 token risk profile results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)

Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)

Here is one real result, with every field the actor returns:

{
"chain": "ethereum",
"chainId": 1,
"contractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token_name": "USD Coin",
"token_symbol": "USDC",
"riskScore": 6,
"riskLevel": "low",
"riskFlags": ["Proxy contract (logic can change)"],
"total_supply": "49650908188.223021",
"holder_count": 8574945,
"creator_address": "0x95ba4cf87d6723ad9c0db21737d862be80e93911",
"creator_balance": "2505.454092",
"creator_percent": 0,
"owner_address": null,
"owner_balance": null,
"owner_percent": null,
"is_open_source": true,
"is_proxy": true,
"is_mintable": null,
"can_take_back_ownership": null,
"owner_change_balance": null,
"hidden_owner": null,
"selfdestruct": null,
"external_call": null,
"is_honeypot": false,
"honeypot_with_same_creator": false,
"buy_tax": 0,
"sell_tax": 0,
"transfer_tax": null,
"cannot_buy": false,
"cannot_sell_all": null,
"slippage_modifiable": null,
"is_anti_whale": null,
"anti_whale_modifiable": null,
"trading_cooldown": null,
"personal_slippage_modifiable": null,
"is_blacklisted": null,
"is_whitelisted": null,
"transfer_pausable": null,
"is_in_dex": true,
"is_in_cex": true,
"cex_list": ["Binance", "Coinbase"],
"trust_list": true,
"other_potential_risks": null,
"note": null,
"top10HolderPercent": 26.18,
"lpHolderCount": null,
"holders": [
{ "address": "0x37305b1cd40574e4c5ce33f8e8306be057fd7341", "tag": null, "is_contract": false, "is_locked": false, "balance": "4146866687.695749", "percent": 0.08352045992744535 }
],
"observedAt": "2026-08-16T10:31:04.207Z",
"error": null
}

The most complete token due-diligence scraper available. It returns every security field the source exposes for each contract, plus a derived riskScore, riskLevel and human-readable riskFlags, across 14 EVM chains, so you can screen tokens for honeypots, hidden taxes and rug-pull controls in one pass.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

Give the actor one or more token contract addresses and a chain. For each contract it returns a full security profile: honeypot status, buy/sell/transfer taxes, ownership, mint, blacklist and pause controls, holder concentration, open-source and proxy flags, DEX/CEX listing, and the top holders list. On top of the raw fields it computes a riskScore (0 to 100, higher is riskier), a riskLevel (low, medium, high, critical) and a riskFlags array of plain-English findings such as "Honeypot", "Sell tax 15%" or "Top 10 holders own 96%", so you can sort and filter without parsing the raw booleans yourself.

Source booleans that arrive as "0"/"1"/"" are normalized to true/false/null. Large supply and balance numbers are kept as exact strings so no precision is lost. Contracts with no security data available, and invalid addresses, are returned as unbilled rows with an error message.

Supported chains: Ethereum, BNB Smart Chain, Polygon, Arbitrum, Optimism, Base, Avalanche, Fantom, Cronos, Gnosis, zkSync Era, Linea, Scroll, Mantle.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the full risk profile for USDC on Ethereum.

{
"contractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"chain": "ethereum"
}

To screen several tokens at once, use contractAddresses with a list and set chain to the network they live on. All addresses in a run are looked up on the same chain.

Input reference

NameTypeRequiredDescriptionExample
contractAddressstringone of theseA single token contract address (0x + 40 hex).0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
contractAddressesarrayone of theseA list of token contract addresses to analyze in one run.["0x6982508145454ce325ddbe47a25d4ec3d2311933"]
chainstringnoEVM chain the contracts live on. Default ethereum. One of: ethereum, bsc, polygon, arbitrum, optimism, base, avalanche, fantom, cronos, gnosis, zksync, linea, scroll, mantle.bsc
maxTokensintegernoMaximum number of contracts to process this run. Free Apify accounts are capped at 10.100
proxyConfigurationobjectnoOptional proxy. The source is open, so a proxy is not required.{ "useApifyProxy": false }

Output reference

One row per token contract. Booleans are true, false, or null when the source does not report the check.

FieldTypeDescription
chainstringChain the token was queried on
chainIdnumberNumeric EVM chain id
contractAddressstringToken contract address
token_namestringToken name
token_symbolstringToken ticker symbol
riskScorenumberDerived overall risk, 0 to 100 (higher is riskier)
riskLevelstringDerived level: low, medium, high, critical
riskFlagsarrayHuman-readable risk findings
total_supplystringTotal supply (exact string)
holder_countnumberNumber of holders
creator_addressstringContract creator address
creator_balancestringCreator token balance (exact string)
creator_percentnumberCreator share of supply (percent)
owner_addressstringContract owner address
owner_balancestringOwner token balance (exact string)
owner_percentnumberOwner share of supply (percent)
is_open_sourcebooleanContract source is open/verified
is_proxybooleanContract is a proxy (upgradeable logic)
is_mintablebooleanNew supply can be minted
can_take_back_ownershipbooleanOwnership can be reclaimed after renouncing
owner_change_balancebooleanOwner can change holder balances
hidden_ownerbooleanHidden owner detected
selfdestructbooleanContract can self-destruct
external_callbooleanContract makes external calls
is_honeypotbooleanToken is a honeypot (cannot be sold)
honeypot_with_same_creatorbooleanCreator has deployed other honeypots
buy_taxnumberBuy tax (percent)
sell_taxnumberSell tax (percent)
transfer_taxnumberTransfer tax (percent)
cannot_buybooleanBuying is blocked
cannot_sell_allbooleanSelling the full balance is blocked
slippage_modifiablebooleanTax/slippage can be modified by the owner
is_anti_whalebooleanAnti-whale max transaction/holding limit exists
anti_whale_modifiablebooleanAnti-whale limit can be modified
trading_cooldownbooleanTrading cooldown is enforced
personal_slippage_modifiablebooleanPer-address slippage/tax can be set
is_blacklistedbooleanBlacklist function present
is_whitelistedbooleanWhitelist function present
transfer_pausablebooleanTransfers can be paused
is_in_dexbooleanToken trades on a DEX
is_in_cexbooleanToken is listed on a centralized exchange
cex_listarrayCentralized exchanges where the token is listed
trust_listbooleanToken is on the source trusted list
other_potential_risksarrayOther potential risks flagged
notestringAdditional note from the source
top10HolderPercentnumberCombined share held by the top 10 holders (percent)
lpHolderCountnumberNumber of liquidity-pool token holders, if reported
holdersarrayTop holders [{address, tag, is_contract, is_locked, balance, percent}]
observedAtstringWhen the record was collected (ISO)
errorstringError message, or null on success

How the risk score works

The score starts at 0 and adds weighted points for each dangerous property found. The largest weights go to a confirmed honeypot and to "cannot sell all", followed by owner-can-change-balance, self-destruct, hidden owner, high or modifiable taxes, mint and take-back-ownership controls, pausable transfers, closed source, and heavy holder concentration. The total is capped at 100 and mapped to a level: low (0 to 14), medium (15 to 39), high (40 to 69), critical (70 to 100). Each contributing property also produces a plain-English string in riskFlags. The score is a screening aid built from the source's on-chain checks, not financial advice.

Run via API and CLI

Run via the Apify API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~token-security-risk-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"contractAddress":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","chain":"ethereum"}'

Run via the Apify CLI:

apify call scrapers_lat/token-security-risk-scraper \
--input='{"contractAddresses":["0x6982508145454ce325ddbe47a25d4ec3d2311933"],"chain":"ethereum"}'

Fetch results

Download the run's dataset items as JSON:

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"

Add format=csv or format=xlsx for spreadsheet formats. The dataset id is returned in the run response as defaultDatasetId.

Billing and limits

This actor is billed pay per result. You are charged once for each token that returns a full risk profile (the result event). Rows with an error (invalid address, or no security data available for the contract) are never charged. Free Apify accounts are capped at 10 tokens per run; upgrade for higher volumes. A run also stops emitting billable rows once your configured maximum spend for the run is reached, so you never pay beyond your limit.

FAQ and troubleshooting

Which chains are supported? Ethereum, BNB Smart Chain, Polygon, Arbitrum, Optimism, Base, Avalanche, Fantom, Cronos, Gnosis, zkSync Era, Linea, Scroll and Mantle. Set the chain input to the network your contracts live on.

Why did a contract come back with "No security data available"? The source has no security analysis for that address on the selected chain. This is common for very new contracts, non-token contracts, or an address on the wrong chain. These rows are unbilled.

Are the tax numbers percentages? Yes. buy_tax, sell_tax and transfer_tax are returned as numeric percents, so 0.15 from the source becomes 15.

Why are some fields null? The source only reports checks that apply to a given contract. A field is null when the check was not evaluated or does not apply (for example, owner_address on a renounced contract).

Does a low risk score mean a token is safe? No. The score is a screening signal from on-chain checks. Always combine it with your own research. This is not financial advice.

Can I screen many tokens at once? Yes. Pass a list in contractAddresses. Each contract is looked up individually to make sure none are dropped, so large lists take longer.

More scrapers at scrapers.lat.