Quicknode factura el uso de RPC en créditos de API en lugar de solicitudes planas, y el peso en créditos de una llamada depende de la cadena y el método, con llamadas avanzadas y especializadas que cuestan múltiplos de la tarifa base. Eso significa que un precio mensual destacado dice muy poco hasta que conoce su propia mezcla de solicitudes. Este artículo le proporciona un procedimiento reproducible: instrumente su carga de trabajo, clasifique cada llamada por cadena y método, aplique los pesos de créditos publicados y proyecte el gasto mensual en escenarios de tráfico realistas. También cubre dónde falla el modelo, cómo verificar el resultado y cuándo un proveedor diferente o un despliegue dedicado es la mejor comparación.
Por qué una etiqueta de precio de Quicknode no es una estimación de costo
El precio de Quicknode se basa en el uso y se mide en créditos de API. Las tablas de créditos publicadas asignan un peso base por cadena — por ejemplo, muchas cadenas EVM se sitúan en un nivel mientras que Solana, Tron y zkSync están en un nivel superior, y NEAR aún más alto — y luego aplican multiplicadores para API avanzadas y llamadas especializadas. Un eth_getBalance y un trace_replayTransaction en la misma cadena no consumen el mismo presupuesto.
La consecuencia práctica: dos equipos que pagan la misma factura mensual pueden tener volúmenes de solicitudes muy diferentes, porque sus mezclas de métodos difieren. Si está evaluando los precios de Quicknode para una nueva carga de trabajo, el único número defendible es el que deriva de su propio perfil de tráfico. Este artículo es una metodología, no una tarifa; siempre confirme los niveles de plan actuales, los créditos incluidos y los pesos por método en las páginas de precios y créditos de API del proveedor antes de firmar cualquier cosa.
Si su pregunta real es simplemente qué endpoint usar para una red determinada, eso es una recomendación breve en lugar de un ejercicio de modelado de costos — consulte la guía de endpoints RPC y la descripción general del servicio API.
- Los créditos se ponderan por cadena, no por solicitud.
- Los métodos avanzados y especializados conllevan multiplicadores sobre el peso de la cadena.
- Los niveles gratuitos y las asignaciones promocionales cambian el piso efectivo, no el costo marginal.
- Las inclusiones del plan y las tarifas por exceso son detalles contractuales que debe leer en el sitio del proveedor.
Supuestos y requisitos previos para una estimación creíble
Antes de medir, anote los supuestos que está probando. Como mínimo necesita: las cadenas que va a llamar, los métodos RPC que su aplicación realmente emite, sus solicitudes por segundo esperadas en pico y promedio, y si necesita datos de archivo, suscripciones WebSocket o API avanzadas como trazado y metadatos de tokens.
También necesita una fuente de tráfico. Si la aplicación ya está en vivo en otro proveedor, exporte una ventana representativa de registros — 24 horas en un día laborable normal más una hora pico suele ser suficiente. Si está antes del lanzamiento, instrumente un entorno de staging y ejecútelo con un generador de carga que refleje su grafo de llamadas esperado. No estime a partir de una sola solicitud de camino feliz; el tráfico de producción está dominado por bucles de sondeo, reintentos y llamadas de actualización de billetera.
Finalmente, decida su unidad de comparación. Los créditos solo son comparables entre proveedores si los convierte a un denominador común como costo por cada 1,000 lecturas de saldo o costo por millón de consultas de registros. Esa conversión es el objetivo de todo el ejercicio.
El modelo de créditos como modelo mental
Piense en cada solicitud como credits = chain_weight × method_multiplier. El peso de la cadena es una propiedad de la red que está consultando; el multiplicador es una propiedad del método. Una lectura estándar en una cadena de nivel medio cuesta una unidad del peso de la cadena; una llamada de trazado cuesta varias veces eso. Las operaciones de almacén clave-valor y las búsquedas de Streams o webhooks se facturan según sus propios calendarios, por lo que pertenecen a una línea separada en lugar del total de RPC.
Esta estructura multiplicativa tiene una implicación importante para la optimización. Reducir el número de solicitudes en un 50% reduce su factura a la mitad solo si la mezcla se mantiene constante. Reemplazar un lote de llamadas de trazado costosas con un resultado en caché puede reducir el gasto mucho más que reducir a la mitad un método barato de alto volumen. Por lo tanto, el trabajo de costos en RPC es principalmente un problema de mezcla de métodos, no de volumen bruto.
También explica por qué las comparaciones por solicitud entre proveedores son engañosas. Un proveedor que cobra una tarifa plana por solicitud parecerá barato para cargas de trabajo con mucho trazado y caro para cargas de trabajo de sondeo de saldo, y viceversa para un modelo de créditos. Normalice a su mezcla antes de comparar.
Instrumentar su carga de trabajo para capturar la mezcla de solicitudes
Necesita una línea de registro por llamada RPC que contenga la cadena, el nombre del método y una marca de tiempo. Si ya está proxyando su tráfico RPC, agregue los campos allí. Si no, un envoltorio delgado alrededor de su cliente es suficiente. El ejemplo de Node.js a continuación envuelve una llamada fetch JSON-RPC y emite un registro estructurado que puede agregar más tarde.
Ejecute esto contra staging o una ventana de producción replicada. El objetivo es una tabla de conteo de (chain, method) → requests, no datos de latencia — aunque el mismo registro le dará la latencia gratis.
// rpc-meter.js — wrap JSON-RPC calls and log chain + method
const RPC_URL = process.env.RPC_URL; // e.g. your provider endpoint
const CHAIN = process.env.CHAIN_LABEL || "ethereum";
async function rpc(method, params = []) {
const started = Date.now();
const res = await fetch(RPC_URL, {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
});
const body = await res.json();
// Emit one JSON line per call; ship to your log pipeline.
console.log(JSON.stringify({
ts: new Date().toISOString(),
chain: CHAIN,
method,
ok: !body.error,
ms: Date.now() - started,
}));
if (body.error) throw new Error(body.error.message);
return body.result;
}
module.exports = { rpc };Agregar la mezcla en una proyección mensual
Con los registros en mano, agregue los conteos por (chain, method) durante su ventana de muestra, luego escale a 30 días. El fragmento de Python lee registros JSON delimitados por saltos de línea y produce una tabla de proyección. Deliberadamente no incorpora pesos de créditos — usted los proporciona desde las tablas publicadas del proveedor para que el script nunca quede desactualizado.
La salida es una tabla que puede pegar en una hoja de cálculo junto con los pesos de créditos actuales. Multiplique el número proyectado de solicitudes de cada fila por su peso, sume y compare con los créditos incluidos en cada nivel de plan. La diferencia, valorada a la tarifa por exceso, es su costo mensual marginal.
# project_credits.py — aggregate rpc-meter logs into a monthly projection
import json, sys
from collections import Counter
from datetime import datetime
counts = Counter()
first = last = None
with open(sys.argv[1]) as f:
for line in f:
rec = json.loads(line)
ts = datetime.fromisoformat(rec["ts"].replace("Z", "+00:00"))
first = ts if first is None or ts < first else first
last = ts if last is None or ts > last else last
counts[(rec["chain"], rec["method"])] += 1
window_hours = max((last - first).total_seconds() / 3600, 1)
scale = (24 * 30) / window_hours # project to a 30-day month
print(f"window_hours={window_hours:.2f} scale={scale:.2f}")
print(f"{'chain':<12}{'method':<32}{'sample':>8}{'monthly':>12}")
for (chain, method), n in counts.most_common():
print(f"{chain:<12}{method:<32}{n:>8}{int(n * scale):>12}")Una plantilla de cálculo resuelta y tabla de resultados
Complete la tabla a continuación a partir de su propia proyección. La columna weight proviene de las tablas publicadas de cadena y método del proveedor; projected_requests proviene del script anterior; credits es su producto. Deje los números en blanco hasta que los haya medido — una cifra inventada es peor que ninguna cifra, porque ancla una decisión presupuestaria en ficción.
| Chain | Method | Projected requests / month | Credit weight | Credits / month |
|---|---|---|---|---|
| ethereum | eth_getBalance | (measured) | (from table) | (product) |
| ethereum | eth_getLogs | (measured) | (from table) | (product) |
| solana | getAccountInfo | (measured) | (from table) | (product) |
| solana | getProgramAccounts | (measured) | (from table) | (product) |
| ethereum | trace_replayTransaction | (measured) | (from table) | (product) |
| Total | sum |
Una vez que el total esté en créditos, reste los créditos incluidos en cada plan candidato y multiplique el resto por la tarifa por exceso. Ejecute el cálculo tres veces: tráfico promedio, tráfico sostenido en hora pico y un escenario de crecimiento de 2×. La dispersión entre esos tres números es el riesgo real en la decisión de precios, no solo el promedio.
Verificar la proyección contra un ciclo de facturación real
Una proyección solo es confiable una vez que se ha verificado contra una factura. El procedimiento de verificación es breve: despliegue el cliente instrumentado a producción durante un ciclo de facturación completo, exporte el informe de uso del proveedor para el mismo período y compare el total de créditos consumidos con su total proyectado. Una discrepancia inferior a aproximadamente el 10% es normal y generalmente se explica por reintentos o trabajos en segundo plano que no modeló.
Si la discrepancia es mayor, desglósela por método. Las causas más comunes son llamadas no registradas de un segundo cliente, tráfico de suscripción WebSocket que su envoltorio HTTP nunca ve y llamadas a API avanzadas que su aplicación realiza indirectamente a través de un SDK. Reconcilie método por método antes de ajustar el modelo; ajustar el total sin encontrar la fuente solo oculta el error.
Registre la relación verificada de créditos a solicitudes para su carga de trabajo. Ese único número — sus créditos efectivos por solicitud — es la cifra más útil que puede llevar a la planificación de capacidad futura, porque se mantiene estable siempre que su mezcla de métodos lo haga.
Solución de problemas de gasto inesperado
Cuando la factura supere la proyección, revise las causas en orden de probabilidad. Primero, busque tormentas de reintentos: un cliente con reintentos agresivos contra un endpoint limitado por tasa puede multiplicar los conteos de solicitudes varias veces sin ningún cambio en el tráfico de usuarios. Segundo, revise los intervalos de sondeo — un saldo de billetera actualizado cada segundo en lugar de cada quince segundos es un aumento de costo de 15× solo en ese método. Tercero, busque el uso accidental de métodos costosos, como una llamada de depuración o trazado dejada en una verificación de estado.
Cuarto, confirme a qué nivel de cadena llega realmente cada llamada. Una aplicación multicadena que enruta todo a través de un endpoint puede estar pagando un peso de cadena más alto de lo esperado si el endpoint está configurado para una red más costosa. Quinto, audite cualquier uso de API avanzada — los endpoints de metadatos de tokens, NFT o trazado conllevan multiplicadores que son fáciles de pasar por alto cuando se llaman desde una biblioteca en lugar de su propio código.
Finalmente, verifique que el informe de uso y sus registros cubran la misma zona horaria y límite de facturación. Los errores de reconciliación de un día de diferencia son comunes y producen excesos fantasma.
- Tormentas de reintentos y falta de retroceso exponencial.
- Intervalos de sondeo más cortos que el cambio de datos.
- Métodos costosos en verificaciones de estado o rutas de calentamiento.
- Nivel de cadena incorrecto para enrutamiento multicadena.
- Llamadas indirectas a API avanzadas desde SDKs.
- Desajustes de período de facturación y zona horaria.
Limitaciones del modelo de créditos y cuándo comparar de manera diferente
El precio por créditos es adecuado para cargas de trabajo con una mezcla de métodos estable y bien comprendida y la necesidad de muchas cadenas. Es una mala opción para cargas de trabajo dominadas por un único método costoso, donde un acuerdo de tarifa plana o dedicado puede ser más barato y mucho más fácil de pronosticar. También es incómodo para tráfico irregular, porque el pico determina su nivel de plan mientras que el promedio determina su satisfacción con el precio.
Para volúmenes altos y sostenidos en una o dos cadenas, la comparación debe pasar de la aritmética por crédito a la planificación de capacidad: ¿cuánto cuesta un despliegue dedicado y qué latencia y aislamiento compra? Consulte las opciones de nodo dedicado y la descripción general de precios de RPC para la comparación estructural, y la lista de cobertura de redes para confirmar que las cadenas que necesita son compatibles antes de modelar nada.
Otra limitación que vale la pena declarar claramente: los pesos publicados cambian. Cualquier modelo que construya debe leer los pesos de un archivo de configuración en lugar de codificarlos, para que una actualización de precios sea un cambio de una línea en lugar de una reescritura.
Próximos pasos: convertir el modelo en una decisión
Ahora tiene tres artefactos: un cliente instrumentado, una tabla de proyección y una relación verificada de créditos por solicitud. Úselos en este orden. Primero, reduzca la mezcla de métodos — almacene en caché lo que no cambia, alargue los intervalos de sondeo y elimine las llamadas costosas de las rutas críticas. Segundo, vuelva a ejecutar la proyección para ver cuánto de la factura es estructural versus incidental. Tercero, compare la proyección reducida con al menos un modelo alternativo, ya sea la tarifa plana de otro proveedor o un despliegue dedicado.
Si la pregunta restante es qué endpoint o proveedor usar para una red específica en lugar de cómo modelar el costo, déjela al Asistente de RPC, que está diseñado para recomendaciones breves y directas. Para el panorama operativo más amplio — conmutación por error, monitoreo y enrutamiento multiproveedor — la guía de alojamiento de nodos blockchain y la guía de endpoints multicadena cubren las partes de la decisión que la aritmética de precios no puede.