paper-plane提交交易

如何发送交易

Astralane 为不同场景提供多种选择。以下是我们用于发送交易的主要 RPC 方法。


sendTransaction

circle-info

🚀 建议优先使用 sendTransaction,获取更快的落地速度。

  • 与所有主流 Solana 库完全兼容,可直接替换你现有的 RPC 提交流程。

  • 通过我们的 SWQoS 合作通道(包含 Jito 与 Paladin,后者要求更高的最小小费)进行路由,兼顾性能与可靠性。

  • 用法与普通 RPC 完全一致:把 URL 换成我们的端点即可。唯一不同是需额外添加一条“小费”转账指令。

JSON-RPC 参数格式:

"params" : [                     // params 是一个数组
    <encoded_transaction>,
    <Transaction Configuration>,
    <mevProtect true/false>
]
参数
类型
说明

Encoded Transaction

String

使用 base64 编码的交易串。

Transaction Configuration

JSON Object

建议设置: - encoding as base64 - skipPreflight as true

MeV Protect

JSON Object

可选。设为 true 将开启 MEV 保护,默认 false。

请求示例 JSON :

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "sendTransaction",
  "params": [
    "base64_encoded_txn1",
    {
      "encoding": "base64",
      "skipPreflight": true
    },
    { "mevProtect": true }
  ]
}
circle-info

sendTransaction 支持 max_retries 参数。若你不希望我们质押节点为你的交易自动重试,可用该参数控制。欢迎联系我们了解适用场景。

**新增:若最小小费达到 Paladin 要求,该端点也可同时向 Paladin 广播(优势见后文)。


sendBundle

如果你的操作需要原子性落地,请使用 sendBundle。

  • 单个原子包最多可包含 4 笔交易,按顺序依次执行。

  • 任意一笔失败即整体回滚,确保一致性,避免“部分成功”。

参数
类型
说明

Boolean

若一个 bundle 仅包含 1 笔交易且该值为 false,则会走 sentTransaction 路线。默认 false

请求示例:

响应示例:

返回交易签名列表

circle-info

说明:MAX_TRANSACTIONS_IN_BUNDLE = 4


sendIdeal

为狙击场景而生!

由于验证者分化为 Jito 与非 Jito,两种付费路径(Jito tip vs 优先费)如何取舍常令人纠结。可利用可持久 nonce(durable nonce)来对冲不确定性。

sendIdeal 接受两笔交易:

  • 交易 A:高优先费 + 最低小费

  • 交易 B:高小费 + 较低优先费

我们会通过 SWQoS 与打包管线并行路由,并借助 durable nonce 确保一旦其中一笔上链,另一笔会自动作废,从而兼顾效率与成本。

如果你不想自行管理 nonce 账户,可使用我们的托管服务。我们会为你的每个 api-key 创建专属 nonce 账户,并可通过 getNonce RPC 查询。

建议按以下步骤集成:

Step 1 : 获取 Nonce

circle-info

if you already have an existing nonce account, you can just pass in your nonce account, you can simply pass in your nonce account public key instead of the API key. The response will still include your parsed nonce.

已有自托管 nonce 账户?

可以直接在 params 传入你的 nonce 账户公钥,响应同样会返回解析后的 nonce。

使用时,注意把 advance nonce 指令放在交易的第一条指令。

Step 2 : 生成两笔交易并用 partial_sign 预签名

circle-info

使用 Astralane 托管的 nonce 账户时,请务必使用 partial_sign。若使用自管 nonce,可按常规 sign。

**新增:若最小小费满足 Paladin 要求,该端点也可同时向 Paladin 广播(优势见下文)。

请求示例:

响应示例:

实际时延表现受当前网络状态影响。如需为你的业务推荐更合适的参数与架构,请在 Telegram 联系我们。


sendPaladin (Beta)

Paladin 是定制的 TPU 端口实现,可更高效地将交易直达当前 Leader。截止 2025-03-10,Paladin 客户端已覆盖约 10% 的 Solana 节点。更多arrow-up-right

Step 1:追踪 Paladin 领导者

由于 Paladin 验证者并非覆盖所有 slot,我们提供了“Paladin 领导者跟踪”服务,便于你按领导者动态路由交易。

强烈建议使用 gRPC 跟踪实时领导者(普通 RPC 时效性不足)。

若暂时无法使用 gRPC,建议在配置中将 enableFallback 设为 true,以获得更稳的效果。

  1. 获取当前 epoch 的 Palidator 公钥列表

或参考: `https://api.paladin.one/validatorsarrow-up-right`

  1. 获取下一位 Palidator 的领导槽位

  1. 查询某一槽位及之后的下一位 Palidator 领导

circle-exclamation

Step 2:构造 Paladin 交易

circle-info

请参考“最低小费(Min Tip)”的相关使用限制。

Paladin slot 内通过 sendPaladin方法发送交易。务必满足最小小费与最小优先费的要求。

该端点的排序规则:

  • 优先按 priority fee 排序;

  • 若出现并列,再按向 Astralane 小费地址支付的小费高低决出先后。

参数
类型
说明

Boolean

启用后,失败的交易将被丢弃,而不是以失败状态上链。默认 false。

Boolean

设为 true:若当前 slot Leader 非 Paladin,或在 Paladin slot 的拍卖中未“胜出”,则自动回退到 sendTransaction 流水线继续发送。 设为 false:若在非 Paladin slot 提交,或竞拍未中标,将报错(如 Invalid Request: transaction received at slot xxx which is not a paladin slot, fallback not enabled),并被静默丢弃。

circle-info

请结合 Paladin Leader API 持续追踪活跃领导者与 slot 时间窗口,按需调整小费/费用;并通过配置端点动态更新参数,以获得更优的成本与成功率。


需要帮助?

加入我们的 Discordarrow-up-right ,获取技术文档、接入支持与实时更新。

最后更新于