7 分钟上手 pumpswap-sdk,轻松完成代币查询、挂单与成交。
Solana 生态因高吞吐和低手续费备受开发者青睐。作为新兴的快速 去中心化交易所,PumpSwap 为用户提供了媲美中心化平台的流畅体验。本文将手把手示范如何用 Python 调通其官方 SDK——pumpswap-sdk,让你从零到一站式完成代币价格获取、买入、卖出及池子数据拉取的全链路交互。
关键词:PumpSwap、Solana DEX、Python 交易脚本、 pumpswap-sdk、 去中心化交易所。
开始前你需要准备的 3 样东西
- Python ≥ 3.12
- 一台能联网的电脑与干净的 Solana 钱包私钥(建议用 Devnet 测试网)
- 依赖工具:pip 或 Poetry 二选一
👉 还没准备钱包?先看这篇 3 分钟 Solana 私钥安全指南。
📦 安装 pumpswap-sdk
如果使用 Poetry:
poetry add pumpswap-sdk如果使用 pip:
pip install pumpswap-sdk安装完成后,命令行输入 python -c "from pumpswap_sdk import PumpSwapSDK; print('OK')" 若输出 OK 则表示依赖安装成功。
🧪 配置环境变量
在项目根目录创建 .env 文件,内容如下:
HTTPS_RPC_ENDPOINT=https://api.devnet.solana.com
BUY_SLIPPAGE=0.3
SELL_SLIPPAGE=0.1
SWAP_PRIORITY_FEE=1500000- HTTPS_RPC_ENDPOINT:可替换为 Solana 主网或私有 RPC 节点
- BUY_SLIPPAGE / SELL_SLIPPAGE:下单容忍滑点,统一使用小数
- SWAP_PRIORITY_FEE:建议先试 1.5M,转账拥堵时再提高
🏃♂️ SDK 基础用法
在“真正的 DEX”场景中,推荐使用异步写法以获得更低延迟。
1. 初始化 SDK
import asyncio
from pumpswap_sdk import PumpSwapSDK
import os
rpc = os.getenv("HTTPS_RPC_ENDPOINT")
sdk = PumpSwapSDK(endpoint=rpc)- 读取
.env中的 RPC 节点,保证脚本在 CI/CD 时灵活切换网络 - 事件循环用
asyncio.run()包裹即可
2. 获取代币当前价格
async def fetch_price(mint: str):
price = await sdk.get_token_price(mint)
print(f"{mint[:6]}… 当前价格:{price:.6f} SOL")- mint:代币合约地址,在 Solscan 搜索即可得
- price 返回浮点值,表示 1 枚代币对应的 SOL 单价
3. 购买代币(Buy)
async def buy_token(mint: str, sol_amount: float, private_key: str):
tx = await sdk.buy(
mint=mint,
sol_amount=sol_amount,
private_key=private_key
)
print("✅ 买单广播成功,交易哈希:", tx.signature)注意事项:
- sol_amount 以 SOL 计价,传入 0.001 代表耗时费约 0.00025 SOL,余量留在钱包做 Gas
- SDK 会自动预留
BUY_SLIPPAGE的容差防止失败
4. 卖出代币(Sell)
async def sell_token(mint: str, token_amount: float, private_key: str):
tx = await sdk.sell(
mint=mint,
token_amount=token_amount,
private_key=private_key
)
print("✅ 卖单广播成功,交易哈希:", tx.signature)- SDK 内部根据用户钱包余额自动计算最小成交数量,零拆单功能 已内置
5. 拉取池子流动性数据(进阶)
async def pool_info(mint: str):
data = await sdk.get_pool_data(mint)
print("SOL 储备:", data.reserve_sol)
print("代币储备:", data.reserve_token)
print("交易次数 (24h):", data.volume_24h)函数返回 PoolData 对象,可将数据写入 pandas.DataFrame 做进一步策略回测。
🧩 案例:链上监控到自动套利
async def arbitrage_detect(mint: str, threshold: float):
while True:
price = await sdk.get_token_price(mint)
# 获取链上平均价
cex_price = await fetch_cex_price(mint) # 自有函数
if cex_price - price > threshold:
await buy_token(mint, 0.01, wallet_key)
await asyncio.sleep(5)这段 20 行脚本可用于 去中心化交易所 与 中心化交易所 之间的简易无风险套利演示;高阶玩家还可添加路由比价功能,以获得更高 alpha。
🔍 FAQ 快问快答
Q1:为什么我的买单一直 pending?
A:通常是Gas 不足或所选网络堵塞。提高 SWAP_PRIORITY_FEE 或切换到更快 RPC 即可。
Q2:买入后多久能在钱包看到币?
A:Solana 区块时间约 400ms,交易确认后 2–3 秒即可在 Phantom / Solflare 钱包界面刷新余额。
Q3: pumpswap-sdk 支持主网吗?
A:支持,只要在 .env 把 RPC 改为 https://api.mainnet-beta.solana.com 并带上有效私钥即可。
Q4:能否监控多个代币?
A:可以。把所有目标 mint 地址放在 list,通过 asyncio.gather 并发拉取,性能提升 5 倍以上。
Q5:如何保护私钥?
A:切勿硬编码进源码。使用环境变量或加密 keyfile,再配合 .gitignore 忽略敏感文件。
🚀 结语
至此,你已能够在 Solana 去中心化交易所 PumpSwap 上用 Python 完成代币查询、买卖与池子数据采集,并通过脚本快速部署个人策略。即刻把本文示例代码 fork 到你的 IDE,用 pumpswap-sdk 打造下一个流行交易机器人!