Token Security & Rug-Pull Risk Scraper (Multi-Chain EVM)
Pricing
from $12.00 / 1,000 token risk profile results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
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
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- How the risk score works
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
- Related scrapers
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
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
contractAddress | string | one of these | A single token contract address (0x + 40 hex). | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 |
contractAddresses | array | one of these | A list of token contract addresses to analyze in one run. | ["0x6982508145454ce325ddbe47a25d4ec3d2311933"] |
chain | string | no | EVM chain the contracts live on. Default ethereum. One of: ethereum, bsc, polygon, arbitrum, optimism, base, avalanche, fantom, cronos, gnosis, zksync, linea, scroll, mantle. | bsc |
maxTokens | integer | no | Maximum number of contracts to process this run. Free Apify accounts are capped at 10. | 100 |
proxyConfiguration | object | no | Optional 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.
| Field | Type | Description |
|---|---|---|
chain | string | Chain the token was queried on |
chainId | number | Numeric EVM chain id |
contractAddress | string | Token contract address |
token_name | string | Token name |
token_symbol | string | Token ticker symbol |
riskScore | number | Derived overall risk, 0 to 100 (higher is riskier) |
riskLevel | string | Derived level: low, medium, high, critical |
riskFlags | array | Human-readable risk findings |
total_supply | string | Total supply (exact string) |
holder_count | number | Number of holders |
creator_address | string | Contract creator address |
creator_balance | string | Creator token balance (exact string) |
creator_percent | number | Creator share of supply (percent) |
owner_address | string | Contract owner address |
owner_balance | string | Owner token balance (exact string) |
owner_percent | number | Owner share of supply (percent) |
is_open_source | boolean | Contract source is open/verified |
is_proxy | boolean | Contract is a proxy (upgradeable logic) |
is_mintable | boolean | New supply can be minted |
can_take_back_ownership | boolean | Ownership can be reclaimed after renouncing |
owner_change_balance | boolean | Owner can change holder balances |
hidden_owner | boolean | Hidden owner detected |
selfdestruct | boolean | Contract can self-destruct |
external_call | boolean | Contract makes external calls |
is_honeypot | boolean | Token is a honeypot (cannot be sold) |
honeypot_with_same_creator | boolean | Creator has deployed other honeypots |
buy_tax | number | Buy tax (percent) |
sell_tax | number | Sell tax (percent) |
transfer_tax | number | Transfer tax (percent) |
cannot_buy | boolean | Buying is blocked |
cannot_sell_all | boolean | Selling the full balance is blocked |
slippage_modifiable | boolean | Tax/slippage can be modified by the owner |
is_anti_whale | boolean | Anti-whale max transaction/holding limit exists |
anti_whale_modifiable | boolean | Anti-whale limit can be modified |
trading_cooldown | boolean | Trading cooldown is enforced |
personal_slippage_modifiable | boolean | Per-address slippage/tax can be set |
is_blacklisted | boolean | Blacklist function present |
is_whitelisted | boolean | Whitelist function present |
transfer_pausable | boolean | Transfers can be paused |
is_in_dex | boolean | Token trades on a DEX |
is_in_cex | boolean | Token is listed on a centralized exchange |
cex_list | array | Centralized exchanges where the token is listed |
trust_list | boolean | Token is on the source trusted list |
other_potential_risks | array | Other potential risks flagged |
note | string | Additional note from the source |
top10HolderPercent | number | Combined share held by the top 10 holders (percent) |
lpHolderCount | number | Number of liquidity-pool token holders, if reported |
holders | array | Top holders [{address, tag, is_contract, is_locked, balance, percent}] |
observedAt | string | When the record was collected (ISO) |
error | string | Error 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.
Related scrapers
- EVM Wallet Intelligence & Token Portfolio Scraper
- Bitcoin Address Intelligence Scraper
- Crypto Token Unlocks Scraper
More scrapers at scrapers.lat.
