Staking
Pré-requisitos de acesso
- Permissão (módulo):
manageToken - Licença/Feature:
STAKING_TOKENShabilitada na licença do tenant (Vault). - Contêiner do menu: GERAL → grupo Produtos → Staking
O que é / quando usar
O Staking permite ao operador configurar produtos de rendimento sobre tokens: o usuário bloqueia (stakeia) uma quantidade de um token e, periodicamente, recebe pagamentos de rendimento em outro token (ou no mesmo). Esta tela administra as configurações de staking (StakingConfig) — as "regras do produto" — não as aplicações individuais dos usuários (essas ficam em Aplicações de Staking).
Use para criar um novo produto de staking, ajustar taxas/prazos, ativar/desativar, ou abrir o dashboard de um produto para acompanhar as aplicações.
Pré-condições
- Permissão:
manageToken(enum CPM + módulo dinâmico no DB). - Licença/Feature:
STAKING_TOKENShabilitada. Se desabilitada, o item nem aparece no menu. - Dependências: os tokens de stake (
unit_of_money) e de pagamento (unit_to_pay) precisam existir na plataforma.
Passo a passo
- Acesse Produtos → Staking.
- A lista mostra os produtos por nome, token de stake, token de pagamento e status (ativo/inativo).
- Use Criar para abrir o modal de configuração.
- Preencha os campos e salve.
- Em cada linha, use Editar, Dashboard (acompanhar aplicações) ou Excluir.
Campos (modal de configuração)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
Nome (name) | Nome do produto de staking | Sim | Identifica a configuração. |
Token de stake (unit_of_money) | Token que o usuário bloqueia | Sim | Define o ativo aceito para staking. |
Token de pagamento (unit_to_pay) | Token em que o rendimento é pago | Sim | Define o ativo do payout. |
Prazo (stakingLength) | Duração do staking | Sim | Deve ser > 0 (BigNumber). Combinado com periodType. |
Tipo de período (periodType) | M (meses) ou Y (anos) | Sim | Default M. |
Valor a aplicar (valueToApply) | Taxa/percentual de rendimento | Sim | Deve ser > 0. Junto com method (sempre P = percentual) e thresholdToApply, governa o cálculo do payout. |
Threshold (thresholdToApply) | Valor mínimo para aplicar o rendimento | Não | Faixa a partir da qual o rendimento incide. |
Taxa de saída (exit_fee) | Multa por resgate antecipado | Não | Aplicada quando há saída antes do prazo. |
Pagamentos mensais (monthlyPayments) | Paga rendimento mês a mês | Não | Persistido como 1 (ligado) ou -1 (desligado). |
Permitir saque antecipado (allowEarlyWithdraw) | Permite resgate antes do prazo | Não | Habilita o resgate antecipado (sujeito a exit_fee). |
Hold (hold) | Retenção/trava adicional | Não | Flag de comportamento do produto. |
Termos (terms, upload) | Documento de termos do produto | Não | Upload via files API (máx. 30 MB); grava a URL. |
Ativo (is_active) | Produto disponível para novos stakes | Não | Default true na criação. Desativar não cancela aplicações existentes; apenas impede novas. |
Ações e modais
- Criar / Editar: abre o modal
StakeTokensModalComponent. Salvar fica desabilitado enquanto faltarem nome, tokens, prazo > 0 e valor > 0. - Dashboard: navega para
manage-stakes/dashboard/:idpara acompanhar as aplicações do produto. - Excluir: remove a configuração (com confirmação) e recarrega.
- Ajuda: botão de troubleshooting abre o guia de staking embutido.
Regras de negócio / cuidados
Atenção
- Prazo e valor a aplicar devem ser > 0 (validados como BigNumber); caso contrário o salvar fica bloqueado.
- Desativar um produto não afeta aplicações já feitas — só impede novas adesões.
methodé fixado emP(percentual) ao salvar, mesmo que o modelo permita outros métodos.
- Idempotência: os payouts de staking são idempotentes — reprocessar um pagamento (após retry/crash) é seguro; o errorCode FinLib
E00021"already processed" significa sucesso. - Valores financeiros: valor, threshold, taxa de saída e prazo são tratados como BigNumber — sem arredondamento.
Exemplos
Cenário 1 — Staking de 12 meses com pagamento mensal
- Crie um produto: token de stake = AXT, token de pagamento = tBRL.
- Prazo 12, período
M(meses), valor a aplicar 1,5 (percentual), pagamentos mensais ligados. - Sem saque antecipado (
allowEarlyWithdrawdesligado). - O usuário que aderir bloqueia AXT e recebe tBRL todo mês conforme o percentual.
Cenário 2 — Produto anual com saque antecipado e multa
- Prazo 1, período
Y(ano), valor a aplicar 18 (percentual ao ano). allowEarlyWithdrawligado,exit_fee5.- O usuário pode resgatar antes de 1 ano, mas paga 5 de multa de saída.
Cenário 3 — Pausar adesões sem afetar quem já stakeou
- Edite o produto e desmarque Ativo.
- Novas adesões ficam bloqueadas; as aplicações em curso continuam rendendo e pagando normalmente.