您的密钥。您的资产。

探索

概览查找钱包流动性资金池代币新池雷达关注列表

您的资产

钱包主页交易自动化兑换

生态系统

网络状态文档指南文章开发者设置
BANIPOOL/文档

搜索资金池

粘贴或输入池地址、池 ID、代币合约地址或代币符号。将同时搜索所有网络。

输入代币地址将显示使用该代币的池。

创建新资金池

连接钱包

选择此设备上的钱包,或通过二维码连接手机钱包。

检测到的钱包

未检测到浏览器钱包。请使用 WalletConnect 连接手机钱包。

用于查看投资组合的登录签名不会授权交易。

文档

构建交易

网站使用的报价 → 计划 → 签名 → 跟踪流程,同样可供您的应用使用。服务器从不签名或广播交易。

流程

  • 1. POST /v1/quotes(请求头 Idempotency-Key,8–128 个字符):服务器读取链上状态,计算输出、最低到账和费用,然后从您的钱包模拟最终交易。
  • 2. 若 requiresApproval 为真,先发送 approvals 交易(授权金额等于交易金额),然后重新请求报价。
  • 3. 使用 quoteId 调用 POST /v1/transaction-plans → 获得未签名交易 { id, to, data, value }。
  • 4. 从钱包签名并发送,然后报告哈希:POST /v1/transactions/:id/submissions。
  • 5. 轮询 GET /v1/transactions/:id(submitted → confirmed → finalized / failed),或接收 SSE/webhook 事件 transaction.finalized。

示例:在 Base 上将 ETH 兑换为 USDC

ts
import { createWalletClient, http } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';

const API = 'https://banipool.com/api/v1';
const ETH = '0x0000000000000000000000000000000000000000';
const USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`);
const wallet = createWalletClient({ account, chain: base, transport: http() });
const auth = { authorization: `Bearer ${process.env.BANIPOOL_SESSION}`, 'content-type': 'application/json' };

// Rute terbaik (1–2 langkah)
const route = await fetch(`${API}/swap-routes`, { method: 'POST', headers: auth,
  body: JSON.stringify({ chainRef: 'eip155:8453', tokenIn: ETH, tokenOut: USDC, amountIn: '1000000000000000' }) }).then((r) => r.json());
const [first, second] = route.data.steps;

// Quote (disimulasikan di mainnet dari wallet Anda)
const quote = await fetch(`${API}/quotes`, { method: 'POST',
  headers: { ...auth, 'idempotency-key': crypto.randomUUID() },
  body: JSON.stringify({ action: 'swap', deploymentId: first.deploymentId, poolAddress: first.poolAddress,
    tokenIn: ETH, amountIn: '1000000000000000', unwrapNative: false, slippageBps: 100,
    ...(second ? { viaDeploymentId: second.deploymentId, viaPoolAddress: second.poolAddress } : {}) }) }).then((r) => r.json());
console.log('minimum:', quote.data.swap.minOut, 'fee platform:', quote.data.platformFee);

// Plan → tanda tangan → laporkan hash
const plan = await fetch(`${API}/transaction-plans`, { method: 'POST', headers: auth,
  body: JSON.stringify({ quoteId: quote.data.id }) }).then((r) => r.json());
const hash = await wallet.sendTransaction({ to: plan.data.to, data: plan.data.data, value: BigInt(plan.data.value) });
await fetch(`${API}/transactions/${plan.data.id}/submissions`, { method: 'POST', headers: auth, body: JSON.stringify({ txHash: hash }) });

签名前务必向用户展示最低到账、费用和合约地址。切勿将私钥放入前端代码。

支持的操作

操作说明
swap通过资金池兑换代币(单笔交易 1–2 跳)。
mint / add开设新仓位或向仓位添加流动性。
mint + createPool创建新资金池并同时添加首笔流动性(createPool: true,initialPrice = 每个 token0 对应的 token1 数量;v4 还需 tickSpacing)。请先通过 GET /v1/pool-create/check 检查。Zap In(用一种代币支付):通过 POST /v1/pool-create/zap-plan 获取计划,逐步执行 swap,再用所得执行 mint。
remove / claim撤出流动性(部分/全部)或领取手续费。
compound / rebalance将手续费加回仓位,或移动到新区间。
stake / unstakeAerodrome:将仓位质押到 gauge 以获取奖励。

Zap 使用专用的计划端点:POST /v1/zap-in-contract-plans 和 POST /v1/zap-out-contract-plans(通过 BaniZap 合约的单笔交易);响应包含 approvals、call、最低输出和 platformFee。

通过 API 跨链

bash
# Rute tersedia
curl -s https://banipool.com/api/v1/bridge/routes | jq '.data[] | {symbol, fromChainRef, toChainRef}'

# Kuota (sesi wallet; Idempotency-Key wajib) → transaction + approvals
curl -s -X POST https://banipool.com/api/v1/bridge/quotes \
  -H "authorization: Bearer $BANIPOOL_SESSION" -H "idempotency-key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{"fromChainRef":"eip155:8453","toChainRef":"eip155:1","symbol":"USDC","amount":"5000000"}'

# Setelah transaksi dikirim: daftarkan untuk dilacak sampai completed
curl -s -X POST https://banipool.com/api/v1/bridge/transfers -H "authorization: Bearer $BANIPOOL_SESSION" \
  -H "content-type: application/json" -d '{"quoteId":"<id kuota>","txHash":"0x…"}'