小费规则
您通过 Apex 发送的每笔交易都必须包含恰好一笔满足以下所有条件的小费:1
一条 SystemProgram 转账
小费是一条普通的
SystemProgram::Transfer 指令,转给已公布的 Apex 小费账户之一。2
位于顶层
该转账是交易的顶层指令。在您的程序内部通过 CPI 进行的转账不算数。
3
由签名者出资
支付小费的账户需要对交易签名。它不必是费用支付者。
4
小费账户位于静态密钥中
小费账户出现在交易的静态账户密钥中。不要通过地址查找表加载它。
5
不低于您所在等级的下限
标准等级的下限为 0.001 SOL(1,000,000 lamports)。您的密钥所属等级可能设有不同的下限。
只有上链才付费
小费位于您的交易内部。如果交易没有上链,转账就不会执行,您无需支付任何费用。被拒绝、已过期或被丢弃的交易不会花费您任何小费。获取小费账户
在任意 Apex 端点上调用 JSON-RPCgetTipAccounts。无需 API 密钥。
已发布的账户
主网小费账户,全部是小费程序9ig7pd4gqe2m16ACGPbPo4HfMGD3ba38poDhXEayx7EF 的金库。getTipAccounts 是权威列表:端点只接受其中的账户,任何变更也会先出现在那里。每个地址都以 APeX 开头,被替换的账户一眼就能看出来。
添加小费指令
小费的去向
小费账户是 OrbitFlare 链上小费程序的金库。只有该程序可以从中扣款。 当最终让您的交易上链的是 Jito 路径时,小费减去 5,000 lamports 基础费用后的金额,会在与您的交易相同的捆绑包中作为出价支付给 Jito。您无需另外添加 Jito 小费。一笔 Apex 小费覆盖全部三条路径。
因此,小费越高,在 Jito 拍卖中的出价就越高。无论哪条路径让交易上链,您花费的金额都相同,因为小费就是您签名的那笔转账。
小费与优先费是两回事
Apex 负责把您的交易送达领导者。领导者的调度器仍然按优先费对交易排序,优先费等于您的计算单元价格乘以计算单元上限。请在每笔交易上同时设置这两项:- 计算单元上限应接近交易的实际用量。过大的上限会降低您每单元的有效优先级,并浪费区块空间。
- 计算单元价格应符合您所涉及账户的当前市场行情。
TransactionConfig 中设置计算预算。
关于如何确定这两项的大小,参见最佳实践。