概述
Quicknode SDK是一个通用 SDK,可让您使用您已熟悉的编程语言(Rust、Python、Node.js 和 Ruby)调用 Quicknode 产品的 API。
使用它来构建 Quicknode 产品工作流、运维服务、脚本以及需要对以下内容进行类型化访问的 AI 代理:
- 管理 API:管理端点、使用情况、计费、团队、端点安全、速率限制、日志、指标和账户标签。
- RPC: Make on-chain JSON-RPC calls to any supported network without provisioning an endpoint.
- 流:创建、更新、暂停、激活、测试和删除流。
- Webhooks:基于 Quicknode Webhook 模板创建和管理 Webhook 订阅。
- 键值存储:用于存储和检索应用程序状态、流过滤器、监视列表、游标以及代理内存中的集合和列表。
- SQL 浏览器:对已建立索引的区块链数据运行 SQL 查询,并检索表结构。
面向使用 Quicknode SDK 进行开发的开发人员和代理商的完整参考指南:
何时使用 SDK
当您希望为 Quicknode 产品 API 使用一个统一的客户端时,请使用该 SDK,尤其是在您的应用或代理需要在同一个工作流中协调多个产品时。
常见的工作流程包括:
- 使用管理 API 创建或管理端点。
- Make on-chain JSON-RPC calls to any supported network.
- 创建一个流,并将经过过滤的链上数据传输到 webhook 接收端。
- 将处理状态或关注列表存储在键值存储中。
- 根据模板创建 Webhook 并管理其生命周期。
- 使用 SQL Explorer 对已建立索引的区块链数据执行 SQL 查询。
- 构建能够检查账户状态、配置资源并清理测试基础设施的构建代理工作流。
软件包
| 语言 | 包装 | 安装 |
|---|---|---|
| Node.js / TypeScript | @quicknode/sdk | npm install @quicknode/sdk |
| Python | quicknode-sdk | pip install quicknode-sdk |
| Rust | quicknode-sdk | cargo add quicknode-sdk --features rust |
| Ruby | quicknode_sdk | gem install quicknode_sdk |
平台支持
该 SDK 基于一个共享的 Rust 核心构建,并为特定语言提供了绑定。该核心会编译为每个受支持平台的本机库,从而为您提供可预测的性能和较小的依赖足迹。相应的取舍是,我们仅发布针对特定目标集的二进制文件,而非在宿主语言支持的每个环境中运行。
支持的目标
已发布以下平台的预编译原生模块:
| 平台 | 目标 |
|---|---|
| Linux(glibc) | x86_64、aarch64(基于 glibc 2.17 及以上版本)(manylinux2014) |
| Linux (musl) | Alpine 及其他 musl 发行版上的 x86_64、aarch64 |
| macOS | Apple Silicon (arm64) |
Linux glibc 二进制文件是基于 glibc 2.17 构建的,因此可在 2014 年及以后发布的任何发行版上运行,包括 RHEL 7 及以上版本、Ubuntu 14.04 及以上版本、Debian 8 及以上版本、Amazon Linux 2 及以上版本、SLES 12 及以上版本以及 Fedora 19 及以上版本。
不支持
- 浏览器:Quicknode SDK 不兼容浏览器。它通过原生绑定使用 Rust 核心,这需要 Node.js 或其他支持原生插件的运行时环境。标准浏览器打包无法加载这些绑定。
- Windows:未发布预编译二进制文件。WSL2 运行正常,是 Windows 开发者的推荐方案。
- Intel macOS:仅限 Apple Silicon。
- 较旧的 Linux 发行版:低于 glibc 最低版本要求:RHEL/CentOS 6(glibc 2.12)、Debian 7(glibc 2.13)、Ubuntu 12.04(glibc 2.15)、SLES 11(glibc 2.11)。
在不受支持的平台上,加载 SDK 时会立即失败,并显示一条列出可用目标的错误信息。该错误会在安装或导入时显现,而非首次调用时。
产品客户
只需构建一次 SDK,然后使用该共享配置所提供的各产品客户端。
| 客户 | 目的 | REST API |
|---|---|---|
管理员 | 端点、团队、使用情况、日志、计费、指标、安全性和速率限制 | https://api.quicknode.com/v0/ |
rpc | On-chain JSON-RPC calls to any supported network via Tooling Access | Account Tooling Access endpoint |
流 | 流的创建、更新、生命周期及过滤器测试 | https://api.quicknode.com/streams/rest/v1/ |
Webhooks | Webhook 模板、目标、生命周期和计数 | https://api.quicknode.com/webhooks/rest/v1/ |
kvstore | 用于持久化状态的集合和列表 | https://api.quicknode.com/kv/rest/v1/ |
sql | 针对已建立索引的区块链数据执行的 SQL 查询 | https://api.quicknode.com/sql/rest/v1/ |
SDK 的入口点是 QuicknodeSdk 在每种语言的绑定中。Ruby 将其暴露为 QuicknodeSdk::SDK.
SQL Explorer 方法
该 sql 客户端提供了两种方法:
query(sql, clusterId): 对已建立索引的区块链数据执行 SQL 查询。返回指定类型的行以及查询统计信息(信用点、扫描的行数、读取的字节数)。getSchema(clusterId): 获取集群的表结构。
const qn = new QuicknodeSdk();
// Run a SQL query
const resp = await qn.sql.query(
"SELECT action_type, user FROM hyperliquid_system_actions LIMIT 3",
"hyperliquid-core-mainnet"
);
console.log(`${resp.rows} rows, ${resp.credits} credits`);
// Get the schema for a cluster
const schema = await qn.sql.getSchema("hyperliquid-core-mainnet");
身份验证
在 Quicknode 仪表盘, 然后使用 QN_SDK__API_KEY 环境变量。
导出 QN_SDK__API_KEY="您的API密钥"
该 SDK 还支持在本地开发、预发布环境和代理沙箱中覆盖基础 URL:
| 环境变量 | 默认 |
|---|---|
QN_SDK__ADMIN__BASE_URL | https://api.quicknode.com/v0/ |
QN_SDK__STREAMS__BASE_URL | https://api.quicknode.com/streams/rest/v1/ |
QN_SDK__WEBHOOKS__BASE_URL | https://api.quicknode.com/webhooks/rest/v1/ |
QN_SDK__KVSTORE__BASE_URL | https://api.quicknode.com/kv/rest/v1/ |
QN_SDK__SQL__BASE_URL | https://api.quicknode.com/sql/rest/v1/ |
QN_SDK__HTTP__TIMEOUT_SECS | 30 |
面向代理商
该 SDK 的设计旨在同时服务于人类用户和智能代理。智能代理可以初始化一个 SDK 句柄,在不同产品客户端间复用相同的凭据,并借助类型化方法的输入和响应,而无需为每个工作流单独编写原始的 REST 调用。
下一步
- 请从“快速入门”开始,安装并初始化 SDK。
- Use Examples to see Admin API, RPC & Tooling Access, Streams, Webhooks, and Key-Value Store workflows.
- 有关端点行为的完整信息,请参阅产品 API 文档:管理 API、流、Webhook、键值存储和SQL 资源管理器。
我们 ❤️ 反馈
请就缺失的方法、命名、示例以及代理工作流提供反馈,以便我们不断改进该 SDK。