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.