FAQ

Common questions about Sieve.

Which chains does Sieve support?

Ethereum mainnet (the default), Base, OP Mainnet, Unichain, and World Chain. Each syncs over its own devp2p network with no RPC provider. Set the chain key at the top of sieve.toml.

Can one instance index several chains at once?

No. The sync pipeline is built for the chain in chain = and dispatched once at startup, so it is one chain per process. Run one instance per chain, each with its own config, database, and ports.

Can I reuse my 0.1.x database with 0.2.0?

No. 0.2.0 pins each database to its chain and requires a verified-frontier marker that older databases do not carry, so they are refused at startup. Use a fresh database or sieve reset. From then on, Sieve’s internal metadata schema migrates automatically; your own config-driven tables are created with CREATE TABLE IF NOT EXISTS, so reshaping an existing table is still a manual step.

If peers are anonymous, why trust the data?

Sieve does not trust any single peer. The canonical hash of each segment has to be confirmed by an absolute quorum of distinct peers, the header chain to that tip is checked link by link, and transaction, receipt, ommer, and withdrawals roots are recomputed from every block body. No quorum, no commit.

Can I filter by non-indexed event parameters?

Not currently. Sieve filters at sync time using Ethereum log topics (topic0 to 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, so 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, API port, database, and config. Space the P2P ports by 2, since some chains bind discv5 on port + 1. Cap workers per instance so the sum stays at or below the host’s core count. Speed is not affected by the port; Sieve discovers peers outbound.