Identify the target embedded in an ERC-1167 clone
A fleet of tiny contracts may all delegate to one implementation. The standard minimal clone embeds its destination directly in runtime bytecode.
Split the canonical runtime
Read the deployed code with eth_getCode. The canonical 45-byte ERC-1167 sequence has the prefix and suffix below. Between them lie exactly 20 bytes of implementation address.
363d3d373d3d3d363d73
<20 bytes>
5af43d82803e903d91602b57fd5bf3
Decode those middle bytes and fetch code at the resulting address at the same block. This is a byte-level match against deployed runtime. Deployment transaction input also includes initialization code and needs different treatment.
Inspect per-clone state at the clone
Delegation executes implementation code in each clone’s storage context. Two clones with identical runtime can have different owners or balances. For a getter, call the clone address. A mismatch with the canonical byte pattern requires further inspection because optimized variants exist. eips.ethereum.org EIP-1167