
成功项目的早期持有者往往具备超前的市场判断力,他们的其他持仓很可能是下一个机会。
选择一个已经证明成功的项目(如涨幅显著的代币)作为”种子项目”。
从种子项目的持有者中筛选出真正的”聪明钱”:
筛选标准: - 持仓比例:< 5%(排除项目方巨鲸) - 资金规模:持仓价值 > 100万美元(资金要求) - 地址类型:排除交易所、项目方金库、DeFi协议合约
排除机构关键词:
exchange, binance, treasury, foundation, uniswap, vault 等
批量查询筛选出的聪明钱地址,获取他们的完整ERC20持仓。
数据清洗: - 过滤稳定币(USDT、USDC、DAI、BUSD) - 排除垃圾币(possible_spam = true) - 统计各代币出现频次
根据安全评分和持仓集中度将发现的代币分为三类:
✅ 数据驱动:基于链上真实持仓数据,不是主观猜测
✅ 先发优势:跟随聪明钱提前布局,避免追高
✅ 风险分散:多层级配置,平衡收益与风险
✅ 自动化:减少人工分析时间,提高决策效率
⚠️ 市场风险:聪明钱也会判断错误,过往表现不代表未来
⚠️ 集中度风险:避免过度集中投资筛选出的标的
⚠️ 时效性:市场变化快,需要及时更新分析结果
⚠️ 技术风险:未验证合约存在安全隐患,需要额外谨慎
记住:这是一个辅助决策工具,不是投资保证。始终要结合自己的风险承受能力做决策。
{"type":"n8n","content":"{\"workflowData\":{\"nodes\":[{\"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 模型\",\"credentials\":{\"openAiApi\":{\"id\":\"54d0b567-b3fc-4c6a-b6be-546e0b9cd83f\",\"name\":\"openrouter\"}}},{\"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\":\"获取前百持仓\"},{\"parameters\":{\"mode\":\"runOnceForAllItems\",\"language\":\"javaScript\",\"jsCode\":\"const data = $input.first().json.data.result;\\nconst address = [];\\n\\n// 检查是否为机构标签的辅助函数\\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 // 筛选聪明钱的条件\\n const isRetail = (\\n // 主要条件:持有比例小于5%\\n item.percentage_relative_to_total_supply < 5 &&\\n \\n // 辅助条件:排除已知的机构地址\\n (item.owner_address_label === null || \\n !isInstitutionalLabel(item.owner_address_label)) &&\\n \\n // 辅助条件:资金要求\\n parseFloat(item.usd_value) > 1000000 // 大于100万美元\\n );\\n \\n // 只有满足聪明钱条件的才添加到数组中\\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\":\"聪明钱筛选\"},{\"parameters\":{\"splitInBatchesNotice\":\"\",\"batchSize\":\"={{ $input.all().length }}\",\"options\":{}},\"type\":\"n8n-nodes-base.splitInBatches\",\"typeVersion\":3,\"position\":[160,16],\"id\":\"66f8a68f-69fd-4b59-a36a-c7b4a8157431\",\"name\":\"聪明钱包循环\"},{\"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\":\"获取聪明钱持仓币种\"},{\"parameters\":{\"mode\":\"runOnceForAllItems\",\"language\":\"javaScript\",\"jsCode\":\"inputdata = $input.all()\\n\\nfunction filterTokens(walletData) {\\n // 获取tokens数据\\n let tokens = walletData.json.data;\\n \\n // 检查tokens是否为数组,如果不是则进行转换\\n if (!Array.isArray(tokens)) {\\n Log('❌ tokens不是数组,开始转换...');\\n Log('❌ 原始tokens类型:', typeof tokens);\\n Log('❌ 原始tokens内容:', tokens);\\n \\n // 尝试多种转换方式\\n if (tokens === null || tokens === undefined) {\\n Log('⚠️ tokens为null/undefined,返回空数组');\\n tokens = [];\\n } \\n else if (typeof tokens === 'object' && tokens.data) {\\n // 如果tokens是对象且包含data属性\\n Log('🔄 检测到tokens.data,尝试使用tokens.data');\\n tokens = Array.isArray(tokens.data) ? tokens.data : [tokens.data];\\n }\\n else if (typeof tokens === 'object' && tokens.result) {\\n // 如果tokens是对象且包含result属性\\n Log('🔄 检测到tokens.result,尝试使用tokens.result');\\n tokens = Array.isArray(tokens.result) ? tokens.result : [tokens.result];\\n }\\n else if (typeof tokens === 'object') {\\n // 如果是对象,转换为包含该对象的数组\\n Log('🔄 将对象转换为数组');\\n tokens = [tokens];\\n }\\n else {\\n // 其他情况,尝试强制转换为数组\\n Log('🔄 强制转换为数组');\\n try {\\n tokens = Array.isArray(tokens) ? tokens : [tokens];\\n } catch (e) {\\n Log('❌ 转换失败,使用空数组');\\n tokens = [];\\n }\\n }\\n \\n Log('✅ 转换后的tokens类型:', typeof tokens);\\n Log('✅ 转换后的tokens是否为数组:', Array.isArray(tokens));\\n Log('✅ 转换后的tokens长度:', tokens.length);\\n } \\n \\n // 如果转换后仍然不是数组或为空,返回空结果\\n if (!Array.isArray(tokens) || tokens.length === 0) {\\n Log('⚠️ 最终tokens仍不是有效数组,返回空结果');\\n return {\\n highSecurityTokens: [],\\n bigHoldingTokens: [],\\n mediumRiskTokens: []\\n };\\n }\\n \\n // 过滤掉稳定币和垃圾币\\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('🔍 过滤后代币数量:', filteredTokens.length);\\n \\n // 高安全评分价值币 (安全评分>=90且已验证)\\n const highSecurityTokens = filteredTokens\\n .filter(token => \\n token.security_score >= 90 && \\n token.verified_contract\\n )\\n .map(token => token.symbol);\\n \\n // 大额持仓潜力币 (持仓比例>0.1%且未评分或低评分)\\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 // 中等风险机会币 (安全评分60-85且已验证)\\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('📊 分类结果 - 高安全:', highSecurityTokens.length, '大额持仓:', bigHoldingTokens.length, '中等风险:', mediumRiskTokens.length);\\n \\n return {\\n highSecurityTokens,\\n bigHoldingTokens,\\n mediumRiskTokens\\n };\\n}\\n\\nvar result = []\\n\\n// 使用示例 - 修复语法错误\\ninputdata.forEach((item, index) => {\\n Log(`🔄 处理第 ${index + 1} 个钱包`);\\n try {\\n const filteredResult = filterTokens(item);\\n result.push(filteredResult);\\n Log(`✅ 第 ${index + 1} 个钱包处理完成`);\\n } catch (error) {\\n Log(`❌ 第 ${index + 1} 个钱包处理出错:`, error.message);\\n Log('❌ 错误的钱包数据结构:', JSON.stringify(item, null, 2));\\n result.push({\\n highSecurityTokens: [],\\n bigHoldingTokens: [],\\n mediumRiskTokens: []\\n });\\n }\\n});\\n\\nLog('🎉 所有钱包处理完成,总数:', result.length);\\nreturn [{result}]\",\"notice\":\"\"},\"type\":\"n8n-nodes-base.code\",\"typeVersion\":2,\"position\":[384,-128],\"id\":\"4021aecd-d193-4f42-b13b-d142bfc27fdc\",\"name\":\"持仓币种分类\"},{\"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\":\"统计币种频率\"},{\"parameters\":{\"text\":\"==基于BSC链上特定ERC20代币持有者的\\\"聪明钱\\\"分析,通过分析优质项目早期持有者的投资组合,发现下一个潜力标的。\\n收集数据:{{ $json.result.toJsonString()}}\\n\\n## 分析背景\\n通过分析成功项目持有者的投资组合发现聪明钱布局规律:\\n1. **筛选标准** - 持仓100万美金以上,排除项目方金库(≥10%)、交易所地址、Safe/Treasury钱包\\n2. **投资逻辑** - 这些聪明钱通常能提前发现优质项目,他们的其他持仓很可能是下一个机会\\n3. **风险分级** - 根据安全评分和持仓集中度进行分类,平衡收益与风险\\n\\n## 数据结构说明\\n- **highSecurityTokens**: 高安全项目(评分≥90且已验证) - 核心长期持仓候选\\n- **bigHoldingTokens**: 大额集中持仓(持仓比例>0.1%且评分<80) - 聪明钱重仓押注标的 \\n- **mediumRiskTokens**: 平衡风险项目(评分60-85且已验证) - 分散化配置选择\\n\\n## 分析要求\\n1. **搜索最新资讯**: 重点关注代币的项目进展、生态发展、合作伙伴\\n2. **聪明钱逻辑**: 分析为什么这些成功投资者会选择这些标的\\n3. **市场时机**: 判断当前是否处于合适的进入时机\\n4. **组合建议**: 给出具体的仓位配置建议\\n\\n## 输出格式要求\\n**使用Telegram HTML格式**,严格按照以下模板输出:\\n\\n<b>🎯 聪明钱投资组合分析报告</b>\\n\\n<b>💎 核心长期持仓</b> (High Security - 建议<code>30-40%</code>仓位)\\n<pre>代币 频次 聪明钱选择逻辑 建议操作\\nTOKEN XX次 核心价值分析 建仓/观望</pre>\\n\\n<b>🚀 重仓押注标的</b> (Big Holdings - 建议<code>10-15%</code>仓位)\\n<pre>代币 频次 集中度 押注理由 风险提示\\nTOKEN XX次 高/中 爆发潜力分析 具体风险点</pre>\\n\\n<b>⚖️ 分散配置选择</b> (Medium Risk - 建议<code>10-20%</code>仓位)\\n<pre>代币 频次 风险等级 配置逻辑\\nTOKEN XX次 中等风险 平衡收益原因</pre>\\n\\n<blockquote><b>⚠️ 风险提示</b>\\n跟随聪明钱不等于稳赚,需要结合自身风险承受能力和市场环境做决策。不要持仓过于集中的建议,因为这本身就是根据目标币种进行的相关钱包筛选。</blockquote>\\n\\n<i>数据来源: BSC链上实时持仓数据</i>\\n\\n**严格格式化要求**:\\n1. 每个<b>标签必须有对应的</b>\\n2. 每个<code>标签必须有对应的</code> \\n3. 每个<pre>标签必须有对应的</pre>\\n4. <blockquote>标签必须有对应的</blockquote>\\n5. <i>标签必须有对应的</i>\\n6. 代币地址使用<code>地址</code>格式\\n7. 链接使用<a href=\\\"URL\\\">文本</a>格式\",\"options\":{}},\"type\":\"@n8n/n8n-nodes-langchain.agent\",\"typeVersion\":1,\"position\":[832,-128],\"id\":\"3f516118-c305-4393-8e4a-268251154421\",\"name\":\"AI 智能分析\"},{\"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推送\",\"credentials\":{\"telegramApi\":{\"id\":\"64b40791-c845-4775-9d67-0efc4122d162\",\"name\":\"Telegram account\"}}},{\"parameters\":{\"notice\":\"\",\"rule\":{\"interval\":[{\"field\":\"minutes\",\"minutesInterval\":5}]}},\"type\":\"n8n-nodes-base.scheduleTrigger\",\"typeVersion\":1.2,\"position\":[-512,16],\"id\":\"026076a8-a64d-47f1-93d4-298f3d742c97\",\"name\":\"定时触发器\"}],\"pinData\":{},\"connections\":{\"OpenAI 模型\":{\"ai_languageModel\":[[{\"node\":\"AI 智能分析\",\"type\":\"ai_languageModel\",\"index\":0}]]},\"获取前百持仓\":{\"main\":[[{\"node\":\"聪明钱筛选\",\"type\":\"main\",\"index\":0}]]},\"聪明钱筛选\":{\"main\":[[{\"node\":\"聪明钱包循环\",\"type\":\"main\",\"index\":0}]]},\"聪明钱包循环\":{\"main\":[[{\"node\":\"持仓币种分类\",\"type\":\"main\",\"index\":0}],[{\"node\":\"获取聪明钱持仓币种\",\"type\":\"main\",\"index\":0}]]},\"获取聪明钱持仓币种\":{\"main\":[[{\"node\":\"聪明钱包循环\",\"type\":\"main\",\"index\":0}]]},\"持仓币种分类\":{\"main\":[[{\"node\":\"统计币种频率\",\"type\":\"main\",\"index\":0}]]},\"统计币种频率\":{\"main\":[[{\"node\":\"AI 智能分析\",\"type\":\"main\",\"index\":0}]]},\"AI 智能分析\":{\"main\":[[{\"node\":\"Telegram推送\",\"type\":\"main\",\"index\":0}]]},\"定时触发器\":{\"main\":[[{\"node\":\"获取前百持仓\",\"type\":\"main\",\"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\":\"定时触发器\"}}"}