Resumen
Klaytn (ahora rebautizado como Kaia) utiliza un modelo de prueba de participación delegada en el que los tenedores de KLAY pueden hacer staking a través de consejos de gobernanza, operadores de nodos públicos o servicios de staking líquido en lugar de ejecutar un validador directamente. Antes de hacer staking, debes comprender el retraso de desstaking, la mecánica de recompensas y qué métodos RPC permiten a tu aplicación leer el estado del staking y los datos del validador de forma fiable.
Esta página cubre el modelo de staking de Klaytn, las llamadas JSON-RPC que importan para los paneles de staking y las carteras, y cómo elegir una infraestructura RPC que mantenga el seguimiento de recompensas y el envío de transacciones con capacidad de respuesta. Está escrita para desarrolladores que integran funciones de staking, no para tenedores ocasionales que siguen un tutorial paso a paso.
Klaytn se rebautizó como Kaia, pero la mecánica de staking que preguntan los desarrolladores es la misma: los tenedores de KLAY (ahora KAIA) delegan el stake en consejos de gobernanza u operadores de nodos, y las aplicaciones necesitan acceso RPC fiable para leer el estado del stake, rastrear recompensas y enviar transacciones de staking. Esta página está dirigida a desarrolladores que crean paneles de staking, carteras o rastreadores de recompensas, y a equipos que deciden qué infraestructura RPC ejecutar detrás de ellos.
Lo que realmente necesitas antes de hacer staking
Antes de escribir cualquier código, confirma tres cosas. Primero, la ruta de staking que estás apuntando: delegación en consejo de gobernanza, un operador de nodo público o un servicio de staking líquido. Cada una tiene una superficie de contrato diferente y datos diferentes que necesitas leer. Segundo, el retraso de desstaking, porque determina cómo presentas los plazos de retiro en tu UI. Tercero, si tu endpoint RPC puede manejar el patrón de lectura intensiva que producen las aplicaciones de staking, ya que el seguimiento de recompensas implica frecuentes eth_call y consultas de logs en lugar de transferencias ocasionales.
Si estás construyendo sobre Klaytn y quieres un endpoint gestionado en lugar de ejecutar tu propio nodo, el RPC de Klaytn (Kaia) de OnFinality expone un endpoint público contra el que puedes probar de inmediato:
curl -X POST https://klaytn.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
Una respuesta correcta devuelve 0x2019, que es el ID de cadena 8217 para Kaia Mainnet. Si obtienes un ID de cadena diferente, estás apuntando a la red incorrecta.
Modelo de staking de Klaytn en términos simples
Klaytn ejecuta un consenso de prueba de participación delegada. Un conjunto limitado de nodos del consejo de gobernanza produce bloques, y los tenedores de KLAY pueden hacer staking hacia esos nodos. El staking no es un conjunto de validadores abierto como en algunas redes; la estructura del consejo significa que el conjunto de entidades a las que puedes delegar está restringido, y las decisiones de gobernanza afectan quién participa.
Para los desarrolladores, las consecuencias prácticas son:
- Las operaciones de staking a menudo se enrutan a través de contratos de staking específicos en lugar de un precompilado genérico.
- La acumulación de recompensas está ligada a la producción de bloques, por lo que lees recompensas escaneando bloques o consultando el estado del contrato, no llamando a un único método "get rewards".
- El desstaking no es instantáneo. Necesitas modelar un retraso en tu UI y en cualquier lógica de contabilidad.
Como la red ahora se llama Kaia, alguna documentación y exploradores de bloques usan la nomenclatura Kaia mientras que los contratos y herramientas más antiguos todavía dicen Klaytn. Espera ambos términos en la práctica y no asumas que un contrato está obsoleto solo porque usa el nombre antiguo.
Métodos RPC que importan para las aplicaciones de staking
Los front-ends y back-ends de staking se apoyan en un pequeño conjunto de métodos JSON-RPC. La siguiente tabla asigna el trabajo al método que llamarás con más frecuencia.
| Trabajo en tu aplicación de staking | Método principal | Notas |
|---|---|---|
| Confirmar que estás en Kaia Mainnet | eth_chainId | Espera 0x2019 (8217) |
| Leer el estado de un contrato de staking | eth_call | Codifica los selectores de función para el contrato de staking |
| Rastrear eventos de recompensa o staking | eth_getLogs | Limita los rangos de bloques; los rangos amplios son costosos |
| Verificar el saldo de KLAY de un usuario | eth_getBalance | Devuelve wei; formatea a 18 decimales |
| Enviar una transacción de stake o unstake | eth_sendRawTransaction | Firma localmente, luego transmite |
| Estimar el gas antes de enviar | eth_estimateGas | Hazlo antes de cada escritura de staking |
| Confirmar que una transacción se realizó | eth_getTransactionReceipt | Sondea hasta que el estado sea 0x1 o 0x0 |
| Leer el bloque actual para ventanas de recompensa | eth_blockNumber | Úsalo como límite superior para consultas de logs |
Un bucle mínimo de seguimiento de recompensas en JavaScript se ve así:
import { createPublicClient, http, parseAbi } from 'viem';
const client = createPublicClient({
transport: http('https://klaytn.api.onfinality.io/public'),
});
const stakingAbi = parseAbi([
'function getReward(address account) view returns (uint256)',
]);
async function readReward(contractAddress, account) {
const latest = await client.getBlockNumber();
const reward = await client.readContract({
address: contractAddress,
abi: stakingAbi,
functionName: 'getReward',
args: [account],
});
return { reward, block: latest };
}
Reemplaza el ABI y la dirección del contrato con el contrato de staking real que integres. El punto es el patrón: lee el estado con eth_call, anclalo a un número de bloque y almacena ese número de bloque para poder reconciliar más tarde.
Elegir infraestructura RPC para un producto de staking
Las aplicaciones de staking tienen un perfil de lectura intensiva y sensible a la latencia. Los usuarios esperan que los números de recompensas se actualicen rápidamente, y esperan que las transacciones de stake y unstake se realicen sin reintentos. Eso hace que la elección del endpoint sea una decisión de producto, no solo un detalle de infraestructura.
Cuando evalúes proveedores para una aplicación de staking en Klaytn, compara en las dimensiones que realmente afectan la UX de staking:
| Área de evaluación | Qué buscar | Por qué afecta al staking |
|---|---|---|
| Rendimiento de lectura | Capacidad para servir frecuentes eth_call y eth_getLogs | Los paneles de recompensas sondean constantemente |
| Límites de consulta de logs | Guía clara sobre límites de rango de bloques | Los rangos amplios fallan silenciosamente o expiran |
| Fiabilidad de la ruta de escritura | Comportamiento estable de eth_sendRawTransaction | Las transmisiones fallidas dejan los fondos del usuario en estado pendiente |
| Conmutación por error | Múltiples endpoints o enrutamiento automático | Una caída de un solo endpoint congela la UI de staking |
| Acceso a archivo | Estado histórico si reconcilias recompensas antiguas | Sin él, los rellenos son imposibles |
| Modelo de soporte | A quién contactas cuando una transacción de staking se comporta mal | Los errores de staking son urgentes |
OnFinality proporciona RPC gestionado de Klaytn (Kaia) a través de su servicio API, y los equipos que necesitan capacidad aislada, límites de velocidad personalizados o redes privadas pueden pasar a un nodo dedicado. Para la mayoría de los paneles de staking, un endpoint gestionado con un plan de conmutación por error es suficiente para empezar; la infraestructura dedicada vale la pena cuando tu volumen de lectura o necesidades de cumplimiento superan la capacidad compartida. Puedes comparar niveles en la página de precios de RPC y ver el conjunto completo de redes RPC compatibles.
Si todavía estás decidiendo entre proveedores, la guía de selección de proveedor de RPC recorre los mismos criterios con más profundidad.
Modos de fallo comunes y cómo depurarlos
Las integraciones de staking fallan de maneras predecibles. Aquí tienes una tabla de síntoma a solución que puedes mantener junto a tus logs.
| Síntoma | Causa probable | Solución |
|---|---|---|
| Los números de recompensa saltan o se reinician | Leer desde un bloque diferente en cada sondeo | Fija las lecturas a un número de bloque y guárdalo |
eth_getLogs no devuelve nada | Rango de bloques demasiado amplio o dirección incorrecta | Reduce el rango; verifica la dirección del contrato |
| Transacción de stake atascada en pendiente | Precio de gas demasiado bajo o hueco de nonce | Vuelve a estimar el gas; verifica la secuencia de nonce |
| Datos de cadena incorrectos | Endpoint apuntando a una testnet | Vuelve a verificar que eth_chainId devuelva 0x2019 |
| Tiempos de espera intermitentes | Único endpoint bajo carga | Añade un segundo endpoint y lógica de reintento |
| El unstake nunca se completa | La UI ignora el retraso de desstaking | Modela el retraso explícitamente en tu máquina de estados |
El problema del hueco de nonce es el que más duele. Si una transacción de staking falla silenciosamente y envías otra sin resincronizar el nonce, cada transacción posterior se pone en cola detrás de la atascada. Lee siempre eth_getTransactionCount con la etiqueta pending antes de transmitir una nueva escritura de staking.
Una lista de verificación práctica de integración
Trabaja en esta lista antes de lanzar una función de staking:
- Confirma el ID de cadena 8217 y las direcciones correctas del contrato de staking para tu ruta objetivo.
- Decide cómo leerás las recompensas:
eth_calldel contrato, logs de eventos, o ambos. - Fija cada lectura a un número de bloque y persístelo para reconciliación.
- Implementa estimación de gas y gestión de nonce para escrituras de stake y unstake.
- Modela el retraso de desstaking en tu UI y en cualquier contabilidad.
- Añade un segundo endpoint RPC y lógica de reintento para fallos de lectura.
- Registra el endpoint y el número de bloque con cada error de staking para que puedas reproducirlo.
- Prueba el ciclo completo de stake, recompensa y unstake en una testnet antes de mainnet.
Si tu equipo prefiere no operar nodos en absoluto, un endpoint gestionado elimina los pasos 6 y 7 de tu lista porque la conmutación por error y la salud del endpoint pasan a ser responsabilidad del proveedor.
Puntos clave
- Klaytn ahora se llama Kaia, pero la mecánica de staking y las direcciones de los contratos todavía usan ambos nombres.
- Las aplicaciones de staking son de lectura intensiva: dominan
eth_callyeth_getLogs, no las transferencias. - Fija las lecturas de recompensas a un número de bloque o tus números se desviarán.
- La gestión de nonce y gas son las fuentes más comunes de transacciones de staking atascadas.
- La elección del endpoint afecta directamente la UX de staking; compara rendimiento de lectura, límites de logs y conmutación por error.
- OnFinality ofrece RPC gestionado de Klaytn (Kaia) y nodos dedicados cuando la capacidad compartida no es suficiente.
Preguntas frecuentes
¿Puedo ejecutar mi propio validador de Klaytn para hacer staking? La participación en el consejo de gobernanza es limitada y no está abierta a operadores arbitrarios. La mayoría de los tenedores de KLAY hacen staking mediante delegación o un servicio de staking líquido en lugar de ejecutar un validador directamente.
¿Cuánto tarda el unstaking en Klaytn? Hay un retraso entre solicitar un unstake y recibir los fondos. Consulta la documentación actual del contrato de staking para el período exacto, y modélalo en tu UI en lugar de asumir un retiro instantáneo.
¿Qué método RPC uso para leer las recompensas de staking?
Normalmente eth_call contra el contrato de staking, o eth_getLogs si las recompensas se emiten como eventos. No hay un único método global "get staking rewards".
¿Necesito un nodo de archivo para el staking? Solo si reconcilias recompensas históricas o rellenas datos de bloques antiguos. Para paneles en vivo, un nodo completo estándar suele ser suficiente.
¿Puedo usar el endpoint público de OnFinality en producción? Los endpoints públicos son útiles para pruebas y lecturas de bajo volumen. Para aplicaciones de staking en producción, evalúa un plan gestionado o un nodo dedicado para tener capacidad predecible y conmutación por error.
¿Qué ID de cadena debo esperar?
Kaia Mainnet devuelve 0x2019, que es 8217 en decimal. Si ves algo más, estás en la red incorrecta.