Skip to main content

TOKEN_TRANSFER


Supported Network

Network

Supporting

Ethereum Mainnet

Ethereum Testnet (sepolia)

Ethereum Testnet (hoodi)

Base Mainnet

Base Testnet(sepolia)

BNB Mainnet

BNB Testnet

Polygon Mainnet

Arbitrum Mainnet

Arbitrum Testnet (sepolia)

Optimism Mainnet

Optimism Testnet (sepolia)

Kaia Mainnet

Kaia Testnet (kairos)

Avalanche Mainnet

Tron Mainnet

Giwa Testnet (sepolia)

Arc Testnet

Aptos Mainnet

Aptos Testnet



Webhook Creation Request Example

When setting the eventType value to TOKEN_TRANSFER, the available condition object fields are as follows.

Key

Type

Required

Description

Example Value

tokens

Array of object

true

Token information objects for the transfer events you want to monitor.

tokens[i].contractAddress

String

true

The contract address of the ERC20, ERC721, or ERC1155 token to monitor.

["0xdac17f958d2ee523a2206206994597c13d831ec7",
"0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85",
"0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401"]

tokens[i].tokenId

String

false

The token ID to use when monitoring only transfer events for a specific token within an ERC721 or ERC1155 contract.

"100"



Request Example

curl --location 'https://web3.nodit.io/v1/ethereum/mainnet/webhooks' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: ••••••' \
--data '{
"eventType": "TOKEN_TRANSFER",
"description": "{WEBHOOK_DESCRIPTION}",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"isInstant": false,
"condition": {
"tokens": [
{ "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7"},
{ "contractAddress": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"},
{ "contractAddress": "0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401"}
]
}
}'

Response Example

warning

Response fields may vary depending on the Event type that occurs.

📍 Type: ERC20

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "ethereum",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"0xdac17f958d2ee523a2206206994597c13d831ec7",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
],
"messages": [
{
"token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"from_address": "0xfaa815b53a138ed4f08bf87c2be5f52dc2e6ab23",
"to_address": "0x4924dd05fcfb613ff260da6f24352860764e7255",
"value": "107606900",
"transaction_hash": "0x2566c14ec70760df6c0ace8e2deee24ab0bb972d72838910a036274e464ebead",
"log_index": 4,
"block_number": 21492237,
"block_timestamp": 1735283663,
"type": "erc20"
}
]
},
"createdAt": "2024-12-27T07:14:26.417Z"
}

📍 Type: ERC721

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "ethereum",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
],
"messages": [
{
"token_address": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85",
"from_address": "0x0000000000000000000000000000000000000000",
"to_address": "0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401",
"token_id": "95197913785858091751534103000665038599586647876989060841354808045194649190236",
"transaction_hash": "0xe3f0dddc2a70c4be9dddeb6a1f38cee8e8ed597ee8338f14b054acc06c817432",
"log_index": 61,
"block_number": 21492236,
"block_timestamp": 1735283651,
"type": "erc721"
}
]
},
"createdAt": "2024-12-27T07:16:06.778Z"
}

📍 Type: ERC1155

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "ethereum",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
],
"messages": [
{
"batch_index": 0,
"block_number": 21492235,
"block_timestamp": 1735283639,
"from_address": "0x0000000000000000000000000000000000000000",
"log_index": 420,
"operator": "0x253553366da8546fc250f225fe3d25d0c782303b",
"to_address": "0x52c36a6ea28ff827b6e66bdcc4c8649ab0fe4bfe",
"token_address": "0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401",
"token_id": "115634552403929373829103474254372791928891252898198171937249544067046190758705",
"transaction_hash": "0xdcf22bdb9ff4b47a6067bde64329417b95c13799443c12654762d053c9a90c3a",
"value": "1",
"type": "erc1155"
}
]
},
"createdAt": "2024-12-27T07:15:40.958Z"
}

📍 Type: TRC20

A message type that tracks TRC-20 token transfers on the Tron chain. Addresses are provided in Base58 format (starting with T).

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "tron",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"T..."
],
"messages": [
{
"token_address": "T...",
"from_address": "T...",
"to_address": "T...",
"value": "48100000",
"log_index": 0,
"tx_id": "...",
"tx_index": 283,
"block_number": 85768711,
"block_timestamp": 1787977626,
"type": "trc20"
}
]
},
"createdAt": "2024-12-27T07:14:26.417Z"
}

📍 Type: TRC721

A message type that tracks TRC-721 NFT transfers on the Tron chain. It has the same structure as TRC-20, except that token_id is provided instead of value.

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "tron",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"T..."
],
"messages": [
{
"token_address": "T...",
"from_address": "T...",
"to_address": "T...",
"token_id": "1234",
"log_index": 0,
"tx_id": "...",
"tx_index": 283,
"block_number": 85768711,
"block_timestamp": 1787977626,
"type": "trc721"
}
]
},
"createdAt": "2024-12-27T07:14:26.417Z"
}

📍 Type: TRC1155

A message type that tracks TRC-1155 token transfers on the Tron chain. It adds the token_id, operator, and batch_index fields to the TRC-20 structure.

{
"subscriptionId": "4975",
"sequenceNumber": "2",
"description": "{WEBHOOK_DESCRIPTION}",
"protocol": "tron",
"network": "mainnet",
"subscriptionType": "WEBHOOK",
"notification": {
"webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
},
"eventType": "TOKEN_TRANSFER",
"event": {
"targetAddresses": [
"T..."
],
"messages": [
{
"token_address": "T...",
"from_address": "T...",
"to_address": "T...",
"operator": "T...",
"value": "1",
"token_id": "1234",
"batch_index": 0,
"log_index": 0,
"tx_id": "...",
"tx_index": 283,
"block_number": 85768711,
"block_timestamp": 1787977626,
"type": "trc1155"
}
]
},
"createdAt": "2024-12-27T07:14:26.417Z"
}