Skip to Content
WebhooksCreating a Webhook

Creating a Webhook

Create webhooks from the Webhooks section of the Spectrum dashboard. Choose the complete walkthrough for the webhook you want to create:

Both types support an HTTPS URL, Slack channel, or Telegram chat. See Destinations for complete Slack and Telegram bot setup.

Create an Address Activity webhook

Address Activity watches wallet and contract addresses for native, token, and NFT activity.

1. Enter details and choose a destination

Open Webhooks, click Create webhook, and select Address Activity. Enter a recognisable name, choose the chain, and configure one destination:

  • URL: enter a public HTTPS endpoint.
  • Slack: enter an xoxb- bot token and channel ID. Invite the bot to the channel first.
  • Telegram: enter the BotFather token and chat ID. Make sure the bot can post in the chat.

Create an Address Activity webhook and choose a destination

2. Add watched addresses

Enter every address you want to watch. A delivery fires when a watched address participates in matching activity. Press Enter after each address.

Add watched addresses

3. Select activity and tokens

Choose at least one activity category. You can optionally restrict ERC-20 activity to specific token contracts. See Activity Categories for the fields each category delivers.

Choose activity categories and token filters

4. Review and create

Review the chain, watched addresses, activity filters, destination, and retry policy, then click Create webhook.

Review the Address Activity webhook configuration

5. Save the signing key for a URL destination

For an HTTPS destination, Spectrum shows the signing key once. Copy it immediately and store it securely. If it is lost, rotate the key.

Save the signing key shown after creation

Slack and Telegram webhooks do not have signing keys; Spectrum authenticates to those providers with the bot token instead.

Create a Contract Events webhook

Contract Events watches logs emitted by one smart contract and selects events using ABI fragments, raw topic hashes, or both.

1. Enter details and choose a destination

Open Webhooks, click Create webhook, and select Contract Events. Enter a recognisable name, choose the chain, and configure one destination:

  • URL: enter a public HTTPS endpoint.
  • Slack: enter an xoxb- bot token and channel ID. Invite the bot to the channel first.
  • Telegram: enter the BotFather token and chat ID. Make sure the bot can post in the chat.

Create a Contract Events webhook and choose a destination

2. Add the contract address

Enter the emitting contract address. The dashboard currently supports one contract per Contract Events webhook. Only logs emitted by that contract match; an address inside an event argument does not count as the emitter.

Add the contract address for a Contract Events webhook

3. Add event filters

Paste compiler-JSON event ABI fragments, add raw topic0 hashes, or use both:

  • An ABI event lets Spectrum calculate the signature and decode matched logs into named args.
  • A raw topic hash matches the event signature but cannot decode its arguments without an ABI.
  • Leaving both lists empty matches every event emitted by the contract, including anonymous events.

After an ABI is parsed, select the events you want to watch. Only event fragments are accepted.

Provide an ABI, select decoded events, and add raw topic hashes

See Contract Events for selector behavior, indexed filters, decoding rules, and an example payload.

4. Verify the selected events

Review the calculated event signatures and raw topic hashes. This confirms exactly which emitted logs the webhook will match, then click Create webhook.

Verify selected contract events and topic hashes

5. Save the signing key for a URL destination

For an HTTPS destination, copy the one-time signing key and store it securely. Slack and Telegram webhooks use their bot token instead and do not have a signing key.

Your webhook is now live. For HTTPS destinations, implement delivery handling and retries and signature verification. Send a test delivery from the webhook page to confirm the destination works.

Editing and lifecycle

Open a webhook to change its name, destination credentials or target, filters, status, and retry policy. The chain and webhook type cannot be changed after creation.

  • Paused webhooks stop receiving new deliveries; set them back to active to resume.
  • Address changes take effect from the next processed block.
  • Contract Event filters are fully revalidated whenever they are replaced.
  • Changing a Slack channel, Telegram chat, or HTTPS URL changes the webhook destination; rotating only a bot token keeps the same target.
  • Deleting a webhook is permanent and removes its queued deliveries.

A duplicate active webhook with the same owner, chain, filter, and destination is rejected.