Solana链打狗策略脚本详细教程
“打狗策略”在Solana生态中,指的是狙击新推出的meme币(俗称“土狗”或“金狗”),特别是通过pump.fun平台快速发射的狗主题或高潜力token。这种策略利用Solana的高TPS(每秒交易数)和低Gas费,实现一级市场链上狙击:在token bonding curve(绑定曲线)早期买入,等待迁移到Raydium DEX添加流动性后暴涨,追求10x-100x回报。2025年,Solana meme热潮持续,pump.fun主导新币发射(日均数百个),但竞争激烈,需高速RPC和bot优化。 DYOR(Do Your Own Research),本教程仅供学习参考,不构成投资建议。高风险包括rug pull、honeypot和资金损失。
本教程从入门准备开始,逐步介绍检查、高阶策略,最后提供一个基于Python的简单sniper脚本(使用solana-py库)。脚本实现监控pump.fun新token创建,并在安全检查后自动买入。假设你有Python基础和Solana钱包(如Phantom)。全过程在主网测试,小额起步。
当前日期:2025年10月9日,Solana网络拥堵时Gas可达0.01 SOL/笔,建议使用付费RPC(如QuickNode或Helius)。
第一步:入门准备(基础设置)
1.1 钱包和资金准备
- 创建/导入钱包:使用Phantom或Solflare,切换到Solana主网(RPC: https://api.mainnet-beta.solana.com/,但推荐付费节点)。
- 获取SOL:在Binance或Coinbase购买SOL(Gas+交易资金),转入钱包。建议0.05-0.5 SOL Gas,另1-5 SOL交易。
- 导出私钥:脚本需私钥(危险!仅安全环境)。警告:泄露=资金丢失,使用硬件如Ledger。
1.2 安装开发环境
- Python环境:Python 3.10+。
- 依赖库:运行:
text
pip install solana solders anchorpy requests python-dotenv websockets
- solana:Solana RPC交互。
- solders:低级交易构建。
- anchorpy:解码pump.fun Anchor程序。
- requests/websockets:API和WS监控。
1.3 核心工具和API
- 监控工具:
- pump.fun:新币发射平台(https://pump.fun/)。
- Dexscreener.com:实时pair(过滤Solana,new pairs <5min)。
- Birdeye.so:token数据和聪明钱追踪。
- 交易DEX:Raydium(AMM主力),或Jupiter聚合器。
- RPC提供商:QuickNode/Helius(免费tier限速,付费<1ms延迟)。获取WS端点用于事件监听。
- API密钥:Helius Webhooks(免费)或pump.fun IDL(从GitHub下载)。
提示:加入Discord/Twitter(如@pumpdotfun)监控信号。使用Trojan Bot或Solsniffer作为半自动工具。
第二步:中阶心法(合约检查与风险评估)
Solana token易rug(开发者撤资),买入前必查。pump.fun token有6位小数(非标准9位)。
2.1 基本检查清单
使用表格总结:
检查项 | 工具/方法 | 阈值/标准 | 为什么重要? |
---|---|---|---|
流动性锁定 | Rugcheck.xyz 或 SolanaTracker | 锁定>6个月,比例>80% | 防rug pull。 |
Honeypot | QuillCheck / Solsniffer | 无honeypot标记 | 防无法卖出。 |
税费 | Birdeye.so 或合约代码 | 买入/卖出税<5% | 高税吃利润。 |
持有者分布 | Solscan.io (Holders) | 前10持有<40% | 避鲸鱼操控。 |
Mint权限 | Solscan (Token tab) | Mint已放弃(freeze) | 防无限增发。 |
聪明钱 | Birdeye 或 Dexscreener | 跟随KOL/聪明地址买入 | 提高胜率。 |
2.2 自动化检查脚本片段
集成QuillCheck API(示例):
import requests
def check_honeypot(token_address):
url = f"https://check.quillai.network/api/v1/tokens/{token_address}/report?chain=solana"
response = requests.get(url)
data = response.json()
if data.get('is_honeypot', False) or data.get('risk_score', 0) > 70:
return False # 风险高,跳过
return True
实践:在pump.fun搜索新币,复制mint地址,逐查。只打“金狗”。
第三步:高阶策略(信号来源与优化)
3.1 信号获取
- 手动:pump.fun“New”页,过滤<1min发射,volume>10k USD。
- 半自动:Dexscreener API或Birdeye Webhook监控新Raydium LP。
- 全自动:WS监听pump.fun程序ID(6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P)“create”事件,或Raydium“initialize2”指令。
3.2 策略变体
- 保守型:bonding curve 50%完成买入0.05 SOL,止盈5x。
- 激进型:<30s买入,目标50x,但需Jito bundle防MEV。
- 聪明钱跟单:监控KOL地址,复制买入。
优化提示:优先费0.0002-0.001 SOL;多钱包分散;动态滑点5-15%;用Geyser插件低延迟。
第四步:打狗脚本实现(核心代码)
以下基础Python脚本:WS监控pump.fun新token,过滤含“dog”的,检查后买入(使用Jupiter swap模拟)。基于Chainstack和QuickNode指南简化。 完整版见GitHub: https://github.com/chainstacklabs/pump-fun-bot。
4.1 环境配置
下载pump.fun IDL: idl/pump_fun_idl.json(从https://github.com/chainstacklabs/pump-fun-bot)。创建`.env`:
PRIVATE_KEY=你的私钥(base58)
WALLET_ADDRESS=你的钱包地址
RPC_URL=https://api.mainnet-beta.solana.com # 替换为QuickNode
WS_URL=wss://api.mainnet-beta.solana.com # WS端点
PUMP_PROGRAM=6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
BUY_AMOUNT=0.05 # SOL买入
SLIPPAGE=10 # %
COOLDOWN=15 # 秒延迟
4.2 完整脚本代码
import os
import time
import json
import asyncio
import websockets
from solana.rpc.async_api import AsyncClient
from solana.rpc.websocket_api import connect
from solders.pubkey import Pubkey
from solders.keypair import Keypair
from anchorpy import Idl, Program
from dotenv import load_dotenv
import requests # 检查
load_dotenv()
# 配置
rpc_url = os.getenv('RPC_URL')
ws_url = os.getenv('WS_URL')
private_key = os.getenv('PRIVATE_KEY')
wallet = Keypair.from_base58_string(private_key)
wallet_address = wallet.pubkey()
pump_program = Pubkey.from_string(os.getenv('PUMP_PROGRAM'))
buy_amount_lamports = int(float(os.getenv('BUY_AMOUNT')) * 10**9)
slippage = int(os.getenv('SLIPPAGE'))
cooldown = int(os.getenv('COOLDOWN'))
# 加载IDL (假设文件存在)
with open('idl/pump_fun_idl.json', 'r') as f:
idl = Idl.from_json(f.read())
program = Program(idl, pump_program, AsyncClient(rpc_url))
def check_honeypot(token_mint):
try:
url = f"https://check.quillai.network/api/v1/tokens/{token_mint}/report?chain=solana"
response = requests.get(url)
data = response.json()
return not data.get('is_honeypot', True) and data.get('risk_score', 100) < 30
except:
return False
async def buy_token(token_mint):
if not check_honeypot(token_mint):
print(f"Token {token_mint} unsafe, skipping.")
return False
# 简化Jupiter swap (实际集成Jupiter API或Raydium SDK)
# 这里模拟: 构建buy指令 (使用Anchor)
try:
# 获取bonding curve (简化,实际从事件解码)
bonding_curve = Pubkey.find_program_address([b"bonding-curve", token_mint.bytes], pump_program)[0]
# 构建buy tx (伪代码,参考Chainstack manual_buy.py)
ix = program.instruction["buy"](
amount=buy_amount_lamports,
ctx={"accounts": {
"user": wallet_address,
"mint": token_mint,
"bonding_curve": bonding_curve,
# ... 其他账户
}}
)
tx = await program.rpc(ix, ctx={"signer": wallet})
print(f"Buy TX: {tx.value}")
return True
except Exception as e:
print(f"Buy failed: {e}")
return False
async def monitor_pump():
async with connect(ws_url) as websocket:
# 订阅logs for pump program
await websocket.program_subscribe(pump_program)
async for msg in websocket:
if 'result' in msg and 'value' in msg['result']:
logs = msg['result']['value']['logs']
# 过滤create指令 (Anchor discriminator)
if any('create' in log for log in logs):
# 解码事件获取mint (简化,从logs解析)
token_mint_str = "示例MINT从日志提取" # 实际: 使用anchorpy解码
token_mint = Pubkey.from_string(token_mint_str)
token_name = "DOGE-MEME" # 实际API获取
if 'dog' in token_name.lower():
print(f"New dog token: {token_mint}")
await asyncio.sleep(cooldown)
await buy_token(token_mint)
# 运行
asyncio.run(monitor_pump())
4.3 脚本说明
- 逻辑:WS订阅pump.fun程序logs,过滤“create”事件,解码mint,检查后买入(bonding curve buy)。
- 改进点:
- 集成Jito bundle防MEV(见GitHub jito-go)。
- 添加卖出:监控价格,调用sell指令。
- Raydium扩展:订阅“initialize2”日志检测LP迁移。
- 测试:用devnet RPC(https://api.devnet.solana.com)。
4.4 如何运行
- 保存为sol_sniper.py,下载IDL。
- python sol_sniper.py。
- 监控日志,验证TX在Solscan.io。
- 测试:小额,模拟事件。
第五步:风险与注意事项
5.1 常见陷阱
- Rug Pull:pump.fun后开发者撤曲线。
- MEV/Jito战:TX被抢,需bundle和高优先费。
- 网络拥堵:免费RPC延迟>10s,用付费<1s。
- 法律:meme易涉诈骗,合规操作。
5.2 高级提示
- 多链:扩展到Base/ETH。
- 资源:Chainstack GitHub教程,Reddit r/SolanaSniperBots。
- 追踪:Excel记录,目标胜率>15%。
通过此教程,你可自动化Solana打狗。从小额实践,优化bot。祝好运,市场无常,谨慎投资!需调试问我。