TOKEN_TRANSFER

토큰(ERC20) 전송 또는 NFT(ERC721, ERC1155) 전송이 발생할 경우 알림을 제공합니다. 사용자는 특정 컨트랙트 주소를 지정하여 해당 컨트랙트에서 발생하는 토큰 이동을 모니터링할 수 있습니다. 또한, ERC721과 ERC1155 표준에 따른 NFT의 경우, 특정 토큰 ID를 조건으로 설정하여 해당 ID의 토큰 전송만을 추적하는 것이 가능합니다.

Supported Network

NetworkSupporting
Ethereum Mainnet
Ethereum Testnet (sepolia)
Ethereum Testnet (holesky)
Polygon Mainnet
Polygon Testnet (amoy)
Arbitrum Mainnet
Arbitrum Testnet (sepolia)
Optimism Mainnet
Optimism Testnet (sepolia)
Kaia Mainnet
Kaia Testnet (kairos)
Aptos Mainnet
Aptos Testnet

Webhook 생성 요청 예제

eventType값을 TOKEN_TRANSFER 로 설정하는 경우, 사용 가능한 condition 객체 필드는 아래와 같습니다.

KeyTypeRequiredDescriptionExample Value
tokensArray of objecttrue전송 이벤트를 모니터링 하고자 하는 토큰 정보 객체
tokens[i].contractAddressStringtrue모니터링 하고자 하는 ERC20 또는 ERC721, ERC1155 토큰의 컨트랙트 주소["0xdac17f958d2ee523a2206206994597c13d831ec7",
"0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85",
"0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401"]
tokens[i].tokenIdStringfalse해당 ERC721 또는 ERC1155 컨트랙트의 특정 토큰에 대한 전송 이벤트만 모니터링 하고자 하는 경우, 토큰 ID"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}"
  },
  "condition": {
    "tokens": [
        { "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7"},
        { "contractAddress": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"},
        { "contractAddress": "0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401"}
    ]
  }
}'

Response Example

🚧

Response 필드는 발생하는 Event type에 따라 달라질 수 있습니다.

📍 Type: ERC20

{
  "subscriptionId": "4975",
  "description": "{WEBHOOK_DESCRIPTION}",
  "protocol": "ethereum",
  "network": "mainnet",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
  },
  "signingKey": "{signingKey}",
  "eventType": "TOKEN_TRANSFER",
  "event": {
    "targetAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7", // ⚠️ This field will be deprecated soon
    "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"
      },

📍 Type: ERC721

{
  "subscriptionId": "4975",
  "description": "{WEBHOOK_DESCRIPTION}",
  "protocol": "ethereum",
  "network": "mainnet",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
  },
  "signingKey": "{signingKey}",
  "eventType": "TOKEN_TRANSFER",
  "event": {
    "targetAddress": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85", // ⚠️ This field will be deprecated soon
    "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",
  "description": "{WEBHOOK_DESCRIPTION}",
  "protocol": "ethereum",
  "network": "mainnet",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{WEBHOOK_LISTENER_ENDPOINT}"
  },
  "signingKey": "{signingKey}",
  "eventType": "TOKEN_TRANSFER",
  "event": {
    "targetAddress": "0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401", // ⚠️ This field will be deprecated soon
    "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"
}