Shows the broadest range of rindexer features in a single Rust project.
- Multi-contract: indexes 4 contracts (RocketPoolETH, a generic ERC20, UniswapV3Pool, USDT)
- Multi-network: Ethereum + Base
- Dual storage: PostgreSQL and CSV enabled simultaneously
- Event filtering: block-range-level event filtering
- Global contracts: defining a single contract (USDT) deployed across multiple chains
| Contract | Network | Events |
|---|---|---|
| RocketPoolETH | Ethereum | Transfer, Approval |
| ERC20 (generic) | Ethereum | Transfer, Approval |
| UniswapV3Pool | Base | Swap |
| USDT (global) | Ethereum + Base | Transfer, Approval |
PostgreSQL + CSV (both active at the same time)
- Copy
.env.exampleto.envand configure yourDATABASE_URL - Run
docker-compose up -dto start the Postgress instance in thedocker-compose.ymlfile - Run
cargo run(defaults to starting both the indexer and GraphQL API), optionally you can add the flags:--indexer, to only index the data or--graphql,--port=<PORT>to start the GraphQL API. - You can access the GraphQL playground with your created data at http://localhost:3001/playground. Run the query in the UI:
query Erc20TransfersPlusUniV3Swaps { allErc20Transfers(first: 3) { nodes { nodeId rindexerId contractAddress from to valueds txHash blockNumber blockTimestamp blockHash network txIndex logIndex } } allUniswapV3PoolSwaps(first: 3) { nodes { nodeId rindexerId contractAddress sender recipient amount0 amount1 sqrtPriceX96 liquidity tick txHash blockNumber blockTimestamp blockHash network txIndex logIndex } } }