Subgraph
Senddy's indexed on-chain data for efficient querying.
Overview
Senddy uses an on-chain indexing service to index blockchain events. This provides efficient querying of commitments, nullifiers, deposits, and pool state without requiring direct blockchain node access.
What's indexed
Core data
- Pool state — Global pool configuration, nullifier accumulator, leaf count, total deposits and withdrawals
- Deposits — Individual deposit records with their lifecycle (pending, consumed)
- Commitments — Note commitments with their leaf index in the Merkle tree
- Nullifiers — Published nullifiers with accumulator state
- Spend events — Spend operations including nullifiers consumed, commitments created, and proof hashes
- Shield events — Shield operations linking deposits to new private commitments
Financial data
- Withdrawals — Withdrawal events with recipient addresses and amounts
- Fees — Relayer fee payment records
- Asset statistics — Per-asset totals for deposits, withdrawals, and active balance
- Daily aggregates — Volume and transaction counts by day
Strategy data
- Strategy events — Yield strategy operations including deposits, withdrawals, and harvests
How it's used
The indexer serves two primary purposes:
Client sync
The sync engine uses the indexed data to efficiently scan for new commitments and nullifiers relevant to a user's keys. Instead of scanning every block, the client queries the indexer for new data since its last sync point.
Pool monitoring
The indexed data provides aggregate statistics about the pool's health, volume, and yield performance.