Agent Skills: QuickNode Webhooks Events

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/quicknode-webhooks-events

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/quicknode-pack/skills/quicknode-webhooks-events

Skill Files

Browse the full folder contents for quicknode-webhooks-events.

Download Skill

Loading file tree…

plugins/saas-packs/quicknode-pack/skills/quicknode-webhooks-events/SKILL.md

Skill Metadata

Name
quicknode-webhooks-events
Description
"QuickNode webhooks events \u2014 blockchain RPC and Web3 infrastructure\

QuickNode Webhooks Events

Overview

Set up QuickNode Streams for real-time on-chain event processing with custom filters and webhook delivery.

Prerequisites

  • QuickNode account with Streams access
  • HTTPS webhook endpoint

Instructions

Step 1: Create a Stream via Dashboard

1. Dashboard > Streams > Create Stream
2. Select chain: Ethereum Mainnet
3. Filter: Contract events for specific address
4. Destination: Webhook URL
5. Set payload format: JSON

Step 2: Handle Stream Events

import express from 'express';

const app = express();
app.post('/webhooks/quicknode', express.json(), async (req, res) => {
  const events = req.body;
  for (const event of events) {
    console.log(`Block: ${event.blockNumber}`);
    console.log(`TX: ${event.transactionHash}`);
    console.log(`Topics: ${event.topics}`);
    // Process on-chain event
    await processBlockchainEvent(event);
  }
  res.status(200).json({ received: true });
});

Step 3: Filter by Contract Events

// Stream filter function (runs on QuickNode infrastructure)
function main(data) {
  const targetContract = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'; // USDC
  const transferTopic = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
  
  return data.streamData.filter(tx => {
    return tx.logs?.some(log =>
      log.address.toLowerCase() === targetContract.toLowerCase() &&
      log.topics[0] === transferTopic
    );
  });
}

Output

  • Real-time blockchain event streaming
  • Custom filter functions for specific contracts/events
  • Webhook delivery for processed events

Error Handling

| Issue | Cause | Solution | |-------|-------|----------| | No events received | Filter too restrictive | Test with broader filter first | | Duplicate events | Block reorganization | Implement idempotency by tx hash | | Webhook timeout | Slow processing | Return 200 immediately, process async |

Resources

Next Steps

Optimize performance: quicknode-performance-tuning