The Ethereum blockchain API enables developers to interact with the Ethereum network through standardized methods like JSON-RPC. One of the most critical use cases is retrieving events from smart contracts – essential for tracking blockchain activity, triggering off-chain processes, or monitoring dApp usage.
This article explains in detail how to extract these events using only the eth_getLogs
method – a core part of the Ethereum JSON-RPC specification. We’ll use NOWNodes as the infrastructure provider to query Ethereum logs.
What Are Ethereum Smart Contracts?
Smart contracts in Ethereum are self-executing pieces of code deployed to the Ethereum blockchain. They operate on the Ethereum Virtual Machine (EVM) and can manage digital assets, enforce rules, or automate workflows without intermediaries.
These smart contracts running on Ethereum emit events – on-chain logs that allow external systems to observe and respond to what happens inside the blockchain. For example, a Transfer
event might be emitted every time a token is sent between addresses.
Events are vital for:
- Frontend interfaces to reflect state changes
- Backends to react to blockchain transactions
- Auditing and analytics systems to track user or contract behavior
Using eth_getLogs in the Ethereum Blockchain API
The eth_getLogs
method is part of the JSON-RPC interface exposed by Ethereum nodes. It allows you to query logs that match a specific filter – including historical data. This makes it highly valuable for indexing or reacting to past events.
Key Benefits:
- Queries historical blockchain events
- Supports advanced filtering via
topics
- Does not require WebSocket subscriptions or real-time infrastructure
Querying Events Using NOWNodes
NOWNodes provides hosted Ethereum nodes accessible via HTTPS. You don’t need to run your own full node – just send a properly formatted JSON-RPC request to retrieve contract logs.
Endpoint:
https://eth.nownodes.io
Method:
POST
Example Request (Raw Body):
{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}
Explanation:
- The
topics
array filters logs based on indexed event parameters or event signature hashes. - In this example, only the
topics
filter is used. - Additional fields like
address
,fromBlock
, ortoBlock
can be added, but here we focus exclusively on the minimal version usingeth_getLogs
.
Sample Response
{
"jsonrpc": "2.0",
"id": 74,
"result": []
}
If no logs match the criteria, an empty array is returned. Otherwise, you’ll get a list of log objects, each including:
address
: the smart contract address that emitted the eventtopics
: array of indexed parameters (including event signature hash)data
: non-indexed parameters (raw data)blockNumber
,transactionHash
,logIndex
, etc.
Why Only eth_getLogs?
The Ethereum blockchain API offers multiple methods to interact with contract events, but eth_getLogs
is the only method suitable for historical data retrieval. Compared to alternatives (like eth_subscribe
), it offers:
- Full control over block range and filters
- Stateless, repeatable queries
- Compatibility with HTTP-based infrastructure (no WebSocket required)
It is ideal for backend systems that poll blockchain data, analytics dashboards, and data indexing pipelines.
Using NOWNodes as Your Ethereum API Provider
With NOWNodes, you can access Ethereum nodes without managing your own infrastructure. Benefits include:
- Fast and reliable Ethereum blockchain API
- Access to
eth_getLogs
and other RPC methods - Easy integration into server-side or cloud apps
NOWNodes also supports 110+ networks (e.g., Bitcoin, Polygon), making it a solid option for cross-chain applications.
Final Thoughts
If you’re working with smart contracts in Ethereum and need to access event logs programmatically, eth_getLogs
is your go-to method. Whether you’re building an analytics tool, a notification service, or a dApp backend – it gives you efficient, precise access to blockchain events.
Using Ethereum blockchain API via NOWNodes allows you to scale your application quickly without the overhead of running a node.
Next steps:
- Sign up for an API key at nownodes.io
- Send your first
POST
request tohttps://eth.nownodes.io
- Integrate
eth_getLogs
into your application backend - Have any questions? Contact our support via official Telegram channel
For developers building serious infrastructure around ethereum smart contracts, understanding and correctly using eth_getLogs
is essential.