快速入门
创建会话
在指定的 slot 范围内启动新的模拟会话。
startSlot/endSlot:模拟范围(包含起止 slot)。signerFilter(可选):跳过由这些地址签名的历史交易。disconnectTimeoutSecs(可选):断开连接后会话的保持时间(最长 900 秒)。
此方法需要在请求头中传入 X-API-Key。
{
"method": "createBacktestSession",
"params": {
"startSlot": 123456,
"endSlot": 234567,
"signerFilter": ["addr..."],
"disconnectTimeoutSecs": 30
}
}服务器还会先发送一条初始 slotNotification(对应 startSlot),会话就绪后再发送 readyForContinue。请使用返回的 RPC 端点进行该会话的交互。
{
"method": "sessionCreated",
"params": {
"sessionId": "<session_id>",
"rpcEndpoint": "/backtest/<session_id>"
}
}在会话期间,此 WebSocket 连接必须保持打开。一旦连接关闭,会话将被终止,所有账户状态也会被删除。
读取账户
每个会话都在 /backtest/<session_id> 提供标准的 Solana JSON-RPC 方法和订阅,包括:
getAccountInfo,getBalance,getMultipleAccountsaccountSubscribe,programSubscribe,signatureSubscribe
请参阅 API 参考,了解支持的全部 Solana 订阅方法。
执行 slot
模拟器从 startSlot 开始,并等待明确的 continue 指令后才会继续执行后续 slot。
advanceCount:暂停并等待用户操作之前要执行的 slot 数量,省略时默认为1。transactions:自定义交易。modifyAccountStates:执行前应用的账户覆盖。
{
"method": "continue",
"params": {
"advanceCount": 1,
"transactions": ["<base64_encoded_transaction>"],
"modifyAccountStates": {
"addr...": {
"data": {
"data": "<base64_bytes>",
"encoding": "base64"
},
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"space": 80
}
}
}
}
在 continue 过程中,服务器会发送 status 更新(例如 preparingBundle、decodedTransactions、appliedAccountModifications、executedBlockTransactions、programAccountsLoaded)。准备好推进到下一个 slot 时,服务器会发送 readyForContinue。
策略团队须知
使用
preloadPrograms+status: programAccountsLoaded,可在首次continue之前实现确定性启动。如需快速迭代,可使用
advanceCount > 1快进,同时仍可接收 slot 通知。签名检查已被明确禁用,因此可以伪造来自任意账户的交易。
最后更新于