토큰(ERC20) 전송 또는 NFT(ERC721, ERC1155) 전송이 발생할 경우 알림을 제공합니다. 사용자는 특정 컨트랙트 주소를 지정하여 해당 컨트랙트에서 발생하는 토큰 이동을 모니터링할 수 있습니다. 또한, ERC721과 ERC1155 표준에 따른 NFT의 경우, 특정 토큰 ID를 조건으로 설정하여 해당 ID의 토큰 전송만을 추적하는 것이 가능합니다.
Supported Network
Network | Supporting |
---|---|
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 객체 필드는 아래와 같습니다.
Key | Type | Required | Description | Example Value |
---|---|---|---|---|
tokens | Array of object | true | 전송 이벤트를 모니터링 하고자 하는 토큰 정보 객체 | |
tokens[i].contractAddress | String | true | 모니터링 하고자 하는 ERC20 또는 ERC721, ERC1155 토큰의 컨트랙트 주소 | ["0xdac17f958d2ee523a2206206994597c13d831ec7", "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85", "0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401"] |
tokens[i].tokenId | String | false | 해당 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"
}