Skip to main content

Webhooks REST API

Updated on
Apr 08, 2026

OpenAPI Specificationโ€‹

View the complete OpenAPI specification for this REST API.

Overviewโ€‹

The Webhooks REST API enables you to deploy and manage your Webhooks using a REST API interface.

Adding, updating, and managing your Webhooks is quick and easy!

Accessโ€‹

To access the Webhooks REST API, you will first need to create an API key. Your API key should be set as an x-api-key header with your requests.

API Base URL: https://api.quicknode.com/

Supported Networksโ€‹

The Webhooks REST API is available on these chains and networks:

ChainMainnetTestnets
0gโœ…Galileo Testnet
Abstractโœ…Testnet
Arbitrumโœ…Sepolia
Arbitrum Novaโœ…
ArcTestnet
Avalanche C-Chainโœ…Fuji
B3โœ…Sepolia
Baseโœ…Sepolia
Beraโœ…Bepolia
Bitcoinโœ…Coming Soon
Bitcoin Cashโœ…Testnet
Blastโœ…Sepolia
BNB Smart Chainโœ…Testnet
Celoโœ…
Cyberโœ…Sepolia
Dogecoinโœ…
Ethereumโœ…Hoodi, Sepolia
Fantomโœ…
Flareโœ…Testnet
Flowโœ…Testnet
Fraxtal (Select Access Chain)โœ…
Gnosisโœ…
Gravityโœ…
Hederaโœ…Testnet
Hemiโœ…Testnet
Hyperliquid EVMโœ…
Hyperliquid Hypercoreโœ…
Immutable zkEVMโœ…Testnet
Injectiveโœ…Testnet
Inkโœ…Sepolia
Japan Open Chainโœ…
Kaiaโœ…Testnet
Lensโœ…Testnet
Lineaโœ…
Lisk (Select Access Chain)โœ…
Litecoinโœ…
Mantleโœ…Sepolia
Mode (Select Access Chain)โœ…
Monadโœ…Testnet
Morphโœ…Hoodi
Optimismโœ…Sepolia
Peaqโœ…
Plasmaโœ…Testnet
Polygonโœ…Amoy
Polygon zkEVMโœ…Cardona Testnet
Redstone (Select Access Chain)โœ…
SaharaTestnet
Scrollโœ…Testnet
Seiโœ…Testnet
Solanaโœ…Devnet, Testnet
Soneiumโœ…
Sonicโœ…
Sophonโœ…
Stellarโœ…Testnet
Storyโœ…Aeneid Testnet
Tempoโœ…Testnet
Tronโœ…
Unichainโœ…Sepolia
Vanaโœ…Moksha Testnet
Worldchainโœ…Sepolia
X Layerโœ…
Xaiโœ…Sepolia
XRP Ledgerโœ…Testnet
XRPL EVMโœ…Testnet
zkSyncโœ…Sepolia
Zoraโœ…

API Endpointsโ€‹

The Webhooks REST API provides the following endpoints for managing your webhooks:

Creating Webhooksโ€‹

Webhooks are created using predefined templates that cover common use cases:

Advanced Filtering

If you need a filter that isn't covered by our templates, please contact support to request a new template. For advanced filtering capabilities with custom JavaScript functions, consider using Streams.

Available Templatesโ€‹

  • evmWalletFilter: Monitor specific EVM wallet addresses
  • evmContractEvents: Monitor specific contract events
  • evmAbiFilter: Monitor contracts using ABI definitions
  • solanaWalletFilter: Monitor specific Solana account addresses
  • bitcoinWalletFilter: Monitor specific Bitcoin wallet addresses
  • xrplWalletFilter: Monitor specific XRP Ledger wallet addresses
  • hyperliquidWalletEventsFilter: Monitor specific Hyperliquid wallet addresses
  • stellarWalletTransactionsSourceAccountFilter: Monitor specific Stellar wallet addresses

How to use templates: When creating a webhook from a template, the templateArgs object contains the template-specific properties directly. The template type is specified in the URL path (/webhooks/template/{templateId}), and the templateArgs contains the actual configuration data for that template. You can provide either inline values (e.g. wallet addresses directly) or reference names of kv store lists.

Example: For the evmWalletFilter template, you would:

  • Use URL: /webhooks/template/evmWalletFilter
  • Include in body (inline): "templateArgs": { "wallets": ["0x1234..."] }
  • Or (list reference): "templateArgs": { "walletsListName": "my_wallets_list" }

Managing Webhooksโ€‹

Controlling Webhooksโ€‹

Authenticationโ€‹

All API requests require authentication using your Quicknode API key. Include your API key in the request headers:

x-api-key: YOUR_API_KEY

Error Handlingโ€‹

The API returns standard HTTP status codes:

  • 200 OK: Request successful
  • 201 Created: Resource created successfully
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Invalid or missing API key

Webhook Configurationโ€‹

When creating or updating webhooks, you can configure the following parameters:

  • Name: A descriptive name for your webhook
  • Network: The blockchain network to monitor
  • Notification Email: Email address for termination notifications
  • Destination Attributes: Object containing:
    • URL: The endpoint where data will be sent
    • Security Token: Token for webhook authentication
    • Compression: Optional gzip compression for payloads
  • Status: Whether the webhook is active or paused
  • Template Args: Template-specific arguments (for template-based webhooks)

Template-Based Webhooksโ€‹

Template-based webhooks provide a simplified way to create common webhook configurations:

evmWalletFilterโ€‹

Monitor specific EVM wallet addresses:

{
"templateArgs": {
"wallets": ["0x1234...", "0x5678..."]
}
}

evmContractEventsโ€‹

Monitor specific contract events (both fields are optional, but at least one should be provided):

{
"templateArgs": {
"contracts": ["0x1234..."],
"eventHashes": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}
}

solanaWalletFilterโ€‹

Monitor specific Solana accounts:

{
"templateArgs": {
"accounts": ["9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"]
}
}

bitcoinWalletFilterโ€‹

Monitor specific Bitcoin wallet addresses:

{
"templateArgs": {
"wallets": ["bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"]
}
}

evmAbiFilterโ€‹

Monitor contracts using ABI definitions (abi is required, contracts is optional):

{
"templateArgs": {
"abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"}]}]",
"contracts": ["0x1234..."]
}
}

xrplWalletFilterโ€‹

Monitor specific XRP Ledger wallet addresses:

{
"templateArgs": {
"wallets": ["rN7n3473SaZBCG4dFL83w7p1W9cgZw6]"]
}
}

hyperliquidWalletEventsFilterโ€‹

Monitor specific Hyperliquid wallet addresses:

{
"templateArgs": {
"wallets": ["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"]
}
}

stellarWalletTransactionsSourceAccountFilterโ€‹

Monitor specific Stellar wallet addresses:

{
"templateArgs": {
"wallets": ["GDQP2KPQGKIHYJGXNUIYOMHARUARCA7DJT5FO2FFOOUJ3B2BNQKFIGS"]
}
}

Using List Referencesโ€‹

Instead of providing inline values, you can reference kv store lists. This is useful for managing large sets of addresses:

{
"templateArgs": {
"walletsListName": "my_wallets_list"
}
}

For contract events with kv store lists:

{
"templateArgs": {
"contractsListName": "my_contracts_list",
"eventHashesListName": "my_event_hashes_list"
}
}

Advanced Filteringโ€‹

For advanced filtering capabilities with custom JavaScript functions, consider using Streams, which provides full support for custom filter functions. Streams allows you to write JavaScript-based filtering logic to process and filter blockchain data before delivery.

For more information about filter functions in Streams, see the Filters documentation.

Webhook Deliveryโ€‹

When a webhook is triggered, Quicknode sends a POST request to your specified URL with the filtered blockchain data. The payload includes:

  • data: The filtered blockchain events
  • metadata: Information about the webhook and delivery

Securityโ€‹

The recommended way to secure your Webhook's destination endpoint is by implementing HMAC verification. This cryptographic method ensures that the incoming messages are coming from Webhooks and haven't been tampered with. For detailed information on implementing HMAC verification, see our guide on Validating Incoming Streams Webhook Messages.

IP Allowlisting (Additional Security)โ€‹

As an additional security measure, you can restrict access to your destination endpoint to specific IP addresses. Webhooks delivers data from the following IP address:

141.148.40.227

By adding this IP to your allowlist, you can add an extra layer of security to ensure that only legitimate Webhooks traffic is accepted by your webhook server.

Getting Helpโ€‹

If you need assistance with the Webhooks REST API:

Share this doc