Python-远程-1个月
¥6-12K/月
技能要求:
经验要求: 5-10年经验
程序员客栈
2026-03-02 13:28
工作描述:
项目编号:【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

实现简单的内存缓存,并在日志中输出大小

动态更新需实时生效
公司信息

立即沟通