Hashless vs. Ethereum RPC
Experienced blockchain developers will be familiar with the standard methods to retrieve transaction data from either commercial RPC providers or self-hosted Ethereum nodes.
There are excellent RPC/node providers (and open-source libraries to use them) available today. However, once you've obtained the low-level data available from Ethereum RPC methods, as a developer you are still responsible for:
- Decoding emitted events and function calls for contracts of interest (generally requires the developer to publish ABI definitions, usually in conjunction with source code, for all relevant contracts)
- Normalizing "standard" events and function calls into normative form (for example, handling Transfer events for NFTs or tokens that do not conform to the standard format) without data loss
- Determining which transactions are relevant to the address(es) or protocol(s) you are monitoring
- Mapping them into user-friendly and programmatically useful records for downstream use
In our experience, getting all of the above right presents a real challenge, even for transactions involving a single protocol. Performing this mapping consistently over the dozens, hundreds, or thousands of protocols that might be relevant to your application is incredibly difficult, and virtually impossible if some contracts are closed source or have unpublished ABIs.
Hashless solves this problem by taking a fundamentally different approach: one that works across all protocols and even works on transactions involving closed-source contracts.
Additionally, as described in Monitoring Transactions for an Address, Hashless maintains its own index from Ethereum addresses to transactions that allows the retrieval of all relevant transactions for an address with low latency. To get complete transaction coverage for an address with other solutions, you may need to inspect all transactions for the relevant time range (at significant cost) or else rely on indexes that cover specific kinds of Ethereum activity (such as log emissions) that may not capture the whole list of relevant transactions for an address.
As a convenience for developers coming from using regular RPC methods, we've provided a mapping of the RPC methods usually used for transaction analysis to Hashless API endpoints below.
Note that some RPC methods may require dozens or even hundreds of calls to retrieve all relevant data.
You will need access to an archive node with tracing enabled to access some of the endpoints listed below.
Retrieving Transaction Data for New Blocks
| RPC Method | Hashless API | Notes |
|---|---|---|
eth_getBlock | [List Transactions for Block] | Enable transaction hydration to get metadata for block transactions |
eth_getBlockReceipts | [List Transactions for Block] | Retrieves actual gas fees and per-transaction log emissions. Note: it may be more cost-effective for some use cases to use log filtering instead. |
trace_block or debug_traceBlock | [List Transactions for Block] | Retrieve internal smart contract interactions to understand transaction facilitators |
Updated about 1 year ago