Address Classification
Address Classification
GET
/
v2
/
hashdit
/
address-classify
curl --get \
--url https://service.hashdit.io/v2/hashdit/address-classify \
--header 'X-API-KEY: YOUR_API_KEY' \
--data-urlencode 'chain_id=56' \
--data-urlencode 'address=0x55d398326f99059ff775485246999027b3197955' \
--data-urlencode 'strict=false'
{
"code": "0",
"status": "ok",
"data": {
"address": "bsc:0x55d398326f99059ff775485246999027b3197955",
"address_type": "Contract",
"classification": "ERC20",
"classification_id": 101,
"details": {
"is_verified": true,
"proxy_impl_address": "",
"proxy_impl_type": ""
},
"is_erc20": "1",
"scanned_time": 1766048799,
"status": 200,
"timestamp": "2025-12-18T09:06:43.166765",
"verify_status": "verified"
}
}
Synchronous endpoint
Classify one address through query parameters. This GET variant returns the same classification result as the POST endpoint and is useful for simple server-side lookups.
HashDit-owned query fields use
snake_case. Equivalent camelCase input remains accepted for compatibility.Quick Start
curl --get \
--url https://service.hashdit.io/v2/hashdit/address-classify \
--header 'X-API-KEY: YOUR_API_KEY' \
--data-urlencode 'chain_id=56' \
--data-urlencode 'address=0x55d398326f99059ff775485246999027b3197955' \
--data-urlencode 'strict=false'
{
"code": "0",
"status": "ok",
"data": {
"address": "bsc:0x55d398326f99059ff775485246999027b3197955",
"address_type": "Contract",
"classification": "ERC20",
"classification_id": 101,
"details": {
"is_verified": true,
"proxy_impl_address": "",
"proxy_impl_type": ""
},
"is_erc20": "1",
"scanned_time": 1766048799,
"status": 200,
"timestamp": "2025-12-18T09:06:43.166765",
"verify_status": "verified"
}
}
Request Fields
string
required
Your HashDit API key. Missing or invalid keys return HTTP
401. Keep the key on a trusted server.string
required
Network identifier for the address, such as
"56". See Supported Chains.string
required
Blockchain address to classify.
boolean
default:"false"
Apply the strict latency budget. When processing exceeds that budget, the API returns a service-level timeout result instead of continuing to wait.
Response Fields
string
required
API result code.
"0" indicates success; non-zero values indicate an error.string
required
Request status. A successful completed response returns
"ok".string
Broad address family, commonly
EOA or Contract.string
Best available classification label.
integer
HashDit classification identifier. Prefer the string label unless your integration explicitly maps IDs.
boolean
Whether verified source or equivalent verification metadata was found.
string
Proxy implementation address when detected, otherwise an empty string.
How to Use the Response
- Use
address_typefor the broad distinction between an EOA and a contract. - Use
classificationfor the more specific contract category, such asERC20orProxy. - For proxies, read
details.proxy_impl_addressanddetails.proxy_impl_typeonly when populated. - A missing, empty, or
Unverifiedclassification is not a safe verdict. Use a security endpoint when you need a risk decision.
Errors and Retry Guidance
| HTTP or status | Meaning | Client action |
|---|---|---|
400 | Unsupported chain or invalid address | Correct the query; do not retry unchanged. |
401 | Missing or invalid API key | Fix authentication; do not retry unchanged. |
422 | Query validation failed | Correct field names or values. |
429 | Rate limit exceeded | Retry with exponential backoff and jitter. |
500 | Transient service failure | Retry a bounded number of times with backoff. |
status: "notok" with strict mode | Strict latency budget was exceeded | Retry without strict, or handle the timeout within your product’s latency policy. |
Was this page helpful?