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.