FAQ
Common questions about Sieve.
Can I filter by non-indexed event parameters?
Not currently. Sieve filters at sync time using Ethereum log topics (topic0–topic3), which only contain indexed parameters. Non-indexed parameters are decoded and stored in Postgres, but can’t be filtered before insertion. You can filter them after the fact using SQL or the GraphQL API.
What happens if two contracts emit events with the same name but different parameters?
No collision. Topic0 is the keccak256 hash of the full event signature including parameter types — Transfer(address,address,uint256) and Transfer(address,address,uint256,uint256) produce different topic0 hashes. Sieve also filters by contract address first, so even identical events on different contracts are fully isolated.
Can I run multiple Sieve instances on the same machine?
Yes. Each instance needs its own P2P port, database, and config. Use --p2p-port or [p2p] port in TOML to avoid port conflicts. Speed is not affected — Sieve discovers peers outbound.