---
title: "Create an alert"
method: POST
path: "/v4/subscription"
tags: ["Subscriptions"]
---

# Create an alert

`POST /v4/subscription`

## Request

- Base URL: `https://api.tatum.io`
- URL: `https://api.tatum.io/v4/subscription`
- Auth: API key in header `x-api-key`

/v4/subscription

**50 credits per sent Notification + 50 credits per day per alert**

Create and manage blockchain event notification alerts. This endpoint allows you to receive real-time webhook alerts for address activity, token transfers, and native currency transactions across supported blockchains.

**Tip:** Notifications are formatted using **Templates**. We recommend using the **enriched** template because it provides clean, human-readable enhanced data with token metadata. Learn more: 👉 [Learn more](https://docs.tatum.io/reference/createnotificationtemplate)

**Supported Notification Types:**

*   **ADDRESS\_EVENT** – Triggered for any address-level transaction or event.
*   **INCOMING\_FUNGIBLE\_TX / OUTGOING\_FUNGIBLE\_TX** – Detects ERC20 or equivalent token transfers.
*   **INCOMING\_NATIVE\_TX / OUTGOING\_NATIVE\_TX** – Detects native currency transfers (ETH, MATIC, etc.).

For more alert types & chain support, see: 👉 [Alerts Overview](https://docs.tatum.io/reference/notifications-supported-chains)

**Restrictions**

Each alert must be unique within your API key based on the following fields. If a matching alert already exists, creation will be rejected:

*   **Address alerts** (ADDRESS\_EVENT, INCOMING/OUTGOING\_NATIVE\_TX, etc.) – unique by `type + chain + address + url`
*   **Contract log alerts** (CONTRACT\_ADDRESS\_LOG\_EVENT) – unique by `type + chain + contractAddress + event + url`
*   **Block alerts** (FAILED\_TXS\_PER\_BLOCK) – unique by `type + chain + url`

To monitor the same address with different configurations (e.g. different conditions or finality), use a different webhook URL for each alert.

**Webhook Response Format**

_Recommended Default: `templateId = "enriched"`_

If you do not specify a custom template, the response will use the legacy format. However, the **enriched** template is recommended because it provides structured, human-readable fields and token metadata.

To learn about legacy format, custom templates, or `enriched_with_raw_data`, visit: 👉 [Learn more](https://docs.tatum.io/reference/createnotificationtemplate)

**Example: Enriched Template Webhook Payload**

  {
    "data": {
      "kind": "transfer",
      "blockHash": "0x1234567890abcdef...",
      "blockNumber": 18500000,
      "blockTimestamp": 1699123456,
      "txId": "0xabcdef1234567890...",
      "currency": "ETH",
      "txTimestamp": 1699123456,
      "from": "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6",
      "to": "0x8ba1f109551bD432803012645Hac136c",
      "value": "1000000000000000000",

      "contractAddress": "0xA0b86a33E6441b8c4C8C0C8C0C8C0C8C0C8C0C8C0C",
      "tokenId": "12345",

      "additionalData": {
        "gasUsed": "21000",
        "gasPrice": "20000000000"
      },

      "tokenMetadata": {
        "type": "nft",
        "decimals": 0,
        "symbol": "NFT",
        "name": "My NFT",
        "uri": "https://api.example.com/metadata/12345"
      },

      "subscriptionId": "64f1a2b3c4d5e6f7g8h9i0j1",
      "subscriptionType": "ADDRESS\_EVENT"
    },
    "location": "...",
    "scheme": "..."
  }

## Request body

- union
  - CreateAddressEventSubscriptionV4
    - `type` 'ADDRESS_EVENT', required: Type of the alert.
    - `attr` AddressTransactionAttributesV4, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'bch-mainnet' | 'bch-testnet' | 'berachain-mainnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `mempool` boolean: Flag indicating whether the alert should include mempool transactions. Only available on BTC blockchain.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateIncomingNativeSubscriptionV4
    - `type` 'INCOMING_NATIVE_TX', required: Type of the alert.
    - `attr` NativeAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingNativeSubscriptionV4
    - `type` 'OUTGOING_NATIVE_TX', required: Type of the alert.
    - `attr` NativeAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingFailedSubscriptionV4
    - `type` 'OUTGOING_FAILED_TX', required: Type of the alert.
    - `attr` FailedAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreatePaidFeeSubscriptionV4
    - `type` 'PAID_FEE', required: Type of the alert.
    - `attr` PaidFeeAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateIncomingInternalSubscriptionV4
    - `type` 'INCOMING_INTERNAL_TX', required: Type of the alert.
    - `attr` InternalAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingInternalSubscriptionV4
    - `type` 'OUTGOING_INTERNAL_TX', required: Type of the alert.
    - `attr` InternalAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateIncomingFungibleSubscriptionV4
    - `type` 'INCOMING_FUNGIBLE_TX', required: Type of the alert.
    - `attr` FungibleAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingFungibleSubscriptionV4
    - `type` 'OUTGOING_FUNGIBLE_TX', required: Type of the alert.
    - `attr` FungibleAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateIncomingNftSubscriptionV4
    - `type` 'INCOMING_NFT_TX', required: Type of the alert.
    - `attr` NftAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingNftSubscriptionV4
    - `type` 'OUTGOING_NFT_TX', required: Type of the alert.
    - `attr` NftAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateIncomingMultitokenSubscriptionV4
    - `type` 'INCOMING_MULTITOKEN_TX', required: Type of the alert.
    - `attr` MultiTokenAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateOutgoingMultitokenSubscriptionV4
    - `type` 'OUTGOING_MULTITOKEN_TX', required: Type of the alert.
    - `attr` MultiTokenAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateMintSubscriptionV4
    - `type` 'MINT_TX', required: Type of the alert. Fires when tokens (fungible, NFT or multitoken) are minted (transferred from the zero address) to the monitored address.
    - `attr` MintBurnAttributes, required: Additional attributes based on the alert type. At least one of `address` (fires for mints/burns involving this wallet) or `contractAddress` (fires for every mint/burn of this token) must be provided. When both are present, the alert fires only for mints/burns of the given token involving the given wallet.
      - `address` string: Blockchain address to watch.
      - `contractAddress` string: Address of the token contract whose mints and burns should be monitored.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateBurnSubscriptionV4
    - `type` 'BURN_TX', required: Type of the alert. Fires when tokens (fungible, NFT or multitoken) are burned (transferred to the zero or dead address) from the monitored address.
    - `attr` MintBurnAttributes, required: Additional attributes based on the alert type. At least one of `address` (fires for mints/burns involving this wallet) or `contractAddress` (fires for every mint/burn of this token) must be provided. When both are present, the alert fires only for mints/burns of the given token involving the given wallet.
      - `address` string: Blockchain address to watch.
      - `contractAddress` string: Address of the token contract whose mints and burns should be monitored.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateSwapSubscriptionV4
    - `type` 'SWAP_TX', required: Type of the alert. Fires when the monitored address is the sender or recipient of a decoded DEX swap (Uniswap V2/V3).
    - `attr` SwapAttributes, required: Additional attributes based on the alert type. `tokenAddress` optionally narrows the alert to swaps where the given token is bought or sold.
      - `address` string, required: Blockchain address to watch.
      - `tokenAddress` string: Address of a token contract; when provided, the alert fires only for swaps where this token is one of the two swapped assets.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateFailedTxsPerBlockSubscriptionV4
    - `type` 'FAILED_TXS_PER_BLOCK', required: Type of the alert.
    - `attr` FailedTxsPerBlockAttributes, required: Additional attributes based on the alert type.
      - `address` string, required: Blockchain address to watch.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'solana-devnet' | 'solana-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: Blockchain of the address.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreateContractAddressLogEventSubscriptionV4
    - `type` string, required: Type of the alert.
    - `attr` ContractAddressLogEventAttributesV4, required: Attributes including chain, event, and url.
      - `chain` 'arb-one-mainnet' | 'avalanche-mainnet' | 'base-mainnet' | 'base-sepolia' | 'berachain-mainnet' | 'bsc-mainnet' | 'bsc-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-kairos' | 'kaia-mainnet' | 'klaytn-baobab' | 'klaytn-cypress' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'robinhood-mainnet' | 'tezos-mainnet' | 'tezos-testnet' | 'tron-mainnet' | 'tron-testnet' | 'unichain-mainnet', required: The blockchain on which events should be monitored.
      - `contractAddress` string, required: Contract address on which event should be monitered.
      - `event` string, required: Event to watch. In case of EVM chains it is usually a hash of the event signature. In case of Tezos it is a name of the event and max length is not enforced.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.
      - `conditions` NotificationCondition[]: List of conditions that must be met for the notification to be sent. Supported only on the chains GET /v4/subscription/chains reports with finality true.
        - `field` 'value' | 'contractAddress' | 'from' | 'to' | 'tokenId' | 'tokenMetadata.type' | 'tokenMetadata.symbol', required: Field to evaluate.
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required: Comparison operator.
        - `value` string, required: Value to compare against.
    - `finality` 'confirmed' | 'final': Choose between speed (confirmed) and block confirmations on chain (final). Supported only on the chains GET /v4/subscription/chains reports with finality true.
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)': Configure the response format. Supported only on the chains GET /v4/subscription/chains reports with finality true.
  - CreatePriceChangeSubscriptionV4: Chain-agnostic price alert on a token's USDT price. Creating an exact duplicate of a live price alert returns 400 `price-alert.exists`. `finality`, `templateId` and `mempool` are not supported for price alerts.
    - `type` 'PRICE_CHANGE', required: Type of the alert.
    - `attr` PriceChangeAttributes, required: Price alert attributes. Evaluation runs on a 1-minute price feed, so a webhook arrives within ~1 minute of the market move. Touch-based alerts measured from the price at creation start with the first full 1-minute candle after creation.
      - `symbol` string, required: Ticker of the token to watch. Price alerts are chain-agnostic and USDT-quoted — the tracked pair is always `{symbol}USDT`. Must be one of the symbols supported by the Tatum pricing endpoints (the same set accepted by GET /v4/data/price-change).
      - `frequency` 'ONE_TIME' | 'RECURRING', required: `ONE_TIME` — fires once, then the alert becomes `TRIGGERED` (terminal, immutable, excluded from `?status=active` and `?status=paused`). `RECURRING` — keeps firing; how it re-arms depends on `alertCondition`.
      - `direction` 'UP' | 'DOWN' | 'BOTH', required: Which price movements fire the alert. `BOTH` watches both directions.
      - `alertCondition` union, required: Either `atPrice`, or `pctChange` together with `candleTimeFrame`.
        - PriceChangeAtPriceCondition: Fires when the price reaches an absolute level. ONE_TIME fires on the first touch of the level (intraminute highs/lows count) coming from the side the price was on at creation. RECURRING fires on EVERY 1-minute close across the level (intraminute wicks don't fire — anti-spam) and re-arms when the price closes back on the other side. A level already breached at creation stays quiet until the price crosses back over it.
          - `atPrice` number, required: Absolute price level to watch, quoted in USDT.
        - PriceChangePercentCondition: Fires when the price moves `pctChange` percent from the reference set by `candleTimeFrame` (intraminute highs/lows count). Both fields are required together.
          - `pctChange` number, required: Move size in percent (> 0). Must be below 100 when `direction` includes DOWN — a ≥100% drop cannot occur.
          - `candleTimeFrame` '1m' | '1h' | '1d' | '1w', required: What a `pctChange` move is measured from. `1m` — the price at creation; a RECURRING alert re-bases to the price at every fire and then follows the lowest price (for UP) / highest price (for DOWN) since, so each fire needs a fresh full move. `1h`/`1d`/`1w` — the opening price of the current candle (UTC: top of the hour / 00:00 / Monday 00:00); fires at most once per direction per candle.
      - `url` string, required: URL of the endpoint, where HTTP POST request will be sent.

## Response `200`

OK

- Id
  - `id` string: ID of the entity.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403`: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
- `500`: Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.dev/tatum/apis/blockchain-notifications.md) - [All operations](https://skmtc.dev/tatum/apis/blockchain-notifications/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/blockchain-notifications/revisions/925883906ce5?raw)
