项目编号:【184143】
梦做区块链空投监控自动脚本的📌 Solana 清仓监控空投机器人(精准复刻版)
一、界面布局
1. 基础配置区域
字段 类型 说明
我的铸币地址 输入框 你要空投的代币铸造地址(截图示例:EeeDYqE8YPqSJFdNDa9cSAzA88SuZH57J3hgUATgL7)
监控目标地址 输入框 要监控清仓的代币地址(截图示例:7nePACJng88s1KFJptgaBvZYgHaUDzdgdU65EtVpump)
筛选周期(秒) 数字输入 默认 30 秒 可自行调整
自定义识别名 输入框 用于标记当前配置,如 NotinRetardEducation
2. 平台选择
复选框:OKX、JUP(Jupiter)、DFLOW(这三个)
3. 筛选策略区域
每个条件前面有复选框,后面有输入框,可自由调整
条件 输入框类型 截图默认值 说明
最小买入金额 (USDC) 数字 150 用户任意一笔买入金额 ≥ 阈值
最小交易次数 数字 2 用户在目标代币上的总交易次数 ≥ 阈值
最大交易次数 数字 100 用户在目标代币上的总交易次数 ≤ 阈值
SOL 持仓阈值 数字 0.001 用户的 SOL 余额 ≥ 阈值(单位 SOL)
首次交易金额阈值 (USDC) 数字 150 用户首次买入该代币的金额 ≥ 阈值
最大有效 SPL 代币数量 数字 9 用户持有的不同 SPL 代币种类 ≤ 阈值
4. 空投策略
固定空投金额:数字输入框,示例 759.6(直接填写代币数量,就是空投759.6个我的代币)
5. 操作面板
按钮:停止监控、刷新余额、黑名单管理(截图显示这三个,按实际保留)
6. 状态栏
项目 说明
当前配置 显示自定义识别名(如 NotinRetardEducation)
已空投地址数 累计成功空投数量(实时更新)
我的 SOL 余额 当前钱包余额(可几十秒更新一次)
买入用户数 截图显示 (监控期内独立买家数量)
7. 双日志区域
左侧“空投日志”:只显示成功空投记录,格式严格按截图:
text
4za15x8xYPt4t04Xtz8zefj3JK6QREk5Z8cQhYDYJdHxw, 策略:
清仓, 金额: 759.60 代币
[05:49:07] 地址:
DkUvjHL3rpAWNFDc5Hvh7HzPuLLgZRxB4E5h1hJFKKM, 策略:
清仓, 金额: 759.60 代币
右侧“日志输出”:显示系统运行日志,格式为 [时间] [级别] 消息,包括:
[INFO] 处理完成 0 个地址
[INFO] GeckoTerminal: 价格 $0.001608978014
[INFO] 开始 monitorAndAirdrop...
[INFO] 使用缓存的加池地址,数量:27
[INFO] 获取最新 DeFi 活动地址...
[INFO] 获取到 100 条 DeFi 活动
[INFO] 获取到 0 个候选记录
[INFO] 过滤后剩余 0 个记录
[INFO] 共找到 324 个加选钱包地址
[INFO] 使用缓存的加选地址,数量:324
8. 缓存机制
截图中有“共找到 324 个加选钱包地址”、“使用缓存的加选地址,数量:324”的日志,说明脚本维护了一个内存地址池缓存。建议实现一个简单的 Set 记录发现的与目标代币相关的地址(如买家地址),并在日志中输出缓存大小。
二、核心功能逻辑(与技术细节)
1. 数据获取
数据源:Helius 付费 RPC + REST API(用户提供 HELIUS_API_KEY)
轮询方式:每 筛选周期 秒(默认 30 秒)获取指定代币的最新 100 条交易(通过 Helius 的 /v0/addresses/{mint}/transactions 接口)
去重:记录已处理的交易签名,避免重复
2. 清仓检测
检测卖出:从交易 tokenTransfers 中找出代币转出方(卖家)
判断清仓:卖出后立即查询该地址该代币余额,余额为 0 才判定为清仓(账户不存在也视为余额 0)
3. 筛选条件实现(所有条件考虑启用状态)
条件 实现方式 关键点
交易次数 Helius getTransactionsForAddress + 过滤 tokenMint 必须针对目标代币,非钱包总次数
SOL 余额 connection.getBalance 单位 SOL
持有代币种类 connection.getTokenAccountsByOwner 统计数量 普通 SPL 代币
最小买入金额 解析买入交易,获取数量 → 乘以当前价格 → USDC 处理代币精度(默认 9)
首次交易金额 获取最早一笔买入交易,解析数量 → 换算 USDC 可用当前价格近似
平台筛选 优先 tx.source(JUPITER、OKX 等),备选程序 ID 需提供正确程序 ID
4. 空投执行
空投数量:用户输入的固定值(如 759.6),按精度转换为最小单位
自动创建 ATA:若接收方无关联账户,自动创建并扣租金
批量处理:每批 ≤5 个地址,批次间隔 2 秒
失败重试:最多 3 次,记录错误
去重:内存记录已空投地址,避免重复
5. 统计与界面更新
买入用户数:检测到买入时,买家地址入 Set,实时更新界面
候选/有效地址数:每轮统计后更新
已空投地址数:成功空投后累加
SOL 余额:可手动刷新(通过 RPC)
价格显示:通过 GeckoTerminal 获取并显示
6. 动态更新
用户修改配置(如空投金额)后点击“更新”,正在运行的监控实时采用新参数,无需重启
三、交付物要求
完整源代码文件:
main.js、preload.js、renderer.js、index.html
worker.js(监控核心,可用子进程)
package.json、.env.example
清晰 README,说明安装、配置、运行步骤
测试网演示:开发者需提供测试代币,演示功能正常
四、注意事项(开发者必读)
清仓必须严格判断余额为 0,不能仅凭交易类型
交易次数必须针对目标代币(用 Helius 付费方法)
所有筛选条件必须可独立
界面布局、日志格式必须与截图完全一致
平台筛选优先用 tx.source,备选程序 ID
实现简单的内存缓存,并在日志中输出大小
动态更新需实时生效