Back to all articles

How to Identify Known Entities Behind an Ethereum Address

Learn how to look up an Ethereum address, interpret entity labels, check their context, and handle unknown attribution with a practical API example.

October 24, 2026 5 min read
Ethereum address connected to an attributed entity and role labels, with a separate evidence check before drawing conclusions

Ethereum address attribution connects a public address with a known service, organization, or protocol using available evidence. To investigate an address, confirm the network, run a lookup, read the entity and role labels separately, and check the context before drawing a conclusion. A label can help explain an address; it cannot prove who currently controls it or identify every person who uses a service.

This guide walks through a real CryptoLabel response and shows how to request the same information in an application. If you only need to run a lookup, use the Ethereum address lookup tool.

1. Confirm the address and the network

An Ethereum address is written as 0x followed by 40 hexadecimal characters. Copy the whole address from its original source and check the intended network. Several EVM networks use the same address format: the shape of an address alone does not tell you which network’s activity you are examining.

A syntactically valid address is not an identity check. It does not establish that a business controls the address, that a payment request is genuine, or that interacting with it is safe.

Ethereum distinguishes externally owned accounts (EOAs) from contract accounts. The Ethereum account documentation explains these roles and why an account is not the same thing as a wallet application. There are also nuances: EIP-7702 allows EOAs to delegate execution to code. Avoid reducing every investigation to “code means a contract, no code means a person.”

2. Run an Ethereum address lookup

Open the Ethereum lookup and enter the address. For a reproducible request, use the public REST endpoint:

curl --request GET \
  --url 'https://cryptolabel.io/api/v1/address/ethereum/0x22af984f13DFB5C80145E3F9eE1050Ae5a5FB651' \
  --header 'Accept: application/json' \
  --header 'User-Agent: AttributionExample/1.0 (contact@example.com)'

The following is an excerpt of the response checked on October 24, 2026, not a guarantee that the data will remain unchanged:

{
  "query": {
    "chain": "ethereum",
    "address": "0x22af984f13DFB5C80145E3F9eE1050Ae5a5FB651"
  },
  "address": {
    "type": "eoa",
    "model": "account_based"
  },
  "entity": {
    "name": "Kraken",
    "category": "exchange"
  },
  "labels": [
    {
      "type": "exchange_cold_wallet",
      "category": "cex",
      "sourceType": "public",
      "method": "aggregation",
      "status": "active"
    }
  ]
}

The full response also includes readable field names and an explorer URL. The excerpt keeps only the fields needed for this walkthrough. You can inspect the current result in the Playground.

3. Read the entity and the address role separately

In this snapshot, entity.name is Kraken and its category is exchange. That is CryptoLabel’s current public attribution to a service. The label exchange_cold_wallet describes a more specific attributed role for the address.

Those fields answer different questions:

Field What to take from it What not to infer
address.type The recorded account type The identity of a natural person
entity.name The known service or organization attribution Cryptographic proof of current control
labels[].type A recorded role or characteristic A complete account of every use of the address
sourceType and method How the label is classified by source and collection method A source citation or confidence score that the response does not provide
status The label’s recorded status A guarantee that attribution can never become outdated

An exchange infrastructure label does not identify the exchange customer who sent funds to it. Nor does it mean that every address connected by a transaction belongs to that exchange. For the underlying terminology, see what crypto wallet labels mean.

4. Check the evidence and the surrounding context

Use the address’s explorer link to inspect the same address on Ethereum, not a visually similar address or another network. Compare public annotations with a relevant official service publication when one exists, and record what you actually checked and when.

Etherscan’s explanation of public name tags and labels is useful background on explorer annotations. A name tag is useful evidence, but copying the same annotation across multiple sites does not create independent corroboration.

CryptoLabel’s sourceType: public and method: aggregation describe metadata categories. They are not a list of underlying source documents. If a decision requires stronger evidence, obtain it separately rather than treating those values as proof. Keep the observed label, source context, lookup date, and your own conclusion distinct.

5. Handle unknown attribution explicitly

Not every address has a known entity or a useful label. An unknown entity, an unknown category, or an empty labels array means the service does not currently provide that particular information. These states are not interchangeable: an entity can be named while its category is unknown, and an address can have no role labels even when the entity is known.

In an application, display “No known attribution” where appropriate and keep the address available for further checking. Do not turn unknown results into “safe,” “private owner,” or “not an exchange.” Do not reject the entire response just because one optional piece of context is missing. The API reference documents the response fields and enum values.

6. Add attribution to your application

The endpoint works without a key for up to 1,000 anonymous lookups per IP per UTC calendar day. The anonymous quota resets at 00:00 UTC. To associate requests with your projects and view usage, create a free account, generate a key in your dashboard, and send it in X-API-Key:

curl --request GET \
  --url 'https://cryptolabel.io/api/v1/address/ethereum/0x22af984f13DFB5C80145E3F9eE1050Ae5a5FB651' \
  --header 'Accept: application/json' \
  --header "X-API-Key: ${CRYPTOLABEL_API_KEY}" \
  --header 'User-Agent: YourAppName/1.0 (contact@example.com)'

Set CRYPTOLABEL_API_KEY to your generated key in your server environment before running this version. Do not put a private API key into public browser code. Adding a key does not change the endpoint URL or the response format.

Handle non-success responses explicitly. An invalid or revoked key returns HTTP 401; it does not silently fall back to anonymous access. Exhausting the anonymous daily quota returns HTTP 429 with code ANONYMOUS_DAILY_LIMIT_EXCEEDED and a Retry-After header. Check input errors against the documented error responses, and do not retry rejected input in a tight loop.

For a broader integration overview, see the blockchain address labeling API. If you are still separating wallet, address, and key concepts, start with what a crypto wallet address is.

Back to all articles

Continue reading

Related articles