Ir al contenido principal

SDK Ejemplos

Actualizado el
20 de julio de 2026

Resumen​

Estos ejemplos muestran la estructura de « SDK » en los productos compatibles de Quicknode . Se da por hecho que ya has inicializado el SDK como qn del Inicio rápido.

Admin API​

Utiliza el cliente de Admin API para consultar y gestionar los recursos de la cuenta, como los dispositivos, los equipos, el uso, la facturación, la seguridad y los límites de velocidad.

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

const qn = QuicknodeSdk.fromEnv();

const puntos finales = await qn.admin.getEndpoints({
límite: 20,
sortBy: «created_at»,
sortDirection: «desc»,
});

para (const endpoint de puntos finales.datos) {
consola.registro(endpoint.id, endpoint.nombre, endpoint.estado);
}

Para consultar la superficie completa de la API, consulta la documentación deAdmin API .

Acceso a RPC y herramientas​

Puedes utilizar el cliente RPC para enviar solicitudes JSON-RPC al servicio Tooling Access de la cuenta endpoint; qn.rpc genera y actualiza el JWT de la sesión en cada llamada. Activa primero el acceso a las herramientas con el qn.admin métodos del plano de control (requiere un rol de administrador). Aceptar red para desviar una llamada a una red concreta.

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

const qn = QuicknodeSdk.fromEnv();

// Enable Tooling Access once (idempotent; requires an admin role).
const estado = await qn.admin.toolingAccessStatus();
si (!estado.habilitado) {
esperar qn.admin.enableToolingAccess();
}

// params defaults to []; pass an array (positional) or object (named).
const númeroDeBloque = await qn.rpc.llamada("eth_blockNumber");
const saldo = await qn.rpc.llamada("eth_getBalance", ["0xabc...", "más reciente"]);
consola.registro(númeroDeBloque, saldo);

// Route a call to a specific network by its multichain key.
const slot = await qn.rpc.llamada("getSlot", [], "solana-mainnet");
consola.registro(ranura);

Streams​

Utiliza el cliente « Streams » para mostrar una lista, examinar, crear, actualizar, pausar, activar, eliminar y probar Streams. El ejemplo siguiente muestra una lista de Streams, cuenta los Streams habilitados y realiza una simulación de un filtro sin modificar el estado de la cuenta.

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 habilitado = await qn.streams.getEnabledCount();
console.log(`Enabled Streams: ${enabled.total}`);

const funciónDeFiltro = Buffer.from(`
función main(data) {
devolver datos;
}
`).toString("base64");

const resultado = await qn.streams.testFilter({
red: «ethereum-mainnet »,
conjunto de datos: StreamDataset.Bloque,
bloque: «17811625»,
filterFunction,
});

consola.registro(resultado.resultado);

Para conocer las opciones de destino, los conjuntos de datos compatibles y los detalles de las solicitudes, consulta la documentación de la API REST deStreams .

Webhooks​

Utiliza el cliente « Webhooks » para ver la lista de webhooks, examinar un webhook, crear un webhook a partir de una plantilla, pausar o activar el envío y consultar el número de webhooks habilitados. El ejemplo que aparece a continuación es de solo lectura.

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

const qn = QuicknodeSdk.fromEnv();

const webhooks = await qn.webhooks.listWebhooks({
límite: 10,
desplazamiento: 0,
});

para (const webhook de webhooks.datos) {
consola.registro(webhook.id, webhook.nombre, webhook.estado);
}

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

Para obtener información sobre el comportamiento de las plantillas y la configuración de los destinos, consulta la documentación de la API REST deWebhooks .

Almacén de clave-valor​

Utiliza el cliente de almacén de clave-valor para un estado persistente sencillo. Los conjuntos almacenan un valor de cadena por clave. Las listas almacenan colecciones ordenadas de cadenas bajo una misma clave.

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

const qn = QuicknodeSdk.fromEnv();

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

si (conjuntos.datos.longitud > 0) {
const set = await qn.kvstore.getSet(establece.datos[0].clave);
consola.registro(establecer.valor);
}

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

Para todas las operaciones con listas y conjuntos, consulta la documentación de la API REST de Key-Value Store.

Explorador SQL​

Utiliza el cliente SQL Explorer para ejecutar consultas SQL sobre datos indexados de la cadena de bloques y recuperar los esquemas de las tablas.

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

const qn = QuicknodeSdk.fromEnv();

// Run a SQL query
const resultado = await qn.sql.consulta(
"SELECT action_type, user FROM hyperliquid_system_actions LIMIT 3",
"hyperliquid-core-mainnet"
);
console.log(`${result.rows} rows, ${result.credits} credits`);

// Get the schema for a cluster
const esquema = await qn.sql.getSchema("hyperliquid-core-mainnet");
consola.registro(esquema);

Para conocer la sintaxis de las consultas y las tablas disponibles, consulta la documentación de SQL Explorer.

Agente ejemplo de flujo de trabajo​

Agentes puede combinar clientes en una sola ejecución. Por ejemplo, una herramienta de automatización de lanzamientos Agente puede inspeccionar los terminales, Streams, Webhooks, el estado del almacén de clave-valor y consultar datos de la cadena de bloques antes de decidir qué acción llevar a cabo.

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 operaciones = await qn.sql.consulta(
"SELECT * FROM hyperliquid_trades LIMIT 5",
"hyperliquid-core-mainnet"
);

consola.registro({
puntos finales: puntos finales.datos.longitud,
streams: streams.datos.longitud,
webhooks: webhooks.datos.longitud,
conjuntos: conjuntos.datos.longitud,
oficios: oficios.filas,
});