✅ Master Event Subscriptions

Understand WebSocket subscriptions, filtering, and real-time dApps

Listen for smart contract events in real-time

✓ Key Takeaways

🎯 Core Concepts

  • 📡
    WebSocket subscriptions replace polling: Open persistent connection, node pushes events when they happen. Instant updates, 10x lower cost, zero wasted bandwidth. All production dApps use this.
  • 🔍
    Filter aggressively, always: Unfiltered subscriptions = 50,000 events/min = app crash. Always filter by address and/or event signature. Reduces noise by 99.9%, keeps app performant.
  • ♻️
    Lifecycle management is critical: Subscribe on mount, unsubscribe on unmount. Store subscription IDs, clean up in useEffect return. Leaked subscriptions = memory leaks + rate limiting.
  • 🔄
    Handle disconnections gracefully: WebSockets fail. Implement exponential backoff (1s, 2s, 4s, 8s), resubscribe after reconnection, consider failover to backup providers. Resilience is non-negotiable.
  • 🏗️
    Production architecture patterns: Queue events (don't process synchronously), handle idempotently (events can duplicate), batch DB writes, monitor subscription health. Scales from 10 to 10,000 events/min.
  • 🎯
    Real-world use cases: Wallet trackers (monitor user activity), price feeds (aggregate DEX swaps), NFT listeners (track collection transfers), DAO alerts (governance events). All follow same pattern: filter → subscribe → handle.

📚 Production Examples

MetaMask / Rainbow (Wallets)

Subscribe to Transfer events for user address. Instant notifications: "Received 1000 USDC from Bob". Filters: address = null, topics include user as sender/receiver.

Uniswap / CoinGecko (Prices)

Subscribe to Swap events on DEX pools. Calculate real-time prices from reserves. Filters: specific pool addresses, Swap event signature. Updates every block.

OpenSea / Blur (NFT)

Subscribe to Transfer + Sale events for collections. Show "Bored Ape #1234 sold for 50 ETH" instantly. Filters: collection addresses, Transfer + OrderFulfilled events.

Tally / Snapshot (Governance)

Subscribe to ProposalCreated, VoteCast events. Send Discord alerts: "New proposal: Reduce fees to 0.2%". Filters: Governor contract, specific event signatures.

🎓 Test Your Knowledge

Take a 5-question quiz to verify your understanding of event subscriptions, filtering, lifecycle management, and production patterns.