Inversiones (Farm Miner) y TIP tiers
En el sistema actual (cómo funciona ahora)
1) Reglas principales para crear una inversión
- Una inversión se crea solo si el sistema tiene activos activos:
- USDT (BSC) y USDO (Interno)
- El usuario que invierte debe tener
referredByUserId(es decir, debe haberse registrado con un invite code). - La inversión requiere un
investmentInviteCode(8 caracteres, A-Z/0-9) — este es el código de placement para el árbol de Yield. - Inversión mínima: 10 USDT.
2) Clasificación TIP (TIP1/TIP2/TIP3)
TIP se calcula a partir del monto de inversión según la configuración del Block:
tier1MaxBase(por defecto: 480 USDT)tier2MaxBase(por defecto: 975 USDT)
Si:
- amount ≤ tier1Max →
TIP1 - amount ≤ tier2Max →
TIP2 - en caso contrario →
TIP3
Importante: el programTier global del usuario se calcula sumando el principal de todos los farm miners ACTIVE (no solo una inversión). Esto permite mejoras de TIP mediante múltiples inversiones.
3) Plazo/retorno de Farm Miner y “hourly mint”
Después de invertir, se crea un FarmMiner con la siguiente lógica:
termMonthsyreturnMinPercent/returnMaxPercentprovienen de la configuración según el TIP.returnPercenttiene dos capas:- En el momento de la inversión, se establece un
returnPercentinicial (aleatorio en[min, max]). - El worker de earn puede re-aleatorizar
returnPercenten cada mint/crédito y guarda el último valor usado.
- En el momento de la inversión, se establece un
profitBase = principal * returnPercent / 100totalMintBase = principal + profitBase- El intervalo de mint proviene de
farmMinerMintIntervalMinutes(por defecto: 60 minutos).
El earn/mint se calcula prorrata según el tiempo transcurrido:
- El worker calcula
mintedTargeta partir de horas transcurridas (o minutos si el intervalo < 60) ytotalMintBase. - Luego acredita
mintDue = mintedTarget - mintedBaseal saldo USDO del usuario (entrada de ledger). - Cuando termina el plazo o
mintedBase >= totalMintBase, el miner pasa aCOMPLETED.
4) Placement de inversión (LEFT/RIGHT)
investmentInviteCode debe pertenecer a algún usuario:
- Si es igual a
inviteCodeLeftde ese usuario →placementSide=LEFT - Si es igual a
inviteCodeRight→placementSide=RIGHT
En la UI esto suele mostrarse como USDOL (LEFT) y USDOR (RIGHT).
5) El investment invite code se bloquea después de la primera inversión
- Si un usuario ya tiene una inversión y
investmentInviteCodeLocked=true, entonces en inversiones posteriores debe usarse el mismoinvestmentInviteCode. - Después de la primera inversión, el backend siempre guarda/bloquea el placement code elegido.
6) Bono de referral (directo/boca a boca)
En el sistema actual, la comisión de referral va al marketing inviter (referredByUserId) — es decir, la persona cuyo invite code usó el usuario al registrarse:
- El porcentaje de referral viene de la configuración (
referralPercent, por defecto: 10%). - La elegibilidad depende del TIP del receptor:
- TIP1 → 0% (no recibe)
- TIP2/TIP3 → recibe, pero existe un cap máximo (
tip2ReferralMaxBase/tip3ReferralMaxBase).
7) Múltiples miners y “upgrade” (solo aumento)
- Un usuario puede tener múltiples farm miners (múltiples inversiones).
- En la API actual, es posible aumentar el principal de un miner existente (upgrade). En ese caso:
- el principal aumenta
- el TIP puede cambiar según el nuevo principal
- el plazo y
returnPercentse recalculan (returnPercentvuelve a ser aleatorio) - el miner se reinicia “desde ahora” (
mintedBase=0,accruedHours=0,endsAtrecalculado)