Jito 捆绑交易
一个捆绑(bundle)让最多五笔交易在同一个区块里按顺序原子落地:要么全部成功,要么全部失败,中间不会被插队。典型用途是发币加多个钱包买入,或者协同卖出。
两个接口,都无需密钥:
POST /api/local-bundle用同一个 blockhash 构建未签名交易,Jito 小费放在最后一笔。- 用各自的钱包给每笔交易签名,然后
POST /api/send-bundle把已签名的一组转发给 Jito block engine 并返回 bundle id。你也可以自己提交给 Jito。
构建
POST https://sol.shrine.trade/api/local-bundle
{
"trades": [
{ "action": "buy", "publicKey": "<wallet A>", "mint": "<mint>", "amount": 0.5, "slippage": 15, "pool": "pumpfun" },
{ "action": "buy", "publicKey": "<wallet B>", "mint": "<mint>", "amount": 0.3, "slippage": 15, "pool": "pumpfun" }
],
"jitoTip": 0.001
}
每一项的字段与本地交易相同。每笔交易可以用不同的钱包;各钱包给自己的交易签名。小费由最后一笔交易的钱包支付。
响应:
{
"transactions": ["<base64 tx 1>", "<base64 tx 2>"],
"blockhash": "…",
"feeLamports": 2000000,
"tipLamports": 1000000
}
捆绑里的多操作交易
不传 trades,改传 transactions:每一项是一个多操作交易请求体,带自己的 publicKey 和 actions。发币带狙击钱包就是这么做的:创建放在第一笔,其他钱包的买入放在后面。一笔交易里设置的 mintRef 在后面的交易里同样可用。
{
"transactions": [
{ "publicKey": "<dev>", "actions": [
{ "action": "create", "mintRef": "coin", "mint": "<mint keypair public key>", "name": "My Coin", "symbol": "COIN", "uri": "https://…/metadata.json", "initialBuy": 0.5 }
]},
{ "publicKey": "<wallet A>", "actions": [{ "action": "buy", "mint": "$coin", "amount": 0.3, "slippage": 30 }] },
{ "publicKey": "<wallet B>", "actions": [
{ "action": "buy", "mint": "$coin", "amount": 0.3, "slippage": 30 },
{ "action": "buy", "mint": "$coin", "amount": 0.2, "slippage": 30, "publicKey": "<wallet C>" }
]}
],
"jitoTip": 0.001
}
此时响应带 signers,每笔交易一个列表,列出必须签名的每个密钥(这里第一笔是开发者钱包和 mint 密钥对)。对尚不存在的币的买入按它的发射常量报价,所以请用 slippage 留出余量。
发送
POST https://sol.shrine.trade/api/send-bundle
{
"transactions": ["<base64 signed tx 1>", "<base64 signed tx 2>"],
"blockEngine": "https://frankfurt.mainnet.block-engine.jito.wtf",
"guaranteedDelivery": true
}
blockEngine 可选,必须是 Jito 主网节点;默认是全球端点。提交会带上我们的 block engine 认证,Jito 要求有它捆绑才会进入系统。响应是 { "bundleId": "…", "guaranteedDelivery": true }。用它轮询 Jito 的 getBundleStatuses,或者盯着你的钱包。
开启 guaranteedDelivery 后,我们会每两秒重发同一个已签名捆绑,直到 Jito 报告已落地,或者大约一分钟后 blockhash 过期。一次调用,你这边不用写重试循环;交易不会落地两次,因为已落地的签名在重发时会被拒绝。
单笔交易小费
任何本地交易、创建或领取都接受 jitoTip,它会把小费转账附加到那一笔交易上,这样你可以把它单独作为一个单笔捆绑发送。
手续费
每笔交易正常的 0.25%。小费付给 Jito,不是我们。