Moniteur de blockchain
Ceci est unCrypto Trading, AI Summarizationworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme If, Code, Slack, Webhook, ScrapegraphAi. Moniteur blockchain pour la détection de risques basé sur ScrapeGraphAI, avec alertes instantanées et notifications Slack
- •Token Bot Slack ou URL Webhook
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
Nœuds utilisés (14)
Catégorie
{
"id": "VhEwspDqzu7ssFVE",
"meta": {
"instanceId": "f4b0efaa33080e7774e0d9285c40c7abcd2c6f7cf1a8b901fa7106170dd4cda3",
"templateCredsSetupCompleted": true
},
"name": "My workflow 2",
"tags": [
{
"id": "DxXGubfBzRKh6L8T",
"name": "Revenue Optimization",
"createdAt": "2025-07-25T16:24:30.370Z",
"updatedAt": "2025-07-25T16:24:30.370Z"
},
{
"id": "IxkcJ2IpYIxivoHV",
"name": "Content Strategy",
"createdAt": "2025-07-25T12:57:37.677Z",
"updatedAt": "2025-07-25T12:57:37.677Z"
},
{
"id": "PAKIJ2Mm9EvRcR3u",
"name": "Trend Monitoring",
"createdAt": "2025-07-25T12:57:37.670Z",
"updatedAt": "2025-07-25T12:57:37.670Z"
},
{
"id": "YtfXmaZk44MYedPO",
"name": "Dynamic Pricing",
"createdAt": "2025-07-25T16:24:30.369Z",
"updatedAt": "2025-07-25T16:24:30.369Z"
},
{
"id": "wJ30mjhtrposO8Qt",
"name": "Simple RAG",
"createdAt": "2025-07-28T12:55:14.424Z",
"updatedAt": "2025-07-28T12:55:14.424Z"
}
],
"nodes": [
{
"id": "1249a626-d963-4448-a5b1-26ca50200824",
"name": "🔗 Blockchain Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1392,
624
],
"webhookId": "eed656b3-6a7f-4460-92e0-802bca2522d0",
"parameters": {
"path": "eed656b3-6a7f-4460-92e0-802bca2522d0",
"options": {}
},
"typeVersion": 1.1
},
{
"id": "16186e5f-84af-4303-a48a-bb7f5a8548e9",
"name": "📋 Vue d'ensemble",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
112
],
"parameters": {
"color": 4,
"width": 400,
"height": 492,
"content": "# 🔍 Simple Blockchain Monitor\n\n**Essential Setup:**\n- Real-time block monitoring\n- AI-powered data extraction\n- Smart risk detection\n- Instant alerts\n\n**Supported:**\n- Ethereum, Bitcoin, BSC, Polygon\n\n**Features:**\n✅ ScrapeGraphAI integration\n✅ High-value detection\n✅ Risk scoring\n✅ Slack alerts"
},
"typeVersion": 1
},
{
"id": "f29f94bb-cafd-43b6-8e2a-6557bca1dd7b",
"name": "🔄 Normaliser les données",
"type": "n8n-nodes-base.code",
"position": [
-1056,
624
],
"parameters": {
"jsCode": "// Simple blockchain data preparation\nconst input = $input.all()[0].json;\n\n// Basic normalization\nconst blockData = {\n block_number: input.blockNumber || input.block_number || input.height,\n blockchain: (input.blockchain || input.chain || 'ethereum').toLowerCase(),\n timestamp: input.timestamp || Date.now(),\n session_id: `block_${Date.now()}`\n};\n\n// Set explorer URL\nconst explorers = {\n ethereum: `https://etherscan.io/block/${blockData.block_number}`,\n bitcoin: `https://blockchair.com/bitcoin/block/${blockData.block_number}`,\n bsc: `https://bscscan.com/block/${blockData.block_number}`,\n polygon: `https://polygonscan.com/block/${blockData.block_number}`\n};\n\nblockData.explorer_url = explorers[blockData.blockchain] || explorers.ethereum;\n\nconsole.log(`Processing block ${blockData.block_number} on ${blockData.blockchain}`);\n\nreturn [{ json: blockData }];"
},
"typeVersion": 2
},
{
"id": "adc3d7ef-4928-4c92-acff-5fd0dacb4c91",
"name": "📡 Informations d'entrée",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
112
],
"parameters": {
"color": 5,
"width": 396,
"height": 744,
"content": "# Step 1: Webhook Input 🔗\n\nReceives blockchain data from external sources.\n\n**Input Sources:**\n- Blockchain nodes\n- Third-party APIs (Moralis, Alchemy)\n- Exchange webhooks\n\n**Data Expected:**\n- Block number/height\n- Blockchain identifier\n- Timestamp (optional)"
},
"typeVersion": 1
},
{
"id": "473fd718-b826-45f1-a832-8609635c6214",
"name": "🤖 ScrapeGraphAI",
"type": "n8n-nodes-scrapegraphai.scrapegraphAi",
"position": [
-768,
608
],
"parameters": {
"userPrompt": "Extract transaction data from this blockchain explorer page. Return JSON with:\n\n**transactions**: Array of objects with:\n- hash: transaction ID\n- from: sender address \n- to: receiver address\n- value_usd: USD amount (if available)\n- fee_usd: fee in USD\n- status: success/failed\n- is_contract: true if contract interaction\n\n**summary**:\n- total_transactions: count\n- total_volume_usd: sum of values\n- high_value_count: transactions > $10,000\n- failed_count: failed transactions\n\nFocus on accuracy and include only confirmed data.",
"websiteUrl": "={{ $json.explorer_url }}"
},
"typeVersion": 1
},
{
"id": "26598a18-97d4-4e5d-bced-7a5bc9869265",
"name": "🔧 Traiter les informations",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
112
],
"parameters": {
"color": 3,
"width": 300,
"height": 744,
"content": "# Step 2: Data Processing 🔄\n\nNormalizes blockchain data for analysis.\n\n**Functions:**\n- Multi-chain format standardization\n- Explorer URL selection\n- Basic validation\n\n**Supported Chains:**\n- Ethereum, Bitcoin, BSC, Polygon"
},
"typeVersion": 1
},
{
"id": "0ac361af-deb0-471b-8a0f-2d7a7c36a7e4",
"name": "⚡ Analyseur de risques",
"type": "n8n-nodes-base.code",
"position": [
-448,
608
],
"parameters": {
"jsCode": "// Simple risk analysis\nconst blockData = $('Normalize Data').first().json;\nconst scrapedData = $input.all()[0].json;\n\n// Initialize analysis\nlet analysis = {\n block_number: blockData.block_number,\n blockchain: blockData.blockchain,\n timestamp: new Date().toISOString(),\n \n // Basic stats\n total_transactions: 0,\n total_volume_usd: 0,\n high_value_transactions: [],\n failed_transactions: 0,\n \n // Risk assessment\n risk_score: 0,\n risk_level: 'low',\n alerts: []\n};\n\n// Process scraped data\nif (scrapedData.transactions && Array.isArray(scrapedData.transactions)) {\n analysis.total_transactions = scrapedData.transactions.length;\n \n scrapedData.transactions.forEach(tx => {\n const value = parseFloat(tx.value_usd || 0);\n analysis.total_volume_usd += value;\n \n // High-value detection\n if (value > 10000) {\n analysis.high_value_transactions.push({\n hash: tx.hash,\n value_usd: value,\n from: tx.from,\n to: tx.to\n });\n }\n \n // Failed transaction count\n if (tx.status === 'failed') {\n analysis.failed_transactions++;\n }\n });\n}\n\n// Use summary data if available\nif (scrapedData.summary) {\n analysis.total_transactions = scrapedData.summary.total_transactions || analysis.total_transactions;\n analysis.total_volume_usd = scrapedData.summary.total_volume_usd || analysis.total_volume_usd;\n analysis.failed_transactions = scrapedData.summary.failed_count || analysis.failed_transactions;\n}\n\n// Simple risk scoring\nlet riskScore = 0;\n\n// High value risk\nriskScore += analysis.high_value_transactions.length * 15;\n\n// Volume risk\nif (analysis.total_volume_usd > 1000000) riskScore += 20;\nelse if (analysis.total_volume_usd > 100000) riskScore += 10;\n\n// Failure rate risk\nconst failureRate = analysis.total_transactions > 0 ? \n analysis.failed_transactions / analysis.total_transactions : 0;\nif (failureRate > 0.1) riskScore += 15;\n\nanalysis.risk_score = Math.min(riskScore, 100);\n\n// Risk level determination\nif (analysis.risk_score >= 50) {\n analysis.risk_level = 'high';\n} else if (analysis.risk_score >= 25) {\n analysis.risk_level = 'medium';\n} else {\n analysis.risk_level = 'low';\n}\n\n// Generate alerts\nif (analysis.risk_level === 'high') {\n analysis.alerts.push(`High risk block: ${analysis.high_value_transactions.length} high-value transactions`);\n}\n\nif (analysis.high_value_transactions.length > 3) {\n analysis.alerts.push(`Multiple high-value transactions detected`);\n}\n\nif (failureRate > 0.2) {\n analysis.alerts.push(`High failure rate: ${Math.round(failureRate * 100)}%`);\n}\n\nconsole.log(`Analysis: ${analysis.total_transactions} txs, $${analysis.total_volume_usd.toLocaleString()}, Risk: ${analysis.risk_level}`);\n\nreturn [{ json: analysis }];"
},
"typeVersion": 2
},
{
"id": "44081a4a-0e37-4c69-a9b3-06f546a1b533",
"name": "🕷️ Informations de scraping",
"type": "n8n-nodes-base.stickyNote",
"position": [
-832,
112
],
"parameters": {
"color": 6,
"width": 300,
"height": 744,
"content": "# Step 3: AI Data Extraction 🤖\n\nScrapeGraphAI extracts transaction data.\n\n**Key Features:**\n- AI-powered understanding\n- Structured JSON output\n- Multi-explorer support\n- Error resilience\n\n**Extracted Data:**\n- Transaction details\n- USD values\n- High-value flags\n- Block summary"
},
"typeVersion": 1
},
{
"id": "e23fec64-72de-40eb-9ee0-25a1c753c54b",
"name": "🚨 Filtre de risques",
"type": "n8n-nodes-base.if",
"position": [
-128,
592
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "risk-check",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.risk_level }}",
"rightValue": "low"
}
]
}
},
"typeVersion": 2
},
{
"id": "0480096b-03cc-46bb-85b9-90b1d81f6596",
"name": "📊 Informations d'analyse",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
112
],
"parameters": {
"color": 2,
"width": 300,
"height": 744,
"content": "# Step 4: Risk Analysis ⚡\n\nAnalyzes transactions for risk factors.\n\n**Risk Factors:**\n- High-value transactions (>$10k)\n- Large block volume (>$100k)\n- High failure rates (>10%)\n\n**Risk Levels:**\n- High: Score ≥ 50\n- Medium: Score ≥ 25\n- Low: Score < 25"
},
"typeVersion": 1
},
{
"id": "7c567592-055a-4550-9867-ca728a0e11dc",
"name": "📱 Slack Alerte",
"type": "n8n-nodes-base.slack",
"position": [
176,
608
],
"webhookId": "ccb327b2-8ac0-440e-a605-4f2964d5dfb6",
"parameters": {
"operation": "create"
},
"typeVersion": 2.1
},
{
"id": "a669635d-49fd-4fd4-b30a-08e98590de70",
"name": "🎯 Informations de filtrage",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
112
],
"parameters": {
"width": 300,
"height": 744,
"content": "# Step 5: Risk Filtering 🚨\n\nFilters blocks that need attention.\n\n**Trigger Conditions:**\n- Risk level: medium or high\n- Any high-value transactions\n- High failure rates\n\n**Alert Routing:**\n- Sends to Slack for team visibility\n- Only triggers on significant events"
},
"typeVersion": 1
},
{
"id": "6fa3b3f7-0142-4089-a46b-8fb69e17e91e",
"name": "🔔 Informations d'alerte",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
112
],
"parameters": {
"color": 7,
"width": 300,
"height": 744,
"content": "# Step 6: Slack Alerts 📱\n\nSends formatted alerts to Slack.\n\n**Alert Content:**\n- Block and blockchain info\n- Risk level and score\n- Transaction statistics\n- High-value transaction list\n- Active alerts\n\n**Features:**\n- Rich formatting with emojis\n- Condensed but informative\n- Real-time delivery"
},
"typeVersion": 1
},
{
"id": "bd1d424c-6f26-4f96-ae80-ba4ef87e7c5e",
"name": "⚙️ Configuration",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
112
],
"parameters": {
"color": 2,
"width": 350,
"height": 744,
"content": "## 🔧 Configuration\n\n**Required Setup:**\n1. ScrapeGraphAI API key\n2. Slack webhook/bot token\n3. Blockchain webhook URL\n\n**Customizable:**\n- High-value threshold ($10k)\n- Risk score thresholds\n- Slack channel ID\n- Supported blockchains\n\n**Simple & Effective:**\n- 6 essential nodes only\n- Fast execution\n- Easy maintenance\n- Clear alerting"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "ac7a0925-70ce-4b7f-91e7-19bf16686bfa",
"connections": {
"e23fec64-72de-40eb-9ee0-25a1c753c54b": {
"main": [
[
{
"node": "7c567592-055a-4550-9867-ca728a0e11dc",
"type": "main",
"index": 0
}
]
]
},
"0ac361af-deb0-471b-8a0f-2d7a7c36a7e4": {
"main": [
[
{
"node": "e23fec64-72de-40eb-9ee0-25a1c753c54b",
"type": "main",
"index": 0
}
]
]
},
"473fd718-b826-45f1-a832-8609635c6214": {
"main": [
[
{
"node": "0ac361af-deb0-471b-8a0f-2d7a7c36a7e4",
"type": "main",
"index": 0
}
]
]
},
"f29f94bb-cafd-43b6-8e2a-6557bca1dd7b": {
"main": [
[
{
"node": "473fd718-b826-45f1-a832-8609635c6214",
"type": "main",
"index": 0
}
]
]
},
"1249a626-d963-4448-a5b1-26ca50200824": {
"main": [
[
{
"node": "f29f94bb-cafd-43b6-8e2a-6557bca1dd7b",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Trading crypto, Résumé IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
vinci-king-01
@vinci-king-01Partager ce workflow