跳转至主要内容

SDK 示例

更新于
2026年7月20日

概述​

这些示例展示了在受支持的Quicknode 产品中,SDK 的结构。这些示例假设您已经将SDK 初始化为 qn 来自 快速入门.

Admin API​

使用Admin API 客户端来查看和管理账户资源,例如端点、团队、使用情况、计费、安全以及速率限制。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

const 端点 = await qn.admin.获取端点({
limit: 20,
sortBy: "created_at",
排序方向: "desc",
});

用于 (const endpoint 的 端点。数据) {
控制台.log(endpoint.id, endpoint.name, endpoint.状态);
}

有关完整的 API 接口,请参阅Admin API 文档。

RPC 和工具访问​

您可以使用 RPC 客户端向该账户的 Tooling Access 接口endpoint 发送 JSON-RPC 请求; qn.rpc 为每次调用生成并刷新会话 JWT。请先通过以下方式启用工具访问: qn.admin 控制平面方法(需要管理员角色)。通过 网络 将呼叫转接到特定网络。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

// Enable Tooling Access once (idempotent; requires an admin role).
const 状态 = await qn.admin.工具访问状态();
如果 (!状态.enabled) {
等待 qn.管理员.启用工具访问();
}

// params defaults to []; pass an array (positional) or object (named).
const blockNumber = await qn.rpc.调用("eth_blockNumber");
const 余额 = await qn.rpc.调用("eth_getBalance", ["0xabc...", "latest"]);
控制台.log(blockNumber, 余额);

// Route a call to a specific network by its multichain key.
const slot = await qn.rpc.调用("getSlot", [], "solana-mainnet");
控制台.log(插槽);

Streams​

使用Streams 客户端来列出、查看、创建、更新、暂停、激活、删除和测试Streams 。下面的示例列出了Streams ,统计了已启用的Streams ,并模拟执行了一个过滤器操作,而不会更改账户状态。

import { QuicknodeSdk, StreamDataset } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

const streams = await qn.streams.listStreams({ limit: 10 });
console.log(`Streams: ${streams.pageInfo.total}`);

const 已启用 = await qn.streams.getEnabledCount();
console.log(`Enabled Streams: ${enabled.total}`);

const filterFunction = Buffer.from(`
function main(data) {
返回数据;
}
`).toString("base64");

const 结果 = await qn.streams.testFilter({
网络: “ethereum-mainnet ”,
数据集: StreamDataset.Block,
block: "17811625",
filterFunction,
});

控制台.log(结果.result);

有关目标选项、支持的数据集以及请求详情,请参阅Streams REST API 文档。

Webhooks​

使用Webhooks 客户端可列出webhooks 、查看Webhook、根据模板创建Webhook、暂停或激活推送,以及获取已启用的数量。下面的示例仅供查阅。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

const webhooks = await qn.webhooks.listWebhooks({
limit: 10,
偏移量: 0,
});

用于 (const webhook of webhooks.data) {
控制台.log(webhook.id, webhook.name, webhook.状态);
}

const 已启用 = await qn.webhooks.getEnabledCount();
console.log(`Enabled webhooks: ${enabled.total}`);

有关模板行为和目标配置,请参阅Webhooks REST API 文档。

键值存储​

使用键值存储客户端来实现简单的持久化状态。Set 用于在每个键下存储一个字符串值。List 用于在单个键下存储有序的字符串集合。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

const sets = await qn.kvstore.getSets({ limit: 10 });
console.log(`Sets: ${sets.data.length}`);

如果 (设置.数据.length > 0) {
const set = await qn.kvstore.getSet(sets.data[0].键);
控制台.log(set.value);
}

const lists = await qn.kvstore.getLists({ limit: 10 });
console.log(`Lists: ${lists.data.keys.length}`);

有关所有列表和集合操作,请参阅键值存储 REST API 文档。

SQL 资源管理器​

使用 SQL Explorer 客户端对已建立索引的区块链数据运行 SQL 查询,并检索表结构。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

// Run a SQL query
const 结果 = await qn.sql.查询(
"SELECT action_type, user FROMhyperliquid_system_actions LIMIT 3",
"hyperliquid-core-mainnet"
);
console.log(`${result.rows} rows, ${result.credits} credits`);

// Get the schema for a cluster
const 模式 = await qn.sql.getSchema("hyperliquid-core-mainnet");
控制台.log(模式);

有关查询语法和可用表的信息,请参阅SQL Explorer 文档。

Agent 工作流示例​

Agents 可以在单次运行中整合多个客户端。例如,发布自动化agent 可以在决定采取何种行动之前,检查端点、Streams 、Webhooks 、键值存储的状态,并查询区块链数据。

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();

const endpoints = await qn.admin.getEndpoints({ tagLabels: ["sdk-managed"] });
const streams = await qn.streams.listStreams({ limit: 10 });
const webhooks = await qn.webhooks.listWebhooks({ limit: 10 });
const sets = await qn.kvstore.getSets({ limit: 10 });
const 交易 = await qn.sql.查询(
"SELECT * FROMhyperliquid_trades LIMIT 5",
"hyperliquid-core-mainnet"
);

控制台.log({
端点: 端点.数据.长度,
streams: streams.数据.长度,
webhooks: webhooks.数据.长度,
集合: 集合.数据.length,
交易: 交易.行,
});