Identity
Identity determines whether an address is a contract and identifies the entity that an address or contract belongs to. It currently provides contract detection; entity label lookup and behavior-based contract classification are in preparation.
Assets sent to a contract that cannot receive tokens are often locked and cannot be recovered. When you check before signing whether the recipient address is a contract, you can hold withdrawals to contract addresses until the contract is confirmed to be able to receive them. In institutional environments, you can use the result as an input to withdrawal address validation policies.
Use Cases
- Withdrawal OpsPre-check withdrawals to contract addresses
Before a withdrawal, check whether the recipient address is a contract, and hold withdrawals to contract addresses until you confirm they can receive tokens. This prevents incidents where assets are locked in a contract that cannot receive tokens.
- Service OpsValidate withdrawal address registration
Check whether an address is a contract when a customer registers a withdrawal address. You can route contract addresses to an additional verification process.
- Risk & ComplianceReview interaction addresses
Before an interaction, check the entity a contract belongs to by its label. If no label exists, estimate the type, such as DEX or bridge, with behavior-based classification. You can use the results as base data for allowlist and blocklist policies.
Available APIs
Contract Detection
- Data API
Is ContractDetermines whether an address is a contract30 CU - Data API
Is MintAddressDetermines whether an address is a token mint addressComing soon - RPC
eth_getCodeRetrieves the code at an address30 CU
Entity Identification
- Data API
getAccountLabelsRetrieves the entity and category labels of an addressComing soon - Data API
inferContractClassifies the type of a contract based on its behaviorComing soon