XP, Yield matching, Carry YELD payout

यह अनुभाग वर्तमान backend में Yield मैकेनिक्स का वर्णन करता है (आंतरिक तकनीकी मॉड्यूल का नाम yield है)।

1) शब्दावली (वर्तमान सिस्टम में)

  • XP: इस दस्तावेज़ में हम इसे XP कहते हैं। Backend में आंतरिक नाम xp है (models/fields: XPCredit, carryLeftXP, carryRightXP)।
  • USDOL/USDOR: ये LEFT/RIGHT branches (yield sides) हैं।
  • Carry YELD: backend में carryYeldUsdo (USDO-base) के रूप में स्टोर होता है और इसका अर्थ है yield matching से जमा payout pool, जो बाद में weekly caps के साथ भुगतान होता है।

2) investment से XP की गणना

  • हर investment के लिए XP इस प्रकार निकाला जाता है:
    • xpBase = amountBase * xpPercent / 100
    • xpPercent Block settings से आता है (default: 20%)

3) Tree में XP propagation

investment का placement side (LEFT या RIGHT), investmentInviteCode से निर्धारित होता है:

  • Placement user उसी side पर XP credit प्राप्त कर सकता है
  • फिर XP credit referredByUserId chain के माध्यम से root तक “ऊपर” जाता है (max depth guard=100)

4) महत्वपूर्ण सीमा: केवल TIP3 users को XP credits मिलते हैं

वर्तमान सिस्टम में:

  • XP credit केवल तब बनता है जब recipient user का programTier === TIP3 हो।
  • Yield worker (internal module yield) में भी यही guard है: यदि credit receiver TIP3 नहीं है, तो credit को carry बदले बिना processed mark कर दिया जाता है।

इसका अर्थ:

  • TIP1/TIP2 users carryLeft/carryRight (yield carry) जमा नहीं करते।
  • TIP1/TIP2 investments XP “बना” सकते हैं, लेकिन वास्तविक XP credit केवल उस ancestor/placement node को मिलता है जो TIP3 हो।

5) Yield matching (10 XP + 10 XP → 10 USDO)

Yield worker XPCredit records (internal name: xp) पर काम करता है।

  • हर credit carryLeft या carryRight बढ़ाता है।
  • Pair size fixed है: 10 XP।
  • प्रत्येक matched pair के लिए payout fixed है: 10 USDO।
  • Matching के बाद carries घटते हैं और payout carryYeldUsdo में जुड़ता है।

6) Weekly payout cap (Reward levels)

carryYeldUsdo तुरंत “balance” नहीं बनता। भुगतान payoutCarryYeld job से होता है:

  • प्रत्येक उपयोगकर्ता का reward level (1..4), userRewardStatus में होता है।
  • प्रत्येक level का weekly max payout (defaults):
    • L1: 2000 USDO/week
    • L2: 4000 USDO/week
    • L3: 6000 USDO/week
    • L4: 8000 USDO/week
  • यदि उपयोगकर्ता का carryYeld शेष weekly allowance से अधिक है, overflow burn हो जाता है (भुगतान नहीं होता)।
  • Weekly payout progress yieldAccount.weeklyPayoutUsdo + weekKey से स्टोर होता है।

7) Auto payout schedule

  • यदि Block settings में yieldAutoPayoutEnabled=true है, तो cron pattern (dayOfWeek/hour/minute) के साथ queue में repeat job payoutCarryYeld जोड़ा जाता है।
  • यदि disabled है, तो repeat job best-effort आधार पर हटा दिया जाता है।

8) TIP upgrade का carry पर प्रभाव

जब उपयोगकर्ता का overall tier बढ़ता है:

  • Pending XP credits को processed mark किया जाता है ताकि पुराने state से payout न हो।
  • yieldAccount.carryLeftXP/carryRightXP को 0 पर reset किया जाता है।
  • Investment create flow में carryYeldUsdo भी 0 पर reset होता है (upgrade endpoint को छोड़कर, जहाँ केवल left/right carry reset होता है)।