跳转到主要内容

用途

本页写给 AI 系统和开发者:想在一个地方搞清楚 LP Agent API 能做什么,以及怎么跑完整个流程。 如果你在构建 Agent,从这里开始,再顺着链接去看详细教程和 API 参考页面。
最快的机器可读文档入口:https://docs.lpagent.io/llms.txt

Base URL 和认证

  • Base URL:https://api.lpagent.io/open-api/v1
  • 认证方式:在请求 header 里带上 API key
  • Header 名称:x-api-key
永远不要把 API key 或私钥暴露在前端代码、共享的 prompt、截图或日志里。生产环境的 Agent 请使用安全的后端。

能力一览

1) 发现池子和市场状态

  • GET /pools/discover → 按条件筛选/排序查找池子(在 Solana 上,Fee/TVL 排序可以按 5m、1h、6h 或 24h 窗口计算)
  • GET /pools/{poolId}/info → 查看池子状态和 active bin 相关信息
  • GET /pools/{poolId}/positions → 某个池子里开的仓位
  • GET /pools/{poolId}/onchain-stats → 链上池子指标
  • GET /pools/{poolId}/top-lpers → 头部流动性提供者(LP)(Premium)

2) 追踪仓位和投资组合分析

  • GET /lp-positions/open → 某个 owner 的当前仓位
  • GET /lp-positions/historical → 历史/已平仓仓位
  • GET /lp-positions/overview → 汇总的投资组合指标
  • GET /lp-positions/logs → 仓位活动日志
  • GET /lp-positions/position → 单个仓位的详情
  • GET /lp-positions/revenue/{owner} → 收益/盈亏时间序列数据

3) 执行流动性操作(zap-in 单币入池 / zap-out 一键出池)

  • POST /pools/{poolId}/add-tx → 生成未签名的 zap-in 交易
  • POST /pools/landing-add-tx → 提交已签名的 zap-in 交易
  • POST /position/zap-out-estimates → 估算每种 zap-out 输出方式实际能拿到多少
  • POST /position/decrease-tx → 生成未签名的 zap-out 交易
  • POST /position/landing-decrease-tx → 提交已签名的 zap-out 交易

4) 领取手续费

  • POST /position/claim-fee-tx → 生成未签名的领取手续费交易,可选附带换成 SOL 的交易
  • POST /position/landing-claim-fee-tx → 提交已签名的领取手续费交易

5) 钱包和网络工具

  • GET /token/balance → 钱包代币余额
  • POST /rpc、POST /rpc/historical → Solana JSON-RPC(Premium)
  • POST /jito → 发送 Jito bundle(Premium)

支持的链

读取类接口接受 chain=SOL(默认)或 chain=ROBINHOOD。所有构建或发送交易的接口都只支持 Solana。 chain 和 platform 在每个接口上的具体行为,见 API 参考简介。

端到端流程

流程 A:发现池子 -> Zap-In

适用于你的 AI 想用 SOL 开一个新的 LP 仓位。
1

1) 发现候选池子

带上链、流动性、市值和交易量筛选条件,调用 GET /pools/discover。
2

2) 读取选中池子的信息

调用 GET /pools/{poolId}/info,用 active bin 数据确定 fromBinId / toBinId。
3

3) 生成添加流动性交易

调用 POST /pools/{poolId}/add-tx,传入 stratergy、owner、区间、滑点和投入数量。
4

4) 本地签名

在你的运行环境里,用用户钱包签名 base64 交易。
5

5) 提交上链

把已签名的交易提交到 POST /pools/landing-add-tx。

流程 B:列出仓位 -> 估算 -> Zap-Out

适用于你的 AI 想关闭一个 LP 仓位的全部或一部分。
1

1) 获取当前仓位

调用 GET /lp-positions/open?owner=<wallet>,选定目标仓位的 id。
2

2) 估算能拿到多少(可选)

用 position_id(仓位的 id)和 bps 调用 POST /position/zap-out-estimates。每条估算对应一种 output 方式,告诉你钱包最终能收到什么。仅支持 Meteora DLMM 仓位。
3

3) 生成移除流动性交易

调用 POST /position/decrease-tx,传入 position_id、bps、owner、slippage_bps 和 output 模式。如果是 DAMM V2 仓位,还要传 type: "meteora_damm_v2"(就是仓位的 protocol)。
4

4) 本地签名

用 owner 钱包签名 base64 交易。
5

5) 提交上链

把已签名的交易提交到 POST /position/landing-decrease-tx。

流程 C:自动再平衡循环

适用于你的 AI 需要持续让仓位保持在区间内。
  1. 轮询 GET /lp-positions/open?owner=...
  2. 对每个 inRange=false 的仓位:
    • zap-out 旧仓位(decrease-tx + landing-decrease-tx,type 按仓位的 protocol 来填)
    • 检查可用的 SOL(GET /token/balance)
    • 获取池子的 active bin(GET /pools/{poolId}/info)
    • zap-in 新仓位(add-tx + landing-add-tx)
  3. 每隔一段时间重复一次(例如每 60 秒)

关键参数和限制

  • bps:decrease-tx 上是 0..10000,zap-out-estimates 上是 1..10000(10000 = 100%)
  • slippage_bps:0..10000
  • decrease-tx 和 claim-fee-tx 的仓位类型枚举:meteora(DLMM,默认)、meteora_damm_v2
  • pools/discover 的 feeTVLInterval:5m、1h、6h、24h
  • percentX:0..1
  • 策略枚举:Spot、Curve、BidAsk
  • 添加模式枚举:normal、zap-in
  • zap-out 输出枚举:allToken0、allToken1、both、allBaseToken
  • provider 枚举(仅限支持的接口):OKX、JUPITER_ULTRA
在请求体里,添加流动性的字段名目前是 stratergy(拼写以 API 定义为准)。

给 Agent 开发者的运维建议

  • 用 landing 接口,交易成功的处理会更好
  • 签名和密钥处理只放在可信的运行环境里
  • 交易过期了(超过区块高度窗口)就重新生成
  • 对临时性的 API/网络故障,加上带退避的重试
  • 别超过你套餐的每分钟请求数(Basic 5、Premium 10、Enterprise 20);收到 429 就等一下再重试
  • 收到 401 加 Unauthorized,说明 key 没带、不存在或者已经没有访问权限(比如付费套餐到期了),见 API 参考简介
  • 始终记录请求 ID、接口和 owner(不要泄露密钥)

最简 TypeScript API 封装

推荐阅读顺序

  1. API 参考简介
  2. 通过 API 进行 Zap-In 和 Zap-Out
  3. 自动再平衡机器人
  4. 复投 LP 手续费收益
  5. AI 页面

需要完整的接口 schema?

打开 API Reference 标签页,查看基于 OpenAPI 生成的完整接口详情。