跳转到主要内容
Node RPC 是一个快速可靠的生产节点,让您能够通过 RPC 访问超过 80 个区块链网络。它允许您发送交易、部署智能合约、查询区块链数据或执行其他操作,无需自行运行节点或管理基础设施。
Node RPC 在付费计划中可用。要为您的账户启用它,请联系我们的销售团队
Node RPC 支持:
  • 多区域基础设施(欧盟与美国),确保与位置无关的低延迟
  • 通过 httpWebSocket 协议访问
  • 请求批处理
  • 通过 Node Extensions 构建自定义 RPC 方法
  • 访问 Tenderly 的开发工具

自定义 RPC 方法

除了支持标准 EVM 方法外,Node RPC 还在 tenderly_ 命名空间下暴露 Tenderly 的自定义 RPC 方法。 模拟、gas 估算和跟踪方法在专门的页面上有详细文档: 解码和签名查找方法可在 RPC 参考 中找到:

管理 Node RPC

登录 Dashboard 并前往 Node RPCs 页面,在那里您可以创建新的 Node RPC 并管理现有的 Node RPC。

创建 Node RPC

要创建新的 Node RPC,请按以下步骤操作:
  • 点击 Create Node 按钮
  • 选择您想访问的网络
  • 为该 Node 提供一个名称
  • 点击 Create
您创建的每个 Node 都将拥有唯一的 URL。

配置 Node RPC

创建 Node RPC 后,您可以在 Settings 中进行配置。您可以:
  • 重置 Node RPC URL
  • 更改 Node 名称
  • 删除该 Node

将 Node RPC 添加到 MetaMask

一键将 Node RPC 添加到您的 MetaMask 钱包。打开该节点的 Overview 页面,点击 Add to Wallet 按钮,并在 MetaMask 中确认操作。 在 MetaMask 中点击 Approve 以添加 Node RPC。 Node RPC

WebSockets

除 HTTPS 外,Node RPC 也可通过 WebSocket(wss://)访问。WebSocket 连接是持久的、双向的,并且是订阅方法 eth_subscribeeth_unsubscribe 所必需的。 要获取 WebSocket 端点,请在 Dashboard 中打开节点的 Overview 页面并复制 WSS URL。 您可以使用命令行工具 wscat 测试连接:
example
wscat -c wss://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY
连接后,通过套接字发送 JSON-RPC 请求并实时接收响应:
request.json
{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}
response.json
{"jsonrpc":"2.0","id":1,"result":"0x657330"}

批量 JSON-RPC 请求

JSON-RPC 请求批处理允许您在单次 HTTPS 调用中发送多个 JSON-RPC 方法调用。批处理请求由一组单独的 JSON-RPC 请求构成,响应是一个按对应顺序返回批处理中每个请求结果的数组。 您可以通过以下方式使用批处理:
  • 直接使用,通过发送包含单独 JSON-RPC 调用数组的 HTTPS 请求,
  • 使用 Ethers,实例化 JsonRpcBatchProvider
  • 使用 Viem,在通过 createPublicClient 创建客户端时配置 batch 参数。
如果某个特定请求失败,批处理请求仍会返回 200 OK HTTP 状态,并且对应失败的 JSON-RPC 调用的响应对象中会携带错误信息。
请求批处理仅在 HTTPS 上支持。WSS 上不支持批处理。批处理中的每个请求都会被单独计数与计费;请参阅 Node RPC 定价
batch-call.sh
curl https://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '[
  {"jsonrpc": "2.0", "id": 1, "method": "eth_blockNumber", "params": []},
  {"jsonrpc": "2.0", "id": 2, "method": "eth_gasPrice", "params": []},
  {"jsonrpc": "2.0", "id": 3, "method": "eth_getBalance", "params": ["0xd8da6bf26964af9d7eed9e03e53415d37aa96045", "latest"]}
]'
在 Viem 中,批处理在客户端层面进行配置:
batch-calls.ts
const client = createPublicClient({
  chain: mainnet,
  transport: http(
    `https://mainnet.gateway.tenderly.co/${process.env.TENDERLY_NODE_ACCESS_KEY}`,
    {
      batch: true,
    }
  ),
});

const [blockNumber, balance, ensName] = await Promise.all([
  client.getBlockNumber(),
  client.getBalance({ address: "0xd2135CfB216b74109775236E36d4b433F1DF507B" }),
  client.getEnsName({ address: "0xd2135CfB216b74109775236E36d4b433F1DF507B" }),
]);

RPC Request Builder

RPC Request Builder 让您能够从浏览器中执行任何受支持的 RPC 方法。每个请求都会直接发送到 Node RPC。Builder 还允许您使用现有集合或创建自己的请求。 请查看 RPC 参考 中所有受支持的 RPC 方法列表。

Node Extensions

Node Extensions 允许您使用 JavaScript 或 TypeScript 通过自定义 RPC 方法扩展 Node RPC 的功能,以满足您 dapp、协议或特定的需求。作为 Node Extensions 构建的 RPC 方法具有 extension_ 前缀,并通过 Node RPC 执行。 Node Extensions 您可以从 DashboardNode Extensions 选项卡以多种方式创建 Node Extension:
  • 从零构建:点击 Create Custom Extension,为 RPC 方法命名,并编写每次调用时执行的 JavaScript/TypeScript 函数。
  • 复用 Web3 Action:复用带有非鉴权 webhook 触发器的现有 Web3 Action 的源代码作为扩展的函数。
  • 从库中部署:点击 Add From Library,从公共 Node Extensions 库 中启用一个预构建的扩展。库扩展不可编辑。
  • 通过 CLI 部署:使用 Tenderly CLI,通过 tenderly node-extensions inittenderly.yaml 中定义扩展,并通过 tenderly node-extensions deploy 发布。
如果您的扩展使用 API 密钥或其他敏感值,请将它们存储为 Web3 Action Secrets,并在代码中通过 await context.secrets.get('API_KEY') 读取它们。使用扩展上的 Test 按钮向其发送 JSON-RPC 负载,并预览请求和响应。

资源

通过以下资源开始使用 Node RPC 或继续了解其工作原理。

模拟与 Gas 估算

通过 JSON-RPC 模拟交易并获得精确的 gas 估算。

RPC 参考

查看 Node RPC 上受支持的 RPC 方法详细列表。

受支持的网络

查看 Node RPC 上支持的完整网络列表。

定价

了解基于执行 RPC 方法所用算力的计费方式。