AutomationFlowsEmail & Gmail › Daily Crypto Yield Monitor: Track Top Binance Earn Apy Rates with Earnings…

Daily Crypto Yield Monitor: Track Top Binance Earn Apy Rates with Earnings…

Original n8n title: Daily Crypto Yield Monitor: Track Top Binance Earn Apy Rates with Earnings Calculator

ByGYEONGJUN CHAE @jun on n8n.io

This workflow automates the tracking of passive income opportunities on Binance by fetching real-time Flexible Earn APY rates, calculating potential returns, and delivering a daily summary to your inbox.

Cron / scheduled trigger★★★★☆ complexity15 nodesCryptoHTTP RequestGmail
Email & Gmail Trigger: Cron / scheduled Nodes: 15 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #11426 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "bb235e4d-8151-47b0-8e7a-cc45d650b65b",
      "name": "Main Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        -192
      ],
      "parameters": {
        "width": 500,
        "height": 404,
        "content": "## \ud83d\ude80 High-Yield Crypto Monitor\n\n## How it works\nThis workflow automatically monitors Binance Flexible Earn products daily. It authenticates securely, fetches the latest rates, identifies the top 15 highest APY assets, calculates potential daily earnings based on a simulation ($10k), and emails you a report.\n\n## Setup steps\n1. Double-click the **'Set Credentials'** node and enter your Binance API Key and Secret.\n2. Configure the **'Send Email'** node with your Gmail credentials and recipient address.\n3. (Optional) Adjust the investment simulation amount in the **'Filter & Analyze'** node code."
      },
      "typeVersion": 1
    },
    {
      "id": "61ccefd1-f34d-4c06-9bc0-42a56f9111c8",
      "name": "Auth Group",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        272
      ],
      "parameters": {
        "color": 7,
        "width": 1000,
        "height": 240,
        "content": "## \ud83d\udd10 Authentication & API Fetch\nGenerates the required timestamp and HMAC-SHA256 signature to securely fetch live data from the Binance API."
      },
      "typeVersion": 1
    },
    {
      "id": "5ca9e130-6ee4-4314-bfcf-49db01b0fc7e",
      "name": "Processing Group",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        272
      ],
      "parameters": {
        "color": 7,
        "width": 780,
        "height": 240,
        "content": "## \ud83e\uddf9 Data Processing\nSplits the raw data list, selects relevant fields, sorts by APY (descending), and limits the results to the top 15 assets."
      },
      "typeVersion": 1
    },
    {
      "id": "3e0611d3-7abb-45dc-9dc1-31e866582c89",
      "name": "Reporting Group",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        272
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 240,
        "content": "## \ud83d\udcca Analysis & Report\nCalculates estimated daily earnings and generates an HTML email report."
      },
      "typeVersion": 1
    },
    {
      "id": "1bc178b5-f381-4f60-8320-7515a84968e1",
      "name": "Daily Trigger1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -144,
        384
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 24
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "eda938c1-a90c-494e-a889-94f0e27b0793",
      "name": "Prepare Data1",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        384
      ],
      "parameters": {
        "jsCode": "const timestamp = Date.now();\n\n// We must define the query string EXACTLY as it will be signed\n// Order matters: size first, then timestamp\nconst queryString = `size=100&timestamp=${timestamp}`;\n\nreturn {\n  timestamp: timestamp,\n  queryString: queryString\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "87bdc101-2e0e-47f3-b71e-399388f4d5b1",
      "name": "Sign Request1",
      "type": "n8n-nodes-base.crypto",
      "position": [
        512,
        384
      ],
      "parameters": {
        "type": "SHA256",
        "value": "={{ $('Prepare Data1').item.json.queryString }}",
        "action": "hmac",
        "secret": "={{ $json.SECRET_KEY }}",
        "dataPropertyName": "signature"
      },
      "typeVersion": 1
    },
    {
      "id": "ff849ed1-165c-4f8c-8e09-063a882db350",
      "name": "Get Earn Rates1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        720,
        384
      ],
      "parameters": {
        "url": "https://api.binance.com/sapi/v1/simple-earn/flexible/list",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "size",
              "value": "100"
            },
            {
              "name": "timestamp",
              "value": "={{ $('Prepare Data1').item.json.timestamp }}"
            },
            {
              "name": "signature",
              "value": "={{ $json.signature }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "X-MBX-APIKEY",
              "value": "={{ $json.API_KEY }}"
            }
          ]
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "f91ee167-64c7-4b61-be77-05a833aa2bc8",
      "name": "Filter & Analyze1",
      "type": "n8n-nodes-base.code",
      "position": [
        1776,
        384
      ],
      "parameters": {
        "jsCode": "const capital = 10000; // Simulation amount\nconst results = [];\n\nfor (const product of $input.all()) {\n  const apy = parseFloat(product.json.latestAnnualPercentageRate);\n  results.push({\n    asset: product.json.asset,\n    apy_percent: (apy * 100).toFixed(2) + '%',\n    daily_income: '$' + (capital * apy / 365).toFixed(2)\n  });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "7d1e0b5c-7596-4320-8103-baee2823db5c",
      "name": "Send Email1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1984,
        384
      ],
      "parameters": {
        "message": "=<h3>Daily Yield Report</h3>\n<ul>\n{{ $input.all().map(i => `\n  <li>\n    <b>${i.json.asset}</b>: ${i.json.apy_percent} APY \n    (Est. ${i.json.daily_income}/day on $10k)\n  </li>\n`).join('') }}\n</ul>",
        "options": {},
        "subject": "Binance Yield Update"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2.1
    },
    {
      "id": "2273e447-2d1a-4f98-9187-9e93a2fb9ca9",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        944,
        384
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "1a6fb368-afd2-49c4-9087-91ba4d18bcbf",
      "name": "Edit Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        384
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cbaefc98-8c09-4f2f-9e36-af1b337f1187",
              "name": "asset",
              "type": "string",
              "value": "={{ $json.asset }}"
            },
            {
              "id": "734e417f-dba7-45d4-8b7f-512da6e1f4d2",
              "name": "latestAnnualPercentageRate",
              "type": "string",
              "value": "={{ $json.latestAnnualPercentageRate }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "be223424-856e-4889-bcdc-8e1a723ecb29",
      "name": "Sort1",
      "type": "n8n-nodes-base.sort",
      "position": [
        1360,
        384
      ],
      "parameters": {
        "options": {},
        "sortFieldsUi": {
          "sortField": [
            {
              "order": "descending",
              "fieldName": "latestAnnualPercentageRate"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0ad133c8-3586-490b-8f70-cc665f3c7f84",
      "name": "Limit1",
      "type": "n8n-nodes-base.limit",
      "position": [
        1568,
        384
      ],
      "parameters": {
        "maxItems": 15
      },
      "typeVersion": 1
    },
    {
      "id": "16b18467-73ea-4d50-87df-43e2824b243c",
      "name": "Set Credentials1",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        384
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "af766b1a-bb45-49cc-a48a-8ee5505d9069",
              "name": "API_KEY",
              "type": "string",
              "value": "YOUR_BINANCE_API_KEY"
            },
            {
              "id": "1a308c05-91e0-4537-a257-ff46dfae4057",
              "name": "SECRET_KEY",
              "type": "string",
              "value": "YOUR_BINANCE_SECRET_KEY"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "connections": {
    "Sort1": {
      "main": [
        [
          {
            "node": "Limit1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit1": {
      "main": [
        [
          {
            "node": "Filter & Analyze1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Sort1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Data1": {
      "main": [
        [
          {
            "node": "Set Credentials1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sign Request1": {
      "main": [
        [
          {
            "node": "Get Earn Rates1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Trigger1": {
      "main": [
        [
          {
            "node": "Prepare Data1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Earn Rates1": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Credentials1": {
      "main": [
        [
          {
            "node": "Sign Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter & Analyze1": {
      "main": [
        [
          {
            "node": "Send Email1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates the tracking of passive income opportunities on Binance by fetching real-time Flexible Earn APY rates, calculating potential returns, and delivering a daily summary to your inbox.

Source: https://n8n.io/workflows/11426/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

Schedule Removeduplicates. Uses scheduleTrigger, crypto, gmail, markdown. Scheduled trigger; 14 nodes.

Crypto, Gmail, Google Sheets +2
Email & Gmail

Great to keep an eye on and track publicly available documents such as company TOS, government policy or competitor pages. A scheduled trigger is used so we can run everyday to automate this process.

Crypto, Gmail, Google Sheets +2
Email & Gmail

YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.

Gmail, Google Drive, Google Sheets +1
Email & Gmail

This workflow automates a document approval process using Supabase and Gmail. Teams that need structured multi-level document approvals. Companies managing policies, contracts, or proposals. Medical d

Supabase, Crypto, Gmail +3
Email & Gmail

Instead of providing a routine check, it focuses on significant movements by: Sending a Slack alert only if a query crosses a defined movement threshold. Emailing a structured report with the Top 25 i

HTTP Request, Slack, Gmail