FORENSIAWeb3 forensicsOpen workspace

Addresses, wallets and contracts

The three words people mix up most, and why the difference decides what a record can prove.

4 min read · Foundations

An address is an identifier on a ledger. It is not a person, and it is not a wallet. A wallet is software or hardware that holds keys; one wallet can control thousands of addresses, and one person can use many wallets.

#Accounts that keys control

On Ethereum-style networks an externally owned account is controlled by a private key. Whoever can sign with that key can move what the account holds. The ledger records the signature being valid. It does not record who was holding the device.

#Accounts that code controls

A contract is an address whose behaviour is defined by code stored on the chain. It cannot start a transaction on its own. It runs when something calls it. A contract can hold funds, move them according to its rules, and call other contracts.

The two kinds can overlap. A key-controlled account can store a short pointer that delegates its behaviour to a contract's code (EIP-7702). Forensia reads that pointer as a delegated wallet, not as a contract.

  • An address identifies an account, not an owner.
  • Control of a key is not the same as identity.
  • A contract does what its code allows, which may be changed if it is upgradeable.