Tip: To create Notifications on the mainnet or testnet you can use your respective keys from the Dashboard.
2 credits per API call + credits spent on subscriptions themselves
Each subscription type consumes a different number of credits.
For Free plans, there is a monthly limit of sent webhooks, which is 1000.
If the webhook is sent unsuccessfully, it will be retried. The number of retries depends on the plan.
- Free Plan - 3 retries
- Paid plans - 10 retries
Create a subscription as an HTTP web hook.
The following subscription types are available:
- ADDRESS_TRANSACTION - Enable HTTP POST JSON notifications for any blockchain transaction (both incoming and outgoing) at a specified address. This notification applies to transactions in the native blockchain currency or with any type of blockchain tokens.
- For EVM-based blockchains (ETH), this web hook might be first invoked when a transaction appears in the mempool. In that case the webhook has a field "mempool" set to "true". Then it is invoked again once the transaction is added to a block.
- For the other blockchains, this webhook is invoked when a transaction is added to a block.
Free community plans can monitor up to 10 addresses per plan.
The following table describes the availability of this notification type on different blockchains and the credit consumption:
The request body of the POST request is a JSON object with the following structure:Chain Testnet/Mainnet Token assets support Plan limitation Credit consumption / day / address Solana Yes/Yes SOL, SPL and NFTs Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 50 credits / day / address Polygon Yes/Yes MATIC, ERC20, ERC721, ERC1155 Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 40 credits / day / address Bitcoin Yes/Yes BTC Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 5 credits / day / address Litecoin Yes/Yes LTC Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 7 credits / day / address Bitcoin Cash Yes/Yes BCH, only incoming transactions Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 5 credits / day / address Dogecoin Yes/Yes DOGE, only incoming transactions Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 7 credits / day / address Tron Yes/Yes Tron, TRC10/TRC20 Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 30 credits / day / address Binance Smart Chain Yes/Yes BSC, BEP20, ERC721, ERC1155 Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 40 credits / day / address Other chains Yes/Yes NATIVE, ERC20, ERC721, ERC1155 Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains 25 credits / day / address
{ "address": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ", // the address on which the transaction occurs; for EVM-based chains, this is the sender's address "txId": "2rdy3YCZHSwvpWtuDom1d4Jjy5UU9STLxF3ffXau6GToReDkfw8wEgX541fvzvh6btVC5D8iNapcKTXfPsoDBk7A", // the transaction ID "blockNumber": 110827114, // the block number; does not appear if the transaction is in the mempool (for EVM-based blockchains) "asset": "3gUeeR3BfVhukYJMwtHownRtRkGcf1bvwiV8TbKMZBVz", // the asset of the transaction: for token assets, this is the token address; for native blochckain assets, this is the name of the asset (for example, SOL) "amount": "1", // the amount of the asset that was credited to (+) or debited from (-) the address; for EVM-based chains, when "counterAddress" is present, the amount is always positive "tokenId": "1", // (ERC-721 / ERC-1155 only) the ID of the transferred token "type": "token", // the type of the transaction; can be either "native" or "token" "mempool": true, // (EVM-based blockchains only) if appears and set to "true", the transaction is in the mempool; if set to "false" or does not appear at all, the transaction has been added to a block "counterAddress": undefined // an optional counter party address of the transaction; for EVM-based blockchains, this is the recipient's address // UTXO based chains return without this parameter, since UTXO is many-to-many by design. "addressesRiskRatio": [ // (optional, subject to change; for Solana mainnet only) risk levels assigned to the addresses with which the address communicated within the transaction; the addresses are assessed using the AML/CFT solution by blockmate.io, see https://docs.blockmate.io/docs/risk-API/sources {"vTEfAhXTmvgFmepgfhzBbRrJ4EtUP9adbMJjpzLsDMk": 0}, {"zBbRrJ4EtUP9adbMJjpzLsDMkvTEfAhXTmvgFmepgfh": 100} ] }
5 credits are debited for each fired web hook. - CONTRACT_NFT_TXS_PER_BLOCK - Enable HTTP POST JSON notifications for any event of minting, transferring, or burning an NFT that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all NFT minting, transferring, or burning events from all smart contracts that got recorded into a block.
Free community plans can monitor 1 event across all blockchains per plan.
The availability of this notification type is the same across various blockchains with a credit consumption of 500,000 credits per day for each chain.
The request body of the POST request is a JSON object with the following structure:
{ "events": [ { "timestamp": 1661961758000, "from": "0x0000000000000000000000000000000000000000", "to": "0xfa4e7035b34294407e5df1603215983d65e5a773", "tokenId": "14671", "txId": "0x916fcf878656f7a3772317697e6d2740ac8b1b7dbe6d029aa79592fd72f3fb0b", "contractAddress": "0x55a2430e32dcebc3649120f26f917d1f0686f74c", "type": "erc721", "amount": "1", "logIndex": 578, "metadataURI": "https://graphigo.prd.galaxy.eco/metadata/0x55a2430e32dcebc3649120f26f917d1f0686f74c/14671.json" } ], "blockNumber": 32522207, "chain": "polygon-mainnet", "subscriptionType": "CONTRACT_NFT_TXS_PER_BLOCK" }
1 credit is debited for each fired web hook. - CONTRACT_MULTITOKEN_TXS_PER_BLOCK - Enable HTTP POST JSON notifications for any event of minting, transferring, or burning a Multi-Token that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all Multi Token minting, transferring, or burning events from all smart contracts that got recorded into a block.
Free community plans can monitor 1 event across all blockchains per plan.
The availability of this notification type is the same across various blockchains with a credit consumption of 500,000 credits per day for each chain.
The request body of the POST request is a JSON object with the following structure:
{ "events": [ { "timestamp": 1661961758000, "from": "0x85bd970cf0e49acd572f9c2d608713bc55b5ee0e", "to": "0x9ab31230d5413e4af01af9bb697651a3c70c95c9", "tokenId": "1450000023306", "txId": "0x565b9ca6b7b5ff1b1ce0725acd785dbf5ff0930d5ff547bad044c0960291555f", "contractAddress": "0xdb6290f355a528a7284bdd528b05a78fb05226ca", "type": "erc1155", "amount": "1", "logIndex": 571, "metadataURI": "https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json" } ], "blockNumber": 32522207, "chain": "polygon-mainnet", "subscriptionType": "CONTRACT_MULTITOKEN_TXS_PER_BLOCK" }
1 credit is debited for each fired web hook.
- CONTRACT_LOG_EVENT - Enable HTTP POST JSON notifications for any event that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all events from all smart contracts that got recorded into a block.
Free community plans can monitor 1 event across all blockchains per plan.
The availability of this notification type is the same across various blockchains with a credit consumption of 50,000 credits per day for each chain.
The request body of the POST request is a JSON object with the following structure:
{ "events": [ { "txId": "0xc98307f09ed527d5cff8305e8f65226b790e3317ded10b9e58f6f07286dcf8f1", "logIndex": 326, "timestamp": 1661774265000, "address": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f", "topic_0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "topic_1": "0x000000000000000000000000a91ab7d77892a559d2a95baaf1d748fc97c65d29", "topic_2": "0x0000000000000000000000009b08288c3be4f62bbf8d1c20ac9c5e6f9467d8b7", "topic_3": null, "data": "0x0000000000000000000000000000000000000000000000000000000002c9e3e4" } ], "blockNumber": 32447538, "chain": "polygon-amoy", "subscriptionType": "CONTRACT_LOG_EVENT" }
1 credit is debited for each fired web hook.
- ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION - Enable HTTP POST JSON notifications about incoming blockchain transactions on virtual accounts.
This web hook is invoked when an incoming transaction is reflected on the balance of the virtual account (the balance is credited with the transaction amount). This happens when the transaction has the sufficient number of blockchain confirmations: two confirmations for BTC, LTC, BCH, and DOGE, and one confirmation for the other blockchains.
The request body of the POST request is a JSON object with the following structure:{ "date": 1619176527481, "amount": "0.005", "currency": "BTC", "subscriptionType":"ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION", "accountId": "6082ab462936b4478117c6a0", "reference: "c9875708-4ba3-41c9-a4cd-271048b41b9a", // the reference of the transaction in the virtual account "txId": "45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99", "blockHash": "45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99", // the hash of the block, might not be present every time "blockHeight": 12345, "from": "SENDER_ADDRESS", // might not be present every time; not present for UTXO-based blockchains "to": "RECIPIENT_ADDRESS_CONNECTED_TO_LEDGER_ACCOUNT", // the blockchain address of the recipient "index": 5 // for UTXO-based blockchains (BCH, BTC, DOGE, LTC), this is the index of the output in the transaction }
1 credit is debited for each monitored account every day. - ACCOUNT_PENDING_BLOCKCHAIN_TRANSACTION - Enable HTTP POST JSON notifications about incoming blockchain transactions on virtual accounts.
This web hook is supported only for BCH, BTC, DOGE, ETH, and LTC accounts.
- For BTC-based blockchains (BCH, BTC, DOGE, and LTC), this web hook is invoked when an incoming transaction appears in a block for the first time. At that time, the transaction has one confirmation but this is not enough for the transaction to be reflected on the balance of the virtual account yet. Instead, a deposit corresponding to the pending transaction with a status of "in progress" appears on the virtual account. Once the transaction is added to the block, the deposit's status changes to "done", and the account balance gets updated.
- For EVM-based blockchains (ETH), this web hook is invoked when an incoming transaction appears in the mempool. The virtual account balance is not updated until the transaction is added to a block. Instead, a deposit corresponding to the pending transaction with a status of "in progress" appears on the virtual account. Once the transaction is added to the block, the deposit's status changes to "done", and the account balance gets updated.
The request body of the POST request is a JSON object with the following structure:
{ "date": 1619176527481, "amount": "0.005", "currency": "BTC", "accountId": "6082ab462936b4478117c6a0", "reference: "c9875708-4ba3-41c9-a4cd-271048b41b9a", // the reference of the transaction in the virtual account "txId": "45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99", "blockHash": "45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99", // the hash of the block, might not be present every time; if set to "null", the transaction is in the mempool (for EVM-based blockchains) "blockHeight": 12345, // if set to "null", the transaction is in the mempool (for EVM-based blockchains) "from": "SENDER_ADDRESS", // might not be present every time; not present for UTXO-based blockchains (BCH, BTC, DOGE, LTC) "to": "RECIPIENT_ADDRESS_CONNECTED_TO_LEDGER_ACCOUNT", // the blockchain address of the recipient "index": 5 // for UTXO-based blockchains (BCH, BTC, DOGE, LTC), this is the index of the output in the transaction }
1 credit is debited for each monitored account every day. - CUSTOMER_TRADE_MATCH - Enable HTTP POST JSON notifications on closed trade, which occurs on any customer account.
This web hook will be invoked, when the open trade is filled and closed. Works also for the Trade Futures. If is triggered by the futures, bool field expiredWithoutMatch is present.
Request body of the POST request will be JSON object with attributes:
{ "created": 1619176527481, "amount": "0.005", "price": "0.02", "type": "SELL", "pair": "VC_CHF/VC_CHF3", "id": "6082ab462936b4478117c6a0", // id of the trade "currency1AccountId": "6082ab462936b4478117c6a0", "currency2AccountId": "6082ab512936b4478117c6a2", "fee": null, "feeAccountId": null, "isMaker": true, "expiredWithoutMatch": false }
10 credits will be debited for every monitored customer every day. - CUSTOMER_PARTIAL_TRADE_MATCH - Enable HTTP POST JSON notifications on partialy filled trade, which occurs on any customer account.
This web hook will be invoked, when the open trade is partialy filled.
Request body of the POST request will be JSON object with attributes:
{ "created": 1619176527481, "amount": "0.005", "orderAmount": "0.1", "price": "0.02", "type": "SELL", "pair": "VC_CHF/VC_CHF3", "id": "6082ab462936b4478117c6a0", // id of the trade "currency1AccountId": "6082ab462936b4478117c6a0", "currency2AccountId": "6082ab512936b4478117c6a2", "fee": null, "feeAccountId": null, "isMaker": true, "expiredWithoutMatch": false }
10 credits will be debited for every monitored customer every day. - TRANSACTION_IN_THE_BLOCK - Enable HTTP POST JSON notifications on ledger => blockchain transaction, when transaction is included in the block.
This web hook will be invoked, when the outgoing transaction is included in the block.
Request body of the POST request will be JSON object with attributes:
{ "txId": "0x026f4f05b972c09279111da13dfd20d8df04eff436d7f604cd97b9ffaa690567", "reference": "90270634-5b07-4fad-b17b-f82899953533", "accountId": "6086ed0744c45b24d4fbd039", "currency": "BSC", "withdrawalId": "608fe5b73a893234ba379ab2", "address": "0x8ce4e40889a13971681391AAd29E88eFAF91f784", "amount": "0.1", "blockHeight": 8517664 }
10 credits will be debited every day, 1 credit for every included transaction notified via web hook. - KMS_FAILED_TX - Enable HTTP POST JSON notifications on error during KMS signature process.
This web hook will be invoked, when the Tatum KMS receives error during processing transactions.
Request body of the POST request will be JSON object with attributes:
{ "signatureId": "6082ab462936b4478117c6a0", "error": "Error message from the KMS" }
10 credits will be debited every day. - KMS_COMPLETED_TX - Enable HTTP POST JSON notifications on successful completion of KMS signature process.
This web hook will be invoked, when the Tatum KMS successfully completes the signature during processing transactions.
Request body of the POST request will be JSON object with attributes:
{ "signatureId": "6082ab462936b4478117c6a0", "txId": "0x7bb7d3b90567e89f999f2e3d263bc3738a018dbbcfa9f5397678cf17cdf0235f" }
10 credits will be debited every day. - ACCOUNT_BALANCE_LIMIT - Report with all account balances above desired limit.
- TRANSACTION_HISTORY_REPORT - Report with all ledger transactions for last X hours, where X is set by the subscription attribute as interval. Maximum number of transactions returned by this report is 20000. Transactions are obtained from the time of the invocation of the GET method to obtain report - X hours.
Result of the operation is subscription ID, which can be used to cancel subscription or obtain additional data connected to it like reports.