Crypto Address Lookup
Look up any blockchain address for labels, sanctions status, risk scoring, and classification across supported chains.
Look up any blockchain address to get labels, sanctions status, risk scoring, and address classification across 18 supported chains.
1. What is Crypto Address Lookup?
The Crypto Lookup module lets you query any blockchain address and receive threat intelligence data: known labels, OFAC sanctions status, risk scoring, and address type classification (EOA, contract, etc.).
It combines static intelligence databases, community labels, live enrichment from on-chain data, and sanctions lists to provide a comprehensive risk profile.
- Labels - known identities from community, Arkham, and internal databases
- Sanctions - OFAC SDN list with authority and listing date
- Risk Score - 0–100 composite score with level (low, medium, high, critical)
- Address Type - EOA, contract, or unknown
- Categories - exchange, DeFi, bridge, mixer, scam, sanctioned, etc.
2. How to look up an address
From the search bar
Paste any blockchain address directly into the mlab search bar. EVM (0x...), Bitcoin (1.../3.../bc1...), and Tron (T...) addresses are automatically detected and routed to the crypto lookup page.
From the API
Use GET /api/v1/scan/crypto?address=...&chain=... with your API key. See the API documentation for full details.
From the MCP integration
Use the scan_crypto tool from any connected AI assistant. See the MCP documentation.
How the chain is determined
mlab identifies the address family by decoding the address, not by matching its shape. Bitcoin, Dogecoin and Tron addresses are base58check: they carry a version byte that names the chain outright, behind a checksum that is verified on the way. Bitcoin segwit and taproot carry their own bech32 checksum, TON ends in a CRC16, and Solana is identified by exclusion.
Every response says where the chain came from, in chain_source:
| Value | Meaning |
|---|---|
detected | Read out of the address itself. A fact. |
explicit | You passed chain. |
default | Nothing could decide, so Ethereum was assumed. Not a finding. |
EVM addresses: pass the chain
All 13 EVM chains share one address format, byte for byte, so nothing in a 0x…
address says which chain it belongs to. When chain_ambiguous is true, the
chain field is a default.
This matters more than it looks: labels are stored per chain, so looking up a
BNB Chain address as Ethereum returns no labels rather than an error. The
result looks clean instead of looking wrong. Pass chain=BSC whenever you know it.
Address checksums
address_info.checksum reports what the checksum told us, in four states rather
than a pass/fail:
| Value | Meaning |
|---|---|
valid | The checksum verifies. |
invalid | The address is malformed, almost always a typo. Funds sent to it are most likely lost. |
absent | The format carries no checksum (Solana, all-lowercase EVM). |
unverifiable | An EIP-55 mixed-case EVM address. Verifying it needs keccak256, which mlab does not carry. |
Neither absent nor unverifiable is a pass.
3. Supported chains
Every chain below is reachable from the search bar, the web module, the REST API and the MCP tool.
| Chain | ID | Layer | Token | Chain determined by |
|---|---|---|---|---|
| Ethereum | ETH | Layer 1 | ETH | default for 0x… |
| BNB Chain | BSC | Layer 1 | BNB | chain=BSC |
| Polygon | POLYGON | Layer 2 | POL | chain=POLYGON |
| Arbitrum | ARBITRUM | Layer 2 | ETH | chain=ARBITRUM |
| Optimism | OPTIMISM | Layer 2 | ETH | chain=OPTIMISM |
| Base | BASE | Layer 2 | ETH | chain=BASE |
| Avalanche | AVAX | Layer 1 | AVAX | chain=AVAX |
| Blast | BLAST | Layer 2 | ETH | chain=BLAST |
| Flare | FLARE | Layer 1 | FLR | chain=FLARE |
| Linea | LINEA | Layer 2 | ETH | chain=LINEA |
| Manta Pacific | MANTA | Layer 2 | ETH | chain=MANTA |
| Mantle | MANTLE | Layer 2 | MNT | chain=MANTLE |
| Sonic | SONIC | Layer 1 | S | chain=SONIC |
| Bitcoin | BTC | Layer 1 | BTC | the address |
| Solana | SOL | Layer 1 | SOL | the address |
| Tron | TRX | Layer 1 | TRX | the address |
| TON | TON | Layer 1 | TON | the address |
| Dogecoin | DOGE | Layer 1 | DOGE | the address |
Looking up several addresses at once
POST /api/v1/scan/crypto takes up to 100 addresses in one request, for a list
pulled out of a ransom note, a dump or a report.
curl -X POST "https://mlab.sh/api/v1/scan/crypto" \
-H "Authorization: token mlab_..." \
-H "Content-Type: application/json" \
-d '{"addresses": ["1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"], "chain": "BSC"}'chain is optional and applies to the whole batch, which is what you want for a
list of EVM addresses. Each address is metered separately; anything the daily
quota did not reach comes back under deferred rather than as an error, and an
address whose upstream call failed carries error: upstream_unavailable instead
of a verdict. Batch lookups require an authenticated caller.
4. Risk scoring
Each address receives a risk score from 0 to 100 based on its categories, labels, and sanctions status. The score is broken down into four levels to help triage decisions.
| Level | Score | Meaning |
|---|---|---|
| low | 0–29 | No known risk indicators |
| medium | 30–59 | Minor risk signals (e.g. bridge usage) |
| high | 60–79 | Significant risk indicators |
| critical | 80–100 | Mixer, scam, or sanctioned address |
Category risk weights
Categories directly influence the risk score:
| Category | Weight |
|---|---|
| eoa, contract, exchange, defi, nft_marketplace, multisig | 0 |
| bridge | 10 |
| mixer | 80 |
| scam | 90 |
| sanctioned | 100 |
5. Data sources
Intelligence layers
- Static data - curated labels for major exchanges, DeFi protocols, mixers, and bridges
- Community labels - ~83k labeled Ethereum addresses from the community
- Darklist - known phishing and scam addresses
- OFAC SDN - 651 sanctioned crypto addresses, updated daily
- Arkham Intel - live enrichment with on-demand lookups, cached locally
Address type detection
- EVM chains - uses
eth_getCodeto distinguish EOA from contract - Bitcoin / Dogecoin - prefix-based detection
- Solana - RPC account lookup
- Tron - API-based detection
- TON - API-based detection
6. Daily quotas
Crypto lookups share your organization's daily quota, which resets every 24 hours.
| Plan | Lookups / day |
|---|---|
| Anonymous | 3 |
| Free | 10 |
| Pro | 30 |
| Team | 100 |
| Enterprise | Unlimited |
Email (EML) Analysis
Transparent, analyst-oriented inspection of raw email (.eml) files to understand phishing, spoofing, and mail delivery behavior.
MAC Address Lookup
Decode a MAC address offline: vendor from the IEEE OUI registry, universal vs local administration, randomization, virtualization and the IPv6 address SLAAC would derive from it.