Monitor de blockchain

Intermedio

Este es unCrypto Trading, AI Summarizationflujo de automatización del dominio deautomatización que contiene 14 nodos.Utiliza principalmente nodos como If, Code, Slack, Webhook, ScrapegraphAi. Monitor de blockchain con detección de riesgos basada en ScrapeGraphAI, alertas instantáneas y notificaciones Slack

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Punto final de HTTP Webhook (n8n generará automáticamente)
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "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": "📋 Resumen",
      "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": "🔄 Normalizar Datos",
      "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": "📡 Información de Entrada",
      "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": "🔧 Procesar Información",
      "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": "⚡ Analizador de Riesgos",
      "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": "🕷️ Información 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": "🚨 Filtro de Riesgos",
      "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": "📊 Información de Análisis",
      "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 Alerta",
      "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": "🎯 Información de Filtro",
      "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": "🔔 Información de Alerta",
      "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": "⚙️ Configuración",
      "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Comercio de criptomonedas, Resumen de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos14
Categoría2
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34