Skip to main content
Turn raw addresses into meaningful. human-readable information
  • human-readable labels
  • compliance signals
  • protocol grouping
  • enriched analytics
Rather than0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48You get:
  • name tag: USD Coin
  • protocol: Circle
  • category: stablecoin
  • risk flags (if any)
  • **ecosystem tags **(CEX, DeFi, grants, etc.)

Handles

HandleWhy
GET https://api.blockscout.com/api/v1/metadata/tagsGet all available tag types (OFAC, CEX, protocol, hacks, etc.)
GET https://api.blockscout.com/api/v1/metadata/addresses/{address}Get all metadata for a specific address
GET https://api.blockscout.com/api/v1/metadata/addresses?addresses=...Batch enrich multiple addresses
GET https://api.blockscout.com/api/v1/metadata/search?q=...Search metadata (protocols, entities, labels)

Examples

Wallet / explorer UX (name tags)

curl "https://api.blockscout.com/api/v1/metadata/addresses/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48?apikey=YOUR_KEY"

Compliance (OFAC / sanctions)

curl "https://api.blockscout.com/api/v1/metadata/search?q=ofac&apikey=YOUR_KEY"

Exchange detection (CEX)

curl "https://api.blockscout.com/api/v1/metadata/search?q=binance&apikey=YOUR_KEY"

Hack / exploit detection

curl "https://api.blockscout.com/api/v1/metadata/addresses/0x...&apikey=YOUR_KEY"

Protocol discovery

curl "https://api.blockscout.com/api/v1/metadata/search?q=uniswap&apikey=YOUR_KEY"

TypeScript example

const API_KEY = process.env.API_KEY!;
const ADDRESSES = [
  "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
];

async function getJson(url: string) {
  const res = await fetch(url);
  return res.json();
}

async function main() {
  const url =
    `https://api.blockscout.com/api/v1/metadata/addresses?` +
    `addresses=${ADDRESSES.join(",")}&apikey=${API_KEY}`;

  const data = await getJson(url);

  for (const item of data.items ?? []) {
    console.log(item.address);
    console.log("name:", item.name);
    console.log("tags:", item.tags?.map((t: any) => t.name).join(", "));
    console.log("");
  }
}

main();