{"id":"AlEVIPHR3dMJkYWt","meta":{"instanceId":"workflow-c496248d","versionId":"1.0.0","createdAt":"2025-09-29T07:07:56.924266","updatedAt":"2025-09-29T07:07:56.924288","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Monitor USDT ERC-20 Wallet Balance with Etherscan and Telegram Notifications","nodes":[{"id":"35b62ca1-3603-4dcb-a3b5-77e1325c78f7","name":"Balance Changed?","type":"n8n-nodes-base.if","position":[-40,0],"parameters":{"conditions":{"boolean":[{"value1":"={{$json.balanceChanged}}","value2":true}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"dfeef0d5-0bb2-40a1-ae75-51d7caeb9c3d","name":"Balance Changed.","type":"n8n-nodes-base.telegram","position":[320,-140],"webhookId":"a8fa72ce-638b-4245-bcbc-d59948ae1144","parameters":{"text":"=🚨 *USDT Balance Change!*\n\nWallet Address: {{ $json.walletAddress }}\n\n🔴 Previous Balance: {{parseFloat($json.previousBalance)/1e6}} USDT\n\n🟢 New Balance: {{parseFloat($json.currentBalance)/1e6}} USDT","chatId":"< Your Telegram Chat ID >","additionalFields":{"parse_mode":"Markdown"}},"credentials":{"telegramApi":{"id":"Ge3vEXak2MymWtcp","name":"Telegram account"}},"typeVersion":1,"notes":"This telegram node performs automated tasks as part of the workflow."},{"id":"ffebdb46-a6f0-4ed8-88ed-75ab427af969","name":"Balance Not Changed.","type":"n8n-nodes-base.telegram","position":[320,20],"webhookId":"a8fa72ce-638b-4245-bcbc-d59948ae1144","parameters":{"text":"=Balance Unchanged. USDT balance remained stable.","chatId":"< Your Telegram Chat ID >","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1,"notes":"This telegram node performs automated tasks as part of the workflow."},{"id":"049ff717-ba10-4b7f-9f84-9eaaeee902ec","name":"userData","type":"n8n-nodes-base.set","position":[-780,0],"parameters":{"options":{},"assignments":{"assignments":[{"id":"4455d1e7-a489-4ab6-a526-4fc755db99d0","name":"Your Wallet Address","type":"string","value":"< Wallet Address Paste Here >"},{"id":"3d84deba-8093-42cf-833f-6891db778de7","name":"Your Etherscan Api Key","type":"string","value":"< Etherscan Api Key Paste Here>"},{"id":"971ea723-e3de-4cff-b4e7-5899f3d8fb00","name":"USDT ERC-20 Token Address","type":"string","value":"0xdAC17F958D2ee523a2206206994597C13D831ec7"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"0488f2dd-6b71-4be5-9ce8-cf0763b82990","name":"balanceChecker","type":"n8n-nodes-base.code","position":[-280,0],"parameters":{"jsCode":"const staticData = $getWorkflowStaticData('global');\n\nconst currentBalance = items[0].json.result;\n\nconst walletAddress = $('userData').first().json['Your Wallet Address']\n\nlet previousBalance = staticData.previousBalance;\n\nif (!previousBalance) {\n  staticData.previousBalance = currentBalance;\n  previousBalance = currentBalance;\n}\n\nconst balanceChanged = previousBalance !== currentBalance;\n\nstaticData.previousBalance = currentBalance;\n\nreturn [{json: {balanceChanged, previousBalance, currentBalance, walletAddress}}];"},"typeVersion":2,"notes":"This code node performs automated tasks as part of the workflow."},{"id":"d7b23d5b-b4c5-4d9a-93f9-360ae0d539c7","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1040,-180],"parameters":{"color":4,"width":1540,"height":400,"content":"## USDT ERC-20 Wallet Balance Tracker\n**This workflow** Is a basic concept of integrating your ERC-20 wallet with n8n nodes."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"7c8f0d69-6c37-469c-b466-89a467db9bbd","name":"Check Balance Every 5 Minutes","type":"n8n-nodes-base.cron","position":[-1000,0],"parameters":{"triggerTimes":{"item":[{"mode":"everyX","unit":"minutes","value":5}]}},"typeVersion":1,"notes":"This cron node performs automated tasks as part of the workflow."},{"id":"ea603f03-25e0-4c80-90f2-eb5f09e71ad1","name":"Fetch USDT Balance from Etherscan","type":"n8n-nodes-base.httpRequest","position":[-480,0],"parameters":{"url":"{{ $env.API_BASE_URL }}","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"module","value":"account"},{"name":"action","value":"tokenbalance"},{"name":"address","value":"={{ $json['Your Wallet Address'] }}"},{"name":"tag","value":"latest"},{"name":"apikey","value":"={{ $json['Your Etherscan Api Key'] }}"},{"name":"contractaddress","value":"={{ $json['USDT ERC-20 Token Address'] }}"}]}},"typeVersion":3,"notes":"This httpRequest node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"7ebf18de-7adf-40dd-99b4-ff8dd1e37f08","connections":{"Fetch USDT Balance from Etherscan":{"main":[[],[],[],[],[],[],[],[],[]]},"Balance Changed.":{"main":[[]]},"Balance Not Changed.":{"main":[[]]}},"description":"Automated workflow: Monitor USDT ERC-20 Wallet Balance with Etherscan and Telegram Notifications. This workflow integrates 8 different services: stickyNote, httpRequest, telegram, code, set. It contains 12 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Monitor USDT ERC-20 Wallet Balance with Etherscan and Telegram Notifications. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}