{
  "name": "Guida - Alert su nuove transazioni di un wallet Solana",
  "nodes": [
    {
      "parameters": {
        "rule": { "interval": [{ "field": "minutes", "minutesInterval": 5 }] }
      },
      "id": "trigger1",
      "name": "Ogni 5 minuti",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [0, 0]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.mainnet-beta.solana.com",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ jsonrpc: \"2.0\", id: 1, method: \"getSignaturesForAddress\", params: [ $env.WALLET_ADDRESS || \"INSERISCI_INDIRIZZO_WALLET\", { limit: 15 } ] }) }}",
        "options": { "timeout": 15000 }
      },
      "id": "http1",
      "name": "Ultime firme del wallet",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [220, 0]
    },
    {
      "parameters": {
        "jsCode": "const result = $input.first().json.result || [];\nconst state = $getWorkflowStaticData('global');\nconst viste = new Set(state.viste || []);\nconst nuove = result.filter(r => !viste.has(r.signature) && !r.err);\nfor (const r of result) viste.add(r.signature);\nstate.viste = [...viste].slice(-500);\nconst primoGiro = !state.avviato;\nstate.avviato = true;\nreturn primoGiro ? [] : nuove.map(r => ({ json: { signature: r.signature, slot: r.slot } }));"
      },
      "id": "code1",
      "name": "Trova firme nuove",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [440, 0]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessage",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            { "name": "chat_id", "value": "YOUR_CHAT_ID" },
            { "name": "text", "value": "=Nuova transazione sul wallet:\nhttps://solscan.io/tx/{{$json.signature}}" }
          ]
        },
        "options": {}
      },
      "id": "http2",
      "name": "Avvisa su Telegram",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [660, 0]
    }
  ],
  "connections": {
    "Ogni 5 minuti": { "main": [[{ "node": "Ultime firme del wallet", "type": "main", "index": 0 }]] },
    "Ultime firme del wallet": { "main": [[{ "node": "Trova firme nuove", "type": "main", "index": 0 }]] },
    "Trova firme nuove": { "main": [[{ "node": "Avvisa su Telegram", "type": "main", "index": 0 }]] }
  },
  "settings": { "executionOrder": "v1" }
}
