Investimentos (Farm Miner) e TIP tiers
No sistema atual (como funciona agora)
1) Regras centrais para criar um investimento
- Um investimento é criado somente se o sistema tiver ativos ativos:
- USDT (BSC) e USDO (Interno)
- O usuário investidor deve ter
referredByUserId(ou seja, deve ter se registrado com um invite code). - O investimento requer um
investmentInviteCode(8 caracteres, A-Z/0-9) — este é o placement code para a árvore de Yield. - Investimento mínimo: 10 USDT.
2) Classificação TIP (TIP1/TIP2/TIP3)
TIP é calculado a partir do valor do investimento com base nas configurações do Block:
tier1MaxBase(padrão: 480 USDT)tier2MaxBase(padrão: 975 USDT)
Se:
- amount ≤ tier1Max →
TIP1 - amount ≤ tier2Max →
TIP2 - caso contrário →
TIP3
Importante: o programTier geral do usuário é calculado somando o principal de todos os farm miners ACTIVE (não apenas um investimento). Isso permite upgrades de TIP via múltiplos investimentos.
3) Prazo/retorno do Farm Miner e “hourly mint”
Após investir, um FarmMiner é criado com a seguinte lógica:
termMonthsereturnMinPercent/returnMaxPercentvêm das configurações conforme o TIP.returnPercenttem duas camadas:- No momento do investimento, um
returnPercentinicial é definido (aleatório em[min, max]). - O worker de earn pode re-randomizar
returnPercentem cada mint/crédito e armazena o último valor usado.
- No momento do investimento, um
profitBase = principal * returnPercent / 100totalMintBase = principal + profitBase- O intervalo de mint vem de
farmMinerMintIntervalMinutes(padrão: 60 minutos).
Earn/mint é calculado pro rata com base no tempo decorrido:
- O worker calcula
mintedTargeta partir das horas decorridoas (ou minutos se intervalo < 60) etotalMintBase. - Em seguida, credita
mintDue = mintedTarget - mintedBaseno saldo USDO do usuário (entrada no ledger). - Quando o prazo termina ou
mintedBase >= totalMintBase, o miner ficaCOMPLETED.
4) Placement de investimento (LEFT/RIGHT)
investmentInviteCode deve pertencer a algum usuário:
- Se for igual a
inviteCodeLeftdesse usuário →placementSide=LEFT - Se for igual a
inviteCodeRight→placementSide=RIGHT
Na UI isso geralmente aparece como USDOL (LEFT) e USDOR (RIGHT).
5) Investment invite code bloqueado após o primeiro investimento
- Se um usuário já tiver um investimento e
investmentInviteCodeLocked=true, então para investimentos seguintes o mesmoinvestmentInviteCodedeve ser usado. - Após o primeiro investimento, o backend sempre salva/bloqueia o placement code escolhido.
6) Bônus de referral (direto/boca a boca)
No sistema atual, a comissão de referral vai para o marketing inviter (referredByUserId) — ou seja, a pessoa cujo invite code o usuário usou no registro:
- O percentual de referral vem das configurações (
referralPercent, padrão: 10%). - A elegibilidade depende do TIP do destinatário:
- TIP1 → 0% (não recebe)
- TIP2/TIP3 → recebe, mas há um cap máximo (
tip2ReferralMaxBase/tip3ReferralMaxBase).
7) Múltiplos miners e “upgrade” (somente aumento)
- Um usuário pode ter múltiplos farm miners (múltiplos investimentos).
- Na API atual, é possível aumentar o principal de um miner existente (upgrade). Nesse caso:
- o principal aumenta
- o TIP pode mudar com base no novo principal
- o prazo e
returnPercentsão recalculados (returnPercentvolta a ser aleatório) - o miner reinicia “a partir de agora” (
mintedBase=0,accruedHours=0,endsAtrecalculado)