---
title: "Create a new webhook"
method: POST
path: "/v0/token/hooks/{chain}"
tags: ["Token"]
---

# Create a new webhook

`POST /v0/token/hooks/{chain}`

Creates a webhook subscription for a chain to receive real-time token scan updates.

## Path parameters

- `chain` 'arbitrum' | 'avalanche' | 'base' | 'bsc' | 'ethereum' | 'optimism' | 'polygon' | 'zora' | 'solana' | 'starknet' | 'starknet-sepolia' | 'stellar' | 'linea' | 'degen' | 'zksync' | 'scroll' | 'blast' | 'soneium-minato' | 'base-sepolia' | 'bitcoin' | 'abstract' | 'soneium' | 'ink' | 'berachain' | 'unichain' | 'ronin' | 'sui' | 'hedera' | 'hyperevm' | 'xlayer' | 'monad' | 'megaeth' | 'tempo' | 'sei' | 'kaia' | 'tron' | 'robinhood' | 'flare', required — The chain name

## Request body

- HookRequest
  - `url` string, uri, required
  - `shared_secret_key` string, nullable — Optional shared secret key (32 characters), used to calculate the HMAC signature
  - `filter` union — Filter for webhook updates
    - TokenAddressFilter
      - `filter_type` 'token_address' — Type of filter applied to the webhook updates
      - `token_addresses` string[], required — List of up to 100000 token addresses to filter webhook updates
    - TokenTypeFilter
      - `filter_type` 'token_type' — Type of filter applied to the webhook updates
      - `token_type` 'Fungible' | 'NonFungible', required — Type of token to filter

## Response `201`

Successful Response

- Hook
  - `url` string, uri, required
  - `shared_secret_key` string, nullable — Optional shared secret key (32 characters), used to calculate the HMAC signature
  - `chain` 'arbitrum' | 'avalanche' | 'base' | 'bsc' | 'ethereum' | 'optimism' | 'polygon' | 'zora' | 'solana' | 'starknet' | 'starknet-sepolia' | 'stellar' | 'linea' | 'degen' | 'zksync' | 'scroll' | 'blast' | 'soneium-minato' | 'base-sepolia' | 'bitcoin' | 'abstract' | 'soneium' | 'ink' | 'berachain' | 'unichain' | 'ronin' | 'sui' | 'hedera' | 'hyperevm' | 'xlayer' | 'monad' | 'megaeth' | 'tempo' | 'sei' | 'kaia' | 'tron' | 'robinhood' | 'flare', required — The chain name
  - `active` boolean, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Host not reachable
- `422` — Validation Error

---

[API](https://skmtc.net/blockaid-official/apis/blockaid-api.md) · [All operations](https://skmtc.net/blockaid-official/apis/blockaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/blockaid-official/blockaid-api/versions/17c41f337b2e/schema)
