Staking
Requisitos previos de acceso
- Permiso (módulo):
manageToken - Licencia/Feature:
STAKING_TOKENShabilitada en la licencia del tenant (Vault). - Contenedor del menú: GENERAL → grupo Productos → Staking
Qué es / cuándo usar
El Staking permite al operador configurar productos de rendimiento sobre tokens: el usuario bloquea (hace staking) una cantidad de un token y, periódicamente, recibe pagos de rendimiento en otro token (o en el mismo). Esta pantalla administra las configuraciones de staking (StakingConfig) — las "reglas del producto" — no las aplicaciones individuales de los usuarios (éstas se encuentran en Aplicaciones de Staking).
Úsalo para crear un nuevo producto de staking, ajustar tasas/plazos, activar/desactivar, o abrir el dashboard de un producto para dar seguimiento a las aplicaciones.
Requisitos previos
- Permiso:
manageToken(enum estático CPM + módulo dinámico en la DB). - Licencia/Feature:
STAKING_TOKENShabilitada. Si está deshabilitada, el ítem ni siquiera aparece en el menú. - Dependencias: los tokens de stake (
unit_of_money) y de pago (unit_to_pay) deben existir en la plataforma.
Paso a paso
- Accede a Productos → Staking.
- La lista muestra los productos por nombre, token de stake, token de pago y estado (activo/inactivo).
- Usa Crear para abrir el modal de configuración.
- Completa los campos y guarda.
- En cada fila, usa Editar, Dashboard (dar seguimiento a las aplicaciones) o Eliminar.
Campos (modal de configuración)
| Campo | Qué es | ¿Obligatorio? | Efecto en el sistema/backend |
|---|---|---|---|
Nombre (name) | Nombre del producto de staking | Sí | Identifica la configuración. |
Token de stake (unit_of_money) | Token que el usuario bloquea | Sí | Define el activo aceptado para staking. |
Token de pago (unit_to_pay) | Token en que se paga el rendimiento | Sí | Define el activo del payout. |
Plazo (stakingLength) | Duración del staking | Sí | Debe ser > 0 (BigNumber). Combinado con periodType. |
Tipo de período (periodType) | M (meses) o Y (años) | Sí | Default M. |
Valor a aplicar (valueToApply) | Tasa/porcentaje de rendimiento | Sí | Debe ser > 0. Junto con method (siempre P = porcentaje) y thresholdToApply, gobierna el cálculo del payout. |
Threshold (thresholdToApply) | Valor mínimo para aplicar el rendimiento | No | Rango a partir del cual incide el rendimiento. |
Tasa de salida (exit_fee) | Multa por retiro anticipado | No | Aplicada cuando hay salida antes del plazo. |
Pagos mensuales (monthlyPayments) | Paga rendimiento mes a mes | No | Persistido como 1 (encendido) o -1 (apagado). |
Permitir retiro anticipado (allowEarlyWithdraw) | Permite el rescate antes del plazo | No | Habilita el retiro anticipado (sujeto a exit_fee). |
Hold (hold) | Retención/bloqueo adicional | No | Flag de comportamiento del producto. |
Términos (terms, upload) | Documento de términos del producto | No | Upload vía files API (máx. 30 MB); guarda la URL. |
Activo (is_active) | Producto disponible para nuevos stakes | No | Default true en la creación. Desactivar no cancela aplicaciones existentes; solo impide nuevas. |
Acciones y modales
- Crear / Editar: abre el modal
StakeTokensModalComponent. Guardar permanece deshabilitado mientras falten nombre, tokens, plazo > 0 y valor > 0. - Dashboard: navega hacia
manage-stakes/dashboard/:idpara dar seguimiento a las aplicaciones del producto. - Eliminar: elimina la configuración (con confirmación) y recarga.
- Ayuda: el botón de troubleshooting abre la guía de staking integrada.
Reglas de negocio / consideraciones
Atención
- El plazo y el valor a aplicar deben ser > 0 (validados como BigNumber); de lo contrario el guardar queda bloqueado.
- Desactivar un producto no afecta las aplicaciones ya realizadas — solo impide nuevas adhesiones.
methodse fija enP(porcentaje) al guardar, aunque el modelo permita otros métodos.
- Idempotencia: los payouts de staking son idempotentes — reprocesar un pago (tras retry/crash) es seguro; el errorCode FinLib
E00021"already processed" significa éxito. - Valores financieros: valor, threshold, tasa de salida y plazo se tratan como BigNumber — sin redondeo.
Ejemplos
Escenario 1 — Staking de 12 meses con pagos mensuales
- Crea un producto: token de stake = AXT, token de pago = tBRL.
- Plazo 12, período
M(meses), valor a aplicar 1,5 (porcentaje), pagos mensuales encendidos. - Sin retiro anticipado (
allowEarlyWithdrawapagado). - El usuario que adhiera bloquea AXT y recibe tBRL cada mes conforme al porcentaje.
Escenario 2 — Producto anual con retiro anticipado y multa
- Plazo 1, período
Y(año), valor a aplicar 18 (porcentaje anual). allowEarlyWithdrawencendido,exit_fee5.- El usuario puede retirar antes de 1 año, pero paga 5 de multa de salida.
Escenario 3 — Pausar adhesiones sin afectar a quienes ya hicieron staking
- Edita el producto y desmarca Activo.
- Las nuevas adhesiones quedan bloqueadas; las aplicaciones en curso continúan rindiendo y pagando normalmente.