Solana RPC 端点文档 - ERPC
Solana RPC 端点文档
Solana RPC 端点是应用连接 Solana 网络的 API 地址。使用 ERPC 时,您可以用同一个 API key 通过 HTTP 发送 JSON-RPC 请求,或通过 WebSocket 订阅实时更新。
请将您的 API key 添加到
api-key 参数中。endpoint
示例:
以下示例会通过 Solana RPC 端点调用
getBlockHeight。bash
以下是 WebSocket 订阅示例。主机地址与 HTTP 相同。
endpoint
bash
您可以在 ERPC Dashboard 获取和查看 API key。
如果您需要比 WebSocket 更低的延迟,请考虑使用 Geyser gRPC 或 ShredStream。您可以在 ERPC Dashboard 中与我们讨论适合的 Solana 端点配置。
History Access
要查找较早的区块和交易,请在 HTTP 请求的
edge.erpc.global URL 中加入 history=true;值必须恰好是小写的 true。除 getTransactionsForAddress 外,不带 history=true 的请求由每个节点保存的近期范围响应;该选项适用于以下方法:getBlockgetBlockTimegetBlocksgetBlocksWithLimitgetTransaction,包括getParsedTransactiongetSignaturesForAddressgetSignatureStatuses,当searchTransactionHistory为true时getTransactionsForAddress,当transactionDetails为"full"时(需要 History Access)
将 API key 和该选项作为 query parameter 放在 URL 中:
endpoint
或者将
Authorization: Bearer <YOUR_API_KEY> 作为 header 发送,并在 URL 中保留该选项:endpoint
以下是使用 History Access 的 HTTP 请求示例。
bash
对于除
getTransactionsForAddress 的 "full" 模式之外的所有方法:- 每个由 History Access 响应的调用比其常规价格多消耗 640 个代币:
getBlock消耗 42 + 640 = 682。 - 来自 History Access 的
null、空结果或部分结果同样产生额外消耗。查找失败不产生额外消耗。 - 由近期数据响应的调用即使带有
history=true,也保持常规价格。 - 批次会逐个计算其中的每次调用;
getSignatureStatuses每次调用只计算一次,而不是按签名计算。 - 轮询近期交易时请不要加
history=true:那里的每个null都会产生额外消耗。
免费额度(包括 Free 方案的额度)对 History Access 设有上限。Free 方案限制为每 10 秒一个 History Access 请求。
transactionDetails 设为 "full" 的 getTransactionsForAddress 调用属于 History Access,无论交易是近期的还是较早的:- 该调用要求在
edge.erpc.globalURL 中带上history=true。不带此选项的请求会被拒绝并返回 History Access 错误(错误码-32011),且不产生任何消耗。 - 带有
history=true时,该调用消耗 420 + 640 × N 个代币:其常规价格 420,加上所获取的 N 笔交易每笔 640,无论交易是近期的还是较早的。没有交易的记录不计入。 - 该调用必须作为单独的请求发送。包含它的批次无论是否带有
history=true都会被拒绝:批次中的每个调用都会收到错误-32600和消息This request is not available in a mixed JSON-RPC batch. Please send it as a separate request.,且其中没有任何一个会被发送。
默认的
signatures 模式不需要 history=true,也不产生额外消耗。如需轮询某个地址的新交易,请使用 signatures 模式,并通过 getTransaction 获取所需的交易。查找较早的区块或交易可能比普通请求耗时长得多,某些情况下会达到数秒。History Access 是一个独立的选项,它把这类查找与普通请求分开,从而让普通请求保持快速。
不带
history=true 时,对较早 slot 发出的 getBlock 或 getBlockTime 请求可能返回以下错误:json
对于早于节点所保存范围的签名,
getTransaction、getParsedTransaction 和 getSignatureStatuses(searchTransactionHistory: true 时)返回 null,而 getSignaturesForAddress、getBlocks 和 getBlocksWithLimit 返回空结果或部分结果。带有
history=true 的请求可能返回以下消息:This plan has reached its limit for history access. Add a paid plan to use tokens for history access.— 当某项免费额度(例如 Free 方案的额度)达到上限时显示。History access is unavailable while your token balance is low. Add tokens.— 在付费方案中,代币余额不足时显示。On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan.— 在 Free 方案中,History Access 请求到达过快时显示。
Unlimited Endpoint 支持方法
Unlimited Endpoints 是为低延迟标准 Solana RPC 调用优化的专用 HTTP 端点。支持的标准 Solana RPC 方法为:
getSlotgetBlockHeightgetLatestBlockhashgetBalancegetAccountInfogetMultipleAccountsgetTransactionsendTransactionsimulateTransactiongetSignatureStatusesgetRecentPrioritizationFeesgetHealthgetVersiongetEpochInfogetBlock
对于不在此支持范围内的方法,请使用
https://edge.erpc.global?api-key=<YOUR_API_KEY>。Solana RPC 方法和文档
有关方法、参数和订阅规范的完整列表,请参阅官方文档。文档涵盖 HTTP 和 WebSocket 的使用方式。






