Aster Smart Money Tracking Tool (English Version)


创建日期: 2025-09-28 13:30:22 最后修改: 2025-09-28 14:07:49
复制: 0 点击次数: 194
avatar of 发明者量化-小小梦 发明者量化-小小梦
4
关注
1271
关注者

Push message:

Aster Smart Money Tracking Tool (English Version)

Core Assumptions

Early holders of successful projects often possess superior market judgment, and their other holdings are likely to be the next opportunities.

Strategy Process

1. Target Selection

Choose a proven successful project (such as a token with significant price appreciation) as the “seed project.”

2. Smart Money Identification

Filter out genuine “smart money” from the seed project’s holders: Screening Criteria:

Holding ratio: < 5% (exclude project whale holders) Capital scale: holding value > $1 million (funding requirement) Address type: exclude exchanges, project treasuries, DeFi protocol contracts

Excluded institutional keywords: exchange, binance, treasury, foundation, uniswap, vault, etc.

3. Portfolio Analysis

Batch query the filtered smart money addresses to obtain their complete ERC20 holdings. Data Cleaning:

Filter out stablecoins (USDT, USDC, DAI, BUSD) Exclude spam tokens (possible_spam = true) Count frequency of each token appearance

4. Risk Classification

Categorize discovered tokens into three classes based on security scores and holding concentration:

💎 Core Long-term Holdings (30-40% position)

  • Security score ≥ 90
  • Contract verified
  • Logic: Highest safety, suitable for large position long-term holding

🚀 Heavy Bet Targets (10-15% position)

  • Smart money holding ratio > 0.1%
  • Security score < 80 or unrated
  • Logic: Smart money heavy bets, possibly early high-potential projects

⚖️ Diversified Allocation Options (10-20% position)

  • Security score 60-85
  • Contract verified
  • Logic: Risk-return balance, suitable for diversified investment

Strategy Advantages

✅ Data-driven: Based on real on-chain holding data, not subjective speculation ✅ First-mover advantage: Follow smart money for early positioning, avoid chasing highs ✅ Risk diversification: Multi-tier allocation, balancing returns and risks ✅ Automation: Reduce manual analysis time, improve decision efficiency

Risk Warnings

⚠️ Market risk: Smart money can also make wrong judgments, past performance doesn’t guarantee future results ⚠️ Concentration risk: Avoid over-concentration in screened targets ⚠️ Timeliness: Markets change rapidly, need timely updates of analysis results ⚠️ Technical risk: Unverified contracts have security risks, require extra caution

Execution Key Points

Regular updates: Recommend daily updates of analysis results to capture latest dynamics Portfolio allocation: Strictly allocate positions according to risk levels, don’t go all-in on single targets Stop-loss mechanism: Set reasonable stop-loss points to control single investment risk Continuous tracking: Monitor changes in smart money address holdings, adjust strategy timely

Remember: This is an auxiliary decision-making tool, not an investment guarantee. Always combine with your own risk tolerance when making decisions.

策略源码
{"type":"n8n","content":"{\"workflowData\":{\"nodes\":[{\"parameters\":{\"notice\":\"\",\"rule\":{\"interval\":[{\"field\":\"days\",\"daysInterval\":1,\"triggerAtHour\":0,\"triggerAtMinute\":0}]}},\"type\":\"n8n-nodes-base.scheduleTrigger\",\"typeVersion\":1.2,\"position\":[-512,16],\"id\":\"026076a8-a64d-47f1-93d4-298f3d742c97\",\"name\":\"Scheduled Trigger\"},{\"parameters\":{\"method\":\"GET\",\"url\":\"=https://deep-index.moralis.io/api/v2.2/erc20/{{$vars.contractAddress}}/owners\",\"authentication\":\"none\",\"sendQuery\":true,\"specifyQuery\":\"keypair\",\"queryParameters\":{\"parameters\":[{\"name\":\"chain\",\"value\":\"bsc\"},{\"name\":\"limit\",\"value\":\"100\"},{\"name\":\"order\",\"value\":\"DESC\"}]},\"sendHeaders\":true,\"specifyHeaders\":\"keypair\",\"headerParameters\":{\"parameters\":[{\"name\":\"accept\",\"value\":\"application/json\"},{\"name\":\"X-API-Key\",\"value\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImU2Mzk0MDA4LTYxODAtNDMzOC04NzczLTgwZjNhNjI4ZjE1MSIsIm9yZ0lkIjoiNDMwNjkyIiwidXNlcklkIjoiNDQzMDMxIiwidHlwZUlkIjoiZGNmNmY0OTctNmZhNy00NDAxLThmYWUtMzdkMGE4ZDI2NjYwIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3MzkyNjMxNDMsImV4cCI6NDg5NTAyMzE0M30.SzM3MoOsCaeEAiyW6mwVRYmIks1YcJa-EcGxU0_eiGg\"}]},\"sendBody\":false,\"options\":{},\"infoMessage\":\"\"},\"type\":\"n8n-nodes-base.httpRequest\",\"typeVersion\":4.2,\"position\":[-288,16],\"id\":\"5e835a60-4265-4e2d-a9a8-f45dbb05b036\",\"name\":\"Get Top 100 Holdings\"},{\"parameters\":{\"mode\":\"runOnceForAllItems\",\"language\":\"javaScript\",\"jsCode\":\"const data = $input.first().json.data.result;\\nconst address = [];\\n\\n// Helper function to check if it's an institutional label\\nfunction isInstitutionalLabel(label) {\\n  if (!label) return false;\\n  \\n  const institutionalKeywords = [\\n    'exchange', 'binance', 'coinbase', 'kraken', 'okex', 'huobi',\\n    'uniswap', 'pancakeswap', 'sushiswap',\\n    'treasury', 'foundation', 'team', 'dev',\\n    'vault', 'pool', 'contract', 'router'\\n  ];\\n  \\n  const lowerLabel = label.toLowerCase();\\n  return institutionalKeywords.some(keyword => lowerLabel.includes(keyword));\\n}\\n\\nfor (const item of data) {\\n  // Conditions for filtering smart money\\n  const isRetail = (\\n    // Main condition: holding ratio less than 5%\\n    item.percentage_relative_to_total_supply < 5 &&\\n    \\n    // Auxiliary condition: exclude known institutional addresses\\n    (item.owner_address_label === null || \\n     !isInstitutionalLabel(item.owner_address_label)) &&\\n    \\n    // Auxiliary condition: funding requirements\\n    parseFloat(item.usd_value) > 1000000  // Greater than 1 million USD\\n  );\\n  \\n  // Only add to array if smart money conditions are met\\n  if (isRetail) {\\n    address.push({ json: { owner_address: item.owner_address } });\\n  }\\n}\\n\\nreturn address;\",\"notice\":\"\"},\"type\":\"n8n-nodes-base.code\",\"typeVersion\":2,\"position\":[-64,16],\"id\":\"aabdece9-f14b-4f7b-9e3f-1a9c85e51f66\",\"name\":\"Smart Money Screening\"},{\"parameters\":{\"splitInBatchesNotice\":\"\",\"batchSize\":\"={{ $input.all().length }}\",\"options\":{}},\"type\":\"n8n-nodes-base.splitInBatches\",\"typeVersion\":3,\"position\":[160,16],\"id\":\"66f8a68f-69fd-4b59-a36a-c7b4a8157431\",\"name\":\"Smart Wallet Loop\"},{\"parameters\":{\"mode\":\"runOnceForAllItems\",\"language\":\"javaScript\",\"jsCode\":\"inputdata = $input.all()\\nfunction filterTokens(walletData) {\\n    // Get tokens data\\n    let tokens = walletData.json.data;\\n    \\n    // Check if tokens is an array, if not, perform conversion\\n    if (!Array.isArray(tokens)) {\\n        Log('❌ tokens is not an array, starting conversion...');\\n        Log('❌ Original tokens type:', typeof tokens);\\n        Log('❌ Original tokens content:', tokens);\\n        \\n        // Try multiple conversion methods\\n        if (tokens === null || tokens === undefined) {\\n            Log('⚠️ tokens is null/undefined, returning empty array');\\n            tokens = [];\\n        } \\n        else if (typeof tokens === 'object' && tokens.data) {\\n            // If tokens is an object and contains data property\\n            Log('🔄 Detected tokens.data, trying to use tokens.data');\\n            tokens = Array.isArray(tokens.data) ? tokens.data : [tokens.data];\\n        }\\n        else if (typeof tokens === 'object' && tokens.result) {\\n            // If tokens is an object and contains result property\\n            Log('🔄 Detected tokens.result, trying to use tokens.result');\\n            tokens = Array.isArray(tokens.result) ? tokens.result : [tokens.result];\\n        }\\n        else if (typeof tokens === 'object') {\\n            // If it's an object, convert to array containing this object\\n            Log('🔄 Converting object to array');\\n            tokens = [tokens];\\n        }\\n        else {\\n            // Other cases, try to force convert to array\\n            Log('🔄 Force converting to array');\\n            try {\\n                tokens = Array.isArray(tokens) ? tokens : [tokens];\\n            } catch (e) {\\n                Log('❌ Conversion failed, using empty array');\\n                tokens = [];\\n            }\\n        }\\n        \\n        Log('✅ Converted tokens type:', typeof tokens);\\n        Log('✅ Is converted tokens an array:', Array.isArray(tokens));\\n        Log('✅ Converted tokens length:', tokens.length);\\n    } \\n    \\n    // If still not an array or empty after conversion, return empty result\\n    if (!Array.isArray(tokens) || tokens.length === 0) {\\n        Log('⚠️ Final tokens is still not a valid array, returning empty result');\\n        return {\\n            highSecurityTokens: [],\\n            bigHoldingTokens: [],\\n            mediumRiskTokens: []\\n        };\\n    }\\n    \\n    // Filter out stablecoins and spam tokens\\n    const filteredTokens = tokens.filter(token => \\n        token && \\n        token.symbol && \\n        !['USDT', 'USDC', 'DAI', 'BUSD'].includes(token.symbol) && \\n        !token.possible_spam\\n    );\\n    \\n    Log('🔍 Token count after filtering:', filteredTokens.length);\\n    \\n    // High security value tokens (security score>=90 and verified)\\n    const highSecurityTokens = filteredTokens\\n        .filter(token => \\n            token.security_score >= 90 && \\n            token.verified_contract\\n        )\\n        .map(token => token.symbol);\\n    \\n    // Big holding potential tokens (holding ratio>0.1% and unrated or low-rated)\\n    const bigHoldingTokens = filteredTokens\\n        .filter(token => \\n            token.percentage_relative_to_total_supply > 0.001 && \\n            (token.security_score === null || token.security_score < 80)\\n        )\\n        .map(token => token.symbol);\\n    \\n    // Medium risk opportunity tokens (security score 60-85 and verified)\\n    const mediumRiskTokens = filteredTokens\\n        .filter(token => \\n            token.security_score >= 60 && \\n            token.security_score <= 85 && \\n            token.verified_contract\\n        )\\n        .map(token => token.symbol);\\n    \\n    Log('📊 Classification results - High security:', highSecurityTokens.length, 'Big holdings:', bigHoldingTokens.length, 'Medium risk:', mediumRiskTokens.length);\\n    \\n    return {\\n        highSecurityTokens,\\n        bigHoldingTokens,\\n        mediumRiskTokens\\n    };\\n}\\nvar result = []\\n// Usage example - fix syntax errors\\ninputdata.forEach((item, index) => {\\n    Log(`🔄 Processing wallet ${index + 1}`);\\n    try {\\n        const filteredResult = filterTokens(item);\\n        result.push(filteredResult);\\n        Log(`✅ Wallet ${index + 1} processing completed`);\\n    } catch (error) {\\n        Log(`❌ Error processing wallet ${index + 1}:`, error.message);\\n        Log('❌ Erroneous wallet data structure:', JSON.stringify(item, null, 2));\\n        result.push({\\n            highSecurityTokens: [],\\n            bigHoldingTokens: [],\\n            mediumRiskTokens: []\\n        });\\n    }\\n});\\nLog('🎉 All wallets processing completed, total count:', result.length);\\nreturn [{result}]\",\"notice\":\"\"},\"type\":\"n8n-nodes-base.code\",\"typeVersion\":2,\"position\":[384,-128],\"id\":\"4021aecd-d193-4f42-b13b-d142bfc27fdc\",\"name\":\"Holding Token Classification\"},{\"parameters\":{\"method\":\"GET\",\"url\":\"=https://deep-index.moralis.io/api/v2.2/{{ $json.owner_address }}/erc20\",\"authentication\":\"none\",\"sendQuery\":true,\"specifyQuery\":\"keypair\",\"queryParameters\":{\"parameters\":[{\"name\":\"chain\",\"value\":\"bsc\"},{\"name\":\"limit\",\"value\":\"100\"}]},\"sendHeaders\":true,\"specifyHeaders\":\"keypair\",\"headerParameters\":{\"parameters\":[{\"name\":\"accept\",\"value\":\"application/json\"},{\"name\":\"X-API-Key\",\"value\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6IjQ4ZGFlODg5LWU1YjItNGVkYS04ZTc1LTAzZWRlZjAxNTcyOCIsIm9yZ0lkIjoiNDcyMjkzIiwidXNlcklkIjoiNDg1ODQ5IiwidHlwZUlkIjoiZmZkZmU4YjAtYTRlNi00ZjE3LTgwNGYtZWExZmY3Y2M1YWRjIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3NTg3NzEwMDQsImV4cCI6NDkxNDUzMTAwNH0.gWjnh9cTzYY5eHrPR4Qy29eY1czDCbp3eQogOC0utfU\"}]},\"sendBody\":false,\"options\":{},\"infoMessage\":\"\"},\"type\":\"n8n-nodes-base.httpRequest\",\"typeVersion\":4.2,\"position\":[384,64],\"id\":\"216c8de4-a2c3-4925-9dfc-1c37e68e253a\",\"name\":\"Get Smart Money Holding Tokens\"},{\"parameters\":{\"mode\":\"runOnceForAllItems\",\"language\":\"javaScript\",\"jsCode\":\"var inputdata = $input.first().json.result\\nconst result = {};\\n\\n['highSecurityTokens', 'bigHoldingTokens', 'mediumRiskTokens'].forEach(category => {\\n  const counts = {};\\n  inputdata.forEach(item => \\n    item[category]?.forEach(token => counts[token] = (counts[token] || 0) + 1)\\n  );\\n  \\n  result[category] = Object.entries(counts)\\n    .sort((a, b) => b[1] - a[1])\\n    .slice(0, 5)\\n    .map(([token, count]) => ({ token, count }));\\n});\\n\\nreturn [{result}]\\n\",\"notice\":\"\"},\"type\":\"n8n-nodes-base.code\",\"typeVersion\":2,\"position\":[608,-128],\"id\":\"51a08841-1b85-4e87-bc30-58815ca19a54\",\"name\":\"Count Token Frequency\"},{\"parameters\":{\"text\":\"== Based on \\\"smart money\\\" analysis of specific ERC20 token holders on BSC chain, discover the next potential targets by analyzing the investment portfolios of early holders in high-quality projects.\\nCollected data: {{ $json.result.toJsonString()}}\\nAnalysis Background\\nDiscover smart money deployment patterns through analyzing successful project holders' investment portfolios:\\n\\nScreening Criteria - Holdings above $1M USD, excluding project treasury (≥10%), exchange addresses, Safe/Treasury wallets\\nInvestment Logic - These smart money investors can usually identify quality projects early, their other holdings are likely the next opportunities\\nRisk Classification - Categorize based on security scores and holding concentration, balancing returns with risks\\n\\nData Structure Explanation\\n\\nhighSecurityTokens: High security projects (score ≥90 and verified) - Core long-term holding candidates\\nbigHoldingTokens: Large concentrated holdings (holding ratio >0.1% and score <80) - Smart money heavy bet targets\\nmediumRiskTokens: Balanced risk projects (score 60-85 and verified) - Diversified allocation choices\\n\\nAnalysis Requirements\\n\\nSearch Latest News: Focus on token project progress, ecosystem development, partnerships\\nSmart Money Logic: Analyze why these successful investors would choose these targets\\nMarket Timing: Judge whether current timing is suitable for entry\\nPortfolio Recommendations: Provide specific position allocation suggestions\\n\\nOutput Format Requirements\\nUse Telegram HTML format, strictly follow the template below:\\n<b>🎯 Smart Money Investment Portfolio Analysis Report</b>\\n<b>💎 Core Long-term Holdings</b> (High Security - Recommended <code>30-40%</code> position)\\n<pre>Token    Count   Smart Money Selection Logic    Recommended Action\\nTOKEN    XX times Core value analysis           Buy/Watch</pre>\\n<b>🚀 Heavy Bet Targets</b> (Big Holdings - Recommended <code>10-15%</code> position)\\n<pre>Token    Count   Concentration   Betting Rationale        Risk Warning\\nTOKEN    XX times High/Medium     Breakout potential analysis Specific risk points</pre>\\n<b>⚖️ Diversified Allocation Choices</b> (Medium Risk - Recommended <code>10-20%</code> position)\\n<pre>Token    Count   Risk Level      Allocation Logic\\nTOKEN    XX times Medium Risk     Balanced return reasoning</pre>\\n<blockquote><b>⚠️ Risk Warning</b>\\nFollowing smart money does not guarantee profits. Decisions should be made based on personal risk tolerance and market conditions. Avoid over-concentrated positions as recommended, since this is already based on wallet screening related to target tokens.</blockquote>\\n<i>Data Source: Real-time BSC on-chain holding data</i>\\nStrict Formatting Requirements:\\n\\nEvery <b> tag must have a corresponding </b>\\nEvery <code> tag must have a corresponding </code>\\nEvery <pre> tag must have a corresponding </pre>\\n\\n<blockquote> tag must have a corresponding </blockquote>\\n\\n<i> tag must have a corresponding </i>\\nToken addresses use <code>address</code> format\\nLinks use <a href=\\\"URL\\\">text</a> format\\n\",\"options\":{}},\"type\":\"@n8n/n8n-nodes-langchain.agent\",\"typeVersion\":1,\"position\":[832,-128],\"id\":\"3f516118-c305-4393-8e4a-268251154421\",\"name\":\"AI Intelligent Analysis\"},{\"parameters\":{\"model\":{\"__rl\":true,\"value\":\"anthropic/claude-sonnet-4\",\"mode\":\"list\",\"cachedResultName\":\"anthropic/claude-sonnet-4\"}},\"type\":\"n8n-nodes-base.lmOpenAi\",\"typeVersion\":1,\"position\":[928,96],\"id\":\"098419e2-eb48-425f-97aa-be1b8f6e279c\",\"name\":\"OpenAI Model\",\"credentials\":{\"openAiApi\":{\"id\":\"54d0b567-b3fc-4c6a-b6be-546e0b9cd83f\",\"name\":\"openrouter\"}}},{\"parameters\":{\"operation\":\"sendMessage\",\"chatId\":{\"__rl\":true,\"value\":\"-4935504511\",\"mode\":\"id\"},\"text\":\"={{ $json.output }}\",\"parseMode\":\"HTML\"},\"type\":\"n8n-nodes-base.telegram\",\"typeVersion\":1.2,\"position\":[1184,-128],\"id\":\"2e66e2c0-9902-4d4f-ae9c-7573af12bff3\",\"name\":\"Telegram Push\",\"credentials\":{\"telegramApi\":{\"id\":\"8f6a5210-a771-4981-b0a0-09e62769828b\",\"name\":\"Telegram account\"}}}],\"pinData\":{},\"connections\":{\"Scheduled Trigger\":{\"main\":[[{\"node\":\"Get Top 100 Holdings\",\"type\":\"main\",\"index\":0}]]},\"Get Top 100 Holdings\":{\"main\":[[{\"node\":\"Smart Money Screening\",\"type\":\"main\",\"index\":0}]]},\"Smart Money Screening\":{\"main\":[[{\"node\":\"Smart Wallet Loop\",\"type\":\"main\",\"index\":0}]]},\"Smart Wallet Loop\":{\"main\":[[{\"node\":\"Holding Token Classification\",\"type\":\"main\",\"index\":0}],[{\"node\":\"Get Smart Money Holding Tokens\",\"type\":\"main\",\"index\":0}]]},\"Holding Token Classification\":{\"main\":[[{\"node\":\"Count Token Frequency\",\"type\":\"main\",\"index\":0}]]},\"Get Smart Money Holding Tokens\":{\"main\":[[{\"node\":\"Smart Wallet Loop\",\"type\":\"main\",\"index\":0}]]},\"Count Token Frequency\":{\"main\":[[{\"node\":\"AI Intelligent Analysis\",\"type\":\"main\",\"index\":0}]]},\"AI Intelligent Analysis\":{\"main\":[[{\"node\":\"Telegram Push\",\"type\":\"main\",\"index\":0}]]},\"OpenAI Model\":{\"ai_languageModel\":[[{\"node\":\"AI Intelligent Analysis\",\"type\":\"ai_languageModel\",\"index\":0}]]}},\"active\":false,\"settings\":{\"timezone\":\"Asia/Shanghai\",\"executionOrder\":\"v1\"},\"tags\":[],\"meta\":{\"templateCredsSetupCompleted\":true},\"credentials\":{},\"id\":\"77650c86-eb9b-4fef-87fd-141a6ab462e6\",\"plugins\":{},\"mcpClients\":{}},\"startNodes\":[],\"triggerToStartFrom\":{\"name\":\"Scheduled Trigger\"}}"}