In this track: Read logs and failures
advanced · 4 MIN READ

Logs inside a receipt

A receipt places surviving log records in transaction context.

LET’S PICTURE IT

A case file groups several records under the same completed procedure.

SEE IT FOR YOURSELF
From an emitted Transfer event to a receipt logStep 1 / 4
From an emitted Transfer event to a receipt logToken executionApply coded rulesUpdate relevant balancesEmit Transferfrom · to · valueA structured logA reverted execution portion does not keep its emitted logsTransfer(address,address,uint256)Topic 0: 0xddf252ad…b3efFull digest · 32 bytesEvent topic zero and a function selector use different lengthsTopic 1from addressIndexedTopic 2to addressIndexedDataraw valueNot indexedThis diagram is specifically the common ERC-20 Transfer layoutReceipt logTopics + dataBlock contextApplication viewDecoded fieldsImplementation still mattersThe local event tool does not query or authenticate a deployed token

A token implementation may update balances and emit its standard Transfer event. State and the emitted record are related but distinct.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

Separate receipt from transaction input

Transaction input requests an action, while receipt logs describe emitted records that survived execution. Reading calldata does not automatically reveal every log produced.

Inspect each emitter

One transaction can call several contracts, producing logs with different emitting addresses. Do not assign every log to the transaction’s direct destination.

Keep order and block context

Receipt logs have an execution order and appear in block context. A reorganization can change which transaction inclusion remains part of the accepted chain.

Distinguish logs from normal return values

Ordinary transaction receipts do not provide all function return values or complete internal traces. Logs are only the records that code explicitly emitted and retained.

Inspect the example

event Transfer(address indexed from, address indexed to, uint256 value)

topic 0: 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
topic 1: 0x0000000000000000000000000000000000000000000000000000000000000001
topic 2: 0x0000000000000000000000000000000000000000000000000000000000000002
data: 0x0000000000000000000000000000000000000000000000000000000000000064

Toy emitter; from address 1; to address 2; raw amount 100.
No token decimals or verified token identity are implied.

This single log sketch would be one item within a larger receipt.

TURN UNDERSTANDING INTO PRACTICEOpen the Event decoder →
QUICK CHECK · NO PRESSURE

Can one receipt include logs from multiple contracts?

Your progress stays in this browser.
Keep exploring the original referenceSolidity documentation ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.