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

# Create an alert

`POST /v4/subscription`

/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' | 'berachain-mainnet' | 'bch-mainnet' | 'bch-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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' | 'bsc-mainnet' | 'bsc-testnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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' | 'bsc-mainnet' | 'bsc-testnet' | 'bitcoin-mainnet' | 'bitcoin-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'cro-mainnet' | 'doge-mainnet' | 'doge-testnet' | 'ethereum-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'litecoin-core-mainnet' | 'litecoin-core-testnet' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | 'solana-mainnet' | 'solana-devnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-mainnet' | 'ripple-mainnet' | 'ripple-testnet' | '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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'fantom-testnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'mocachain-devnet' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - 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-holesky' | 'ethereum-mainnet' | 'ethereum-sepolia' | 'fantom-mainnet' | 'flare-coston' | 'flare-coston2' | 'flare-mainnet' | 'flare-songbird' | 'kaia-mainnet' | 'kaia-kairos' | 'klaytn-baobab' | 'klaytn-cypress' | 'monad-testnet' | 'optimism-mainnet' | 'polygon-amoy' | 'polygon-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. Only available on TRON and EVM for now (v4).
        - `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). Only available on TRON and EVM for now (v4).
    - `templateId` 'enriched' | 'enriched_with_raw_data' | 'legacy' | '68b825be1aa0da023d4c9018 (custom template)' — Configure the response format. Only available on TRON and EVM for now (v4).
  - CreatePriceChangeFixedSubscriptionV4 — Chain-agnostic price alert; fires once when the price moves ±`percentage`% from its value at creation. 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` PriceChangeFixedAttributes, required — One-time price-move alert. The reference price is captured at creation; the alert fires ONCE when the price touches ±`percentage`% of it (intraminute highs/lows count), then becomes terminal (status `TRIGGERED` — immutable, excluded from `?status=active`). Evaluation starts with the first full 1-minute candle after creation, so the earliest possible fire is ~1–2 minutes after the alert is created.
      - `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).
      - `percentage` number, required — Move size in percent (> 0). Must be below 100 when `direction` includes DOWN — a ≥100% drop cannot occur.
      - `direction` 'UP' | 'DOWN' | 'BOTH', required — Which price movements fire the alert. `BOTH` watches both directions.
      - `referenceType` 'FIXED', required — Reference model. `FIXED` — the price at creation; fires once.
      - `url` string, required — URL of the endpoint, where HTTP POST request will be sent.
  - CreatePriceChangeTimeframeSubscriptionV4 — Chain-agnostic price alert; fires when the price moves ±`percentage`% from the current HOUR/DAY/WEEK/MONTH opening price, once per direction per period, re-arming every period. 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` PriceChangeTimeframeAttributes, required — Recurring price-move alert. The reference is the OPENING price of the current period and resets at every period rollover. Fires at most once per direction per period (intraminute highs/lows count) and re-arms automatically each new period; stays active forever.
      - `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).
      - `percentage` number, required — Move size in percent (> 0). Must be below 100 when `direction` includes DOWN — a ≥100% drop cannot occur.
      - `direction` 'UP' | 'DOWN' | 'BOTH', required — Which price movements fire the alert. `BOTH` watches both directions.
      - `referenceType` 'TIMEFRAME', required — Reference model. `TIMEFRAME` — the opening price of the current period; re-arms every period.
      - `timeframe` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH', required — Reference period. Period starts are UTC-aligned: top of the hour / 00:00 / Monday 00:00 / 1st 00:00.
      - `url` string, required — URL of the endpoint, where HTTP POST request will be sent.
  - CreatePriceChangeConstantSubscriptionV4 — Chain-agnostic price alert on an absolute price level; fires on every close-confirmed crossing of the level, forever. 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` PriceChangeConstantAttributes, required — Absolute price-level alert ("notify me when the price goes above/below 72000"). Active forever — fires EVERY time the 1-minute price closes across the level (close-confirmed; intraminute wicks through the level do not fire) and re-arms automatically when the price closes back on the other side. A level already breached at creation stays quiet until the price crosses back over it.
      - `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).
      - `value` number, required — Absolute price level to watch, quoted in USDT (e.g. 72000).
      - `direction` 'UP' | 'DOWN' | 'BOTH', required — Which price movements fire the alert. `BOTH` watches both directions.
      - `referenceType` 'CONSTANT', required — Reference model. `CONSTANT` — a user-supplied absolute price level; fires on every close-confirmed crossing, forever.
      - `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.net/tatum/apis/blockchain-data.md) · [All operations](https://skmtc.net/tatum/apis/blockchain-data/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tatum/blockchain-data/versions/8622ee4b8fae/schema)
