sonnyonsol.xyz

How to Tell If an Address Is a Wallet or a Smart Contract

You can usually tell by checking whether the address has any deployed code associated with it on the blockchain. A wallet address (externally owned account, or EOA) has no code. A smart contract address has code stored at that location. Most block explorers show this difference clearly on the address page.

Why the distinction matters

Sending tokens to a wallet is straightforward. Sending tokens to a contract may trigger unexpected behavior - the contract could reject the transfer, lock the tokens, or execute additional logic. Knowing which type you're dealing with helps you avoid mistakes like sending ERC-20 tokens to a contract that cannot return them.

The Simplest Check: Look for "Contract" or "Wallet" Label

Open the address on any block explorer (Etherscan, BscScan, Solscan, etc.). The page header or summary section almost always displays one of these labels:

This label is the quickest answer. If you see neither, proceed to the next method.

Step-by-Step: verify using the explorer's code tab

Most EVM-compatible explorers (Etherscan, BscScan, PolygonScan, etc.) include a dedicated code section.

  1. Go to the address page.
  2. Find the tab or section labeled Code, Contract, or Bytecode.
  3. If you see a block of code (or a message like "Contract Source Code Verified"), the address is a smart contract.
  4. If you see a message like "This address does not have source code" or the tab is missing entirely, and the page shows no other contract indicators, it is likely a wallet.

Note: Some explorers hide the Code tab if the address is clearly a wallet. In that case, the page often shows only transaction history and balance.

Alternative method: check the transaction history

A wallet address typically shows only outgoing and incoming transactions that it initiated or received. A contract address will often show:

If you see a transaction with "Contract Creation" as the method, the address is a contract. If every transaction is a simple transfer or approval, it is likely a wallet.

For Non-EVM Chains (Solana, Bitcoin, etc.)

The concept is similar but the explorer interface differs.

Edge cases and caveats

What if you still can't tell?

Some explorers allow you to query the blockchain directly via their API. For EVM chains, call eth_getCode on the address. If the result is 0x (empty), it's a wallet. If it returns any bytecode, it's a contract. Tools like Etherscan's "Get Code" button do this automatically.

Summary

Check Wallet (EOA) Smart Contract
Explorer label "Address" or "Wallet" "Contract"
Code tab Missing or says "No source code" Shows code or bytecode
Transaction types Simple transfers Internal calls, events, creation
Blockchain data No code at address Code exists at address

When in doubt, look for the presence of code. No code means a private key controls it. Code means the blockchain logic controls it. That distinction is the entire answer.

Not financial advice. sonnyonsol.xyz publishes market data and general information about staring robot. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.

Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.

Back to block explorers