Want your smart contracts to communicate with off-chain systems reliably and efficiently? Events are the standard way to publish structured signals from the EVM so indexers, wallets, and monitoring tools can react without changing on-chain state.
What you'll learn
This lesson explains why Solidity events exist and how they connect on-chain execution to off-chain listeners. You will learn how to declare events, how emit creates a log entry in the transaction receipt, and why logs differ from contract storage. The lesson covers indexed parameters (up to three), how topics and the event signature enable efficient filtering and Bloom-based lookups, and how anonymous events change topic layout. You’ll also learn gas cost considerations for topics vs data, how logs are exposed via JSON-RPC and node APIs, and why emitted events do not persist if the transaction reverts. Finally, we map events into common off-chain flows: indexers, listeners, debugging, and auditing.
Who this is for
Intermediate Solidity developers who already understand require/assert and basic contract execution semantics. Best for engineers instrumenting contracts, building indexers, or improving observability and integrations.
Key topics covered
- Event declaration and syntax in Solidity
- Emitting events and how logs are stored in transaction receipts
- Indexed parameters, topics, and Bloom filter indexing
- Data vs topics: gas and storage trade-offs
- Visibility: logs accessible off-chain but not stored in contract state
- Event-driven architecture for indexers, listeners, and monitoring