Onchain Wallet Holder Enrichment Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
Onchain Wallet Holder Enrichment Scraper
Enrich a list of crypto wallet addresses with on-chain data across 7+ EVM chains and Solana. For each address you get native token balance, ERC-20 holdings, transaction history, ENS name, risk flags (OFAC sanctions list / Tornado Cash interactions), and social handles — all in a single structured output row per wallet per chain.
Use Cases
- Crypto VC due diligence — profile LP wallet histories, concentration risk, and counterparty networks before a deal
- Sales prospecting — identify whale wallets for custody and B2B crypto services
- Compliance screening — flag OFAC-sanctioned or Tornado Cash-linked addresses before onboarding
- Airdrop targeting — find addresses that meet eligibility criteria (balance thresholds, protocol interactions)
- NFT / DeFi analytics — aggregate holder enrichment for a contract's top holders
What You Get
| Field | Description |
|---|---|
address |
Wallet address (checksummed EVM or Solana base58) |
chain |
Chain queried (ethereum, bsc, polygon, arbitrum, base, avalanche, solana) |
native_balance |
Native token balance in whole units (ETH, BNB, MATIC, etc.) |
native_balance_usd |
Approximate USD value using live CoinGecko pricing |
erc20_holdings |
JSON array of ERC-20 token positions: symbol, address, balance |
first_tx_date |
Date of first transaction on this chain |
last_tx_date |
Date of most recent transaction |
tx_count |
Total transactions sampled (up to 200 per run) |
unique_counterparties |
Number of unique addresses interacted with |
total_gas_spent_usd |
Estimated total gas fees paid in USD |
labels |
Auto-applied labels: whale, sanctioned |
ens_name |
ENS reverse-resolved name (Ethereum only) |
farcaster_handle |
Farcaster username if registered for this address |
risk_flags |
OFAC-sanctioned or tornado-cash-interaction flags |
enriched_at |
ISO 8601 timestamp when the record was produced |
Input
Required
| Field | Description |
|---|---|
walletAddresses |
One or more EVM (0x…) or Solana addresses to enrich |
chains |
EVM chains to query per address: ethereum, bsc, polygon, arbitrum, base, avalanche |
Optional
| Field | Default | Description |
|---|---|---|
etherscanApiKey |
— | Your Etherscan API key (5 req/s with key vs. 1 req/s without) |
bscscanApiKey |
— | BscScan API key for BSC enrichment |
polygonscanApiKey |
— | Polygonscan API key for Polygon enrichment |
includeErc20 |
true |
Fetch ERC-20 token balances |
includeNfts |
false |
Fetch NFT holdings (ERC-721/1155) |
resolveEns |
true |
Reverse-resolve ENS name (Ethereum only) |
checkRiskFlags |
true |
Check OFAC sanctions and Tornado Cash interactions |
maxItems |
0 (unlimited) |
Cap on output records |
Rate Limits and API Keys
Without API keys the actor runs at the Etherscan free-tier rate (~1 request/second per endpoint). For high-volume enrichment (1,000+ wallets), supply your own explorer API keys — all are free to register.
To get a free Etherscan API key: register at etherscan.io/register, then generate a key at etherscan.io/myapikey.
Multi-Chain Output
Each walletAddresses × chains combination produces a separate output row. Enriching 2 addresses across 3 chains yields 6 rows. Solana-format addresses are enriched on Solana automatically.
Example Input
{
"walletAddresses": [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
],
"chains": ["ethereum"],
"includeErc20": true,
"resolveEns": true,
"checkRiskFlags": true
}
Example Output
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"chain": "ethereum",
"native_balance": 1250.34,
"native_balance_usd": 4187638.20,
"erc20_holdings": "[{\"symbol\":\"USDC\",\"address\":\"0xa0b86991...\",\"balance\":50000}]",
"first_tx_date": "2021-01-10",
"last_tx_date": "2026-05-15",
"tx_count": 200,
"unique_counterparties": 87,
"total_gas_spent_usd": 4312.55,
"labels": "[\"whale\"]",
"ens_name": "vbuterin.stateofus.eth",
"farcaster_handle": null,
"risk_flags": null,
"enriched_at": "2026-05-27T10:00:00.000Z"
}
Notes
- ERC-20 balances are derived from raw token transfer events. Very active wallets may show approximate values if activity exceeds the 200-transfer sample window.
- USD values use CoinGecko pricing fetched at run start.
- Tornado Cash and OFAC flag checks use publicly available on-chain data only.
- The
airdrop_eligibility,defi_positions,nft_trading_stats, anddao_membershipsfields are reserved for future enrichment modules and returnnullin the current version.