XP, Yield matching, Carry YELD payout
このセクションでは、現行 backend における Yield メカニクスを説明します(内部 technical module 名は yield)。
1) Terms(現行システム)
- 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 / 100xpPercentは Block settings 由来(default: 20%)
3) ツリー上方向への XP 伝播
investment は investmentInviteCode に基づく placement side(LEFT または RIGHT)を持ちます:
- placement user は同じ side で XP credit を受け取れる
- その後 XP credit は
referredByUserIdchain を通じて root へ“上がる”(max depth guard=100)
4) 重要な制限: XP credits を受け取れるのは TIP3 のみ
現行システムでは:
- XP credit は recipient user の
programTier === TIP3の場合のみ作成されます。 - yield worker(internal module
yield)にも同じ guard があり、credit receiver が TIP3 でない場合は carry を変更せず processed 済みにします。
これは次を意味します:
- TIP1/TIP2 users は carryLeft/carryRight(yield carry)を蓄積しません。
- TIP1/TIP2 investments は XP を“生成”しても、実際の XP credit は TIP3 の ancestor/placement node にのみ付与されます。
5) Yield matching(10 XP + 10 XP → 10 USDO)
yield worker は XPCredit records(internal name: xp)で動作します。
- 各 credit は
carryLeftまたはcarryRightを増加。 - Pair size は固定: 10 XP。
- 各 matched pair の payout は固定: 10 USDO。
- matching 後、carries は減少し payout は
carryYeldUsdoに追加されます。
6) Weekly payout cap(Reward levels)
carryYeldUsdo は即時に “balance化” されません。支払いは payoutCarryYeld job で実行:
- 各 user には
userRewardStatus内の reward level(1..4)がある。 - 各 level には weekly max payout(defaults):
- L1: 2000 USDO/week
- L2: 4000 USDO/week
- L3: 6000 USDO/week
- L4: 8000 USDO/week
- user の carryYeld が残り weekly allowance を超えると、overflow は burn(未払い)。
- Weekly payout progress は
yieldAccount.weeklyPayoutUsdo+weekKeyで保存。
7) Auto payout schedule
- Block settings の
yieldAutoPayoutEnabled=trueなら、cron pattern(dayOfWeek/hour/minute)で repeat jobpayoutCarryYeldが queue に追加されます。 - disabled の場合、repeat job は best-effort で削除されます。
8) TIP upgrade が carry に与える影響
ユーザーの overall tier が上がると:
- Pending XP credits は旧状態から payout が発生しないよう processed に設定されます。
yieldAccount.carryLeftXP/carryRightXPは 0 に reset。- investment create flow では
carryYeldUsdoも 0 に reset(upgrade endpoint では left/right carry のみ reset)。