ブロックチェーン監視器

中級

これはCrypto Trading, AI Summarization分野の自動化ワークフローで、14個のノードを含みます。主にIf, Code, Slack, Webhook, ScrapegraphAiなどのノードを使用。 ScrapeGraphAIによるリスク検知の基づくブロックチェーン監視ツール(リアルタイムアラート・Slack通知付き)

前提条件
  • Slack Bot Token または Webhook URL
  • HTTP Webhookエンドポイント(n8nが自動生成)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "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": "📋 概要",
      "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": "🔄 データ正規化",
      "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": "📡 入力情報",
      "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": "🔧 情報処理",
      "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": "⚡ リスク分析器",
      "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": "🕷️ スクレイピング情報",
      "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": "🚨 リスクフィルター",
      "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": "📊 分析情報",
      "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 アラート",
      "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": "🎯 フィルター情報",
      "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": "🔔 アラート情報",
      "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": "⚙️ 設定",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - 仮想通貨取引, AI要約

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数14
カテゴリー2
ノードタイプ6
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34