Block time is not wall-clock time: finality, reorgs, timestamps
· 16 min read
An ERC-20 token leaving a wallet does not necessarily mean the wallet owner submitted the transfer transaction or approved that particular recipient. The owner may previously have granted another address authority to spend tokens through an allowance. A signed permit can create the same authority even though the owner never broadcasts an approval transaction.
That distinction matters in fraud, commercial, and probate matters. The blockchain can establish that a token balance changed, but the investigator still must separate the transaction sender, token owner, authorized spender, recipient, and signature author before drawing conclusions about human intent.
In an ordinary top-level transfer of a blockchain's native asset, such as ETH, the transaction sender signs a transaction containing its destination and value. Contract execution can produce additional native-asset movements, so even that record may require a trace. ERC-20 tokens add another layer because the token contract maintains the balances.
The ERC-20 token standard defines two relevant transfer paths. A holder can call transfer(to, value) from the holder's own address. Alternatively, another address can call transferFrom(from, to, value) after the token owner has authorized that spender. Both paths can produce the same Transfer event showing tokens moving from the owner's balance to the recipient.
A block explorer's token-transfer display therefore answers an accounting question: which token contract recorded a debit, a credit, and an amount? It does not, by itself, answer who signed the outer transaction or why the debit was authorized. For the foundational transaction fields, see how to read a blockchain transaction. The unique issue here is delegated token authority.
A defensible analysis identifies each role separately rather than using "sender" for all of them:
transferFrom call, this is the from argument.transferFrom call, this is the immediate caller seen by the token contract.Transfer event.These roles can collapse into fewer addresses. An owner may call transfer directly. In a routed transaction, the owner may call an application contract, that contract may be the approved spender, and the token contract may debit the owner through transferFrom. In a disputed delegated transfer, the owner's address may appear only as the debited account.
The next question is attribution to a person. An address-level finding does not establish who controlled the address at the relevant time. That requires the separate analysis described in understanding wallet ownership evidence.
Under ERC-20, approve(spender, value) sets the amount that a spender may withdraw from the owner's account. Calling approve again overwrites the existing allowance for that owner-spender pair. The standard's allowance(owner, spender) function reports how much the spender is still allowed to withdraw.
An approval for a specific amount bounds the spender's authority by that value, subject to prior uses and the token's implementation. An approval set to the maximum uint256 value is commonly treated as effectively unlimited because it may support repeated withdrawals. Standard ERC-20 approval data identifies a spender and amount, not the later recipient or business purpose.
The events also have limits. ERC-20 requires an Approval event after a successful approve call and a Transfer event when tokens move. It does not require an Approval event every time transferFrom consumes allowance. An investigator should not assume the latest visible Approval event equals the remaining allowance immediately before a disputed transfer.
The key sequence is authority first, use second. A useful reconstruction proceeds as follows:
transfer, transferFrom, or an intermediary-contract call. Do not rely solely on an explorer's summary label.Approval events and transactions involving the same owner, spender, and token. Determine whether authority arose from approve, a permit, or a token-specific mechanism.transferFrom calls, replacements, revocations, and failed calls. Where available, query contract state immediately before execution.Proxy contracts and upgrades can change the relevant code over time. The correct question is what logic governed the token at the disputed block, not what a current block-explorer page displays today. Our evidence review work treats decoded explorer labels as leads to verify against contract data, not as substitutes for it.
ERC-2612 adds a permit function that can set an ERC-20 allowance from a signed message. The signed fields include the owner, spender, value, nonce, and deadline. The token contract verifies the signature, updates the allowance, increments the owner's nonce, and emits an Approval event if the standard's conditions are satisfied.
The permit caller can be any address. The owner can sign off-chain, while a relayer, application, spender, or unrelated address pays gas and submits the permit. The permit transaction sender is therefore not necessarily the signature author. The permit grants allowance; it does not prove that the owner submitted or separately approved a later transferFrom transaction.
ERC-2612 uses EIP-712 typed structured-data signing. Its domain can include a name, version, chain identifier, and verifying-contract address, helping distinguish similar messages intended for different applications or contracts. EIP-712 supplies the format and domain separation, but leaves replay protection to the application.
ERC-2612 uses an owner nonce that must match and then increments, plus a deadline after which the permit must revert. The deadline can be set so far out that the authorization is effectively nonexpiring. Examine the domain, nonce, and deadline together. A signature image or shortened wallet prompt does not establish the complete signed data.
Not every token with a function called permit implements ERC-2612 exactly. The standard itself notes preexisting variants with different fields and semantics. The analyst must use the deployed contract's code and ABI at the relevant block rather than forcing every signed approval into the ERC-2612 template.
A verified on-chain record can establish that contract execution changed token balances and emitted specified logs. Decoded input and traces can identify the outer transaction sender, immediate callers, owner argument, recipient, amount, and method. A valid permit can establish that a signature associated with the owner address covered the exact typed fields under the contract's rules.
Those facts do not prove that a particular human knowingly authorized the disputed transfer. They do not establish who possessed the key, what the wallet displayed, whether the signer understood the authority, or whether another person had device access. They also do not resolve consent, agency, capacity, mistake, breach of duty, or fraud. Those conclusions depend on governing law and evidence beyond the ledger.
Assume Wallet O holds 80,000 units of Token T. On January 4, O signs an ERC-2612 permit authorizing Contract S to spend up to 80,000 units, with a deadline six months later. Relayer R submits the permit and pays the gas. On February 12, Address A calls S, and S executes transferFrom(O, B, 30,000).
The February transfer shows Token T debited O and credited B during execution initiated by A. The trace may show S as the spender, while the January permit identifies R as its submitter. Neither transaction proves that the human associated with O selected B or understood that the signature let S choose a later recipient. The investigation should recover the typed message, identify who controlled O and A, inspect S's code and call parameters, and seek device and communications evidence.
Discovery should target the authorization event as closely as the transfer event. Useful requests and examination questions include:
Preserve timestamps, time zones, file metadata, and acquisition methods. Wallet prompts and local artifacts may disappear even though the on-chain record remains. The ConsensusIntel methodology explains how technical findings are separated from attribution opinions and legal conclusions.
Avoid language such as "the owner sent the tokens" unless the evidence actually establishes that proposition. A more precise formulation is:
Transaction X was signed by Address A. Its execution caused Token Contract T to emit a
Transferevent debiting Owner Address O and crediting Recipient Address B. The execution trace shows Spender Contract S calledtransferFrom. An earlier approval authorized S to spend up to V units from O. The on-chain evidence does not, without additional attribution evidence, establish who controlled A or O, what a human signer understood, or whether O intended this specific transfer.
If a permit is involved, the report should separately state whether the signature validated for the owner address, the exact fields covered, who submitted the permit transaction, and which later call exercised the allowance. This phrasing preserves strong technical conclusions while avoiding one of the common mistakes in cryptocurrency investigations: treating address activity as self-proving evidence of a person's identity or intent.
A: No. A Transfer event proves that the token contract recorded a movement from one address to another. If the movement resulted from transferFrom, an approved spender may have initiated it. The transaction input and execution trace are needed to identify the actual call path.
A: Not necessarily. A standard ERC-2612 permit authorizes a named spender up to a stated value, subject to a nonce and deadline. It does not name the eventual transfer recipient. The spender may use the resulting allowance in one or more later transactions within the authorization's bounds.
A: Yes. ERC-2612 does not tie the permit caller to the owner. Any address can submit a valid signed permit, while the token contract verifies that the signature corresponds to the owner and that the nonce and deadline conditions are satisfied.
A: The most useful evidence often includes the exact signed payload, wallet or device artifacts showing the signing context, records identifying who controlled each address, and communications about the spender and transaction purpose. Those materials address identity, knowledge, and intent that the ledger does not record.
If a disputed token transfer turns on delegated authority, contact ConsensusIntel to discuss the approval timeline, permit evidence, and limits of the available attribution.
· 16 min read
· 7 min read
· 10 min read
If your matter involves blockchain evidence, ConsensusIntel can help you evaluate your options.
Get in Touch