XP, Yield matching, Carry YELD payout
Bu bölüm, mevcut backend'deki Yield mekaniklerini açıklar (dahili teknik modül adı yield'dır).
1) Terimler (mevcut sistemde)
- XP: Bu dokümanda XP olarak adlandırıyoruz. Backend'de dahili adı
xp'dir (models/fields:XPCredit,carryLeftXP,carryRightXP). - USDOL/USDOR: Bunlar LEFT/RIGHT dallarıdır (yield sides).
- Carry YELD: Backend'de
carryYeldUsdo(USDO-base) olarak saklanır ve yield matching'den biriken payout havuzu anlamına gelir; daha sonra haftalık caps ile ödenir.
2) Yatırımdan XP hesaplama
- Her yatırım için XP şu şekilde hesaplanır:
xpBase = amountBase * xpPercent / 100xpPercent, Block ayarlarından gelir (varsayılan: %20)
3) XP'nin ağaçta yayılması
Bir yatırımın, investmentInviteCode'a bağlı bir placement side'ı vardır (LEFT veya RIGHT):
- Placement kullanıcısı aynı tarafta bir XP kredisi alabilir
- Ardından XP kredisi,
referredByUserIdzinciriyle root'a kadar “yukarı taşınır” (max depth guard=100)
4) Önemli sınırlama: XP kredilerini yalnızca TIP3 kullanıcılar alır
Mevcut sistemde:
- XP kredisi yalnızca alıcı kullanıcının
programTier === TIP3olması durumunda oluşturulur. - Aynı kontrol yield worker'da da vardır (dahili modül
yield): kredi alıcısı TIP3 değilse, kredi carry değişmeden sadece işlendi olarak işaretlenir.
Bu şu anlama gelir:
- TIP1/TIP2 kullanıcıları carryLeft/carryRight biriktirmez (yield carry).
- TIP1/TIP2 yatırımları XP “oluşturabilir”, ancak gerçek XP kredisi yalnızca TIP3 olan ancestor/placement düğümüne gider.
5) Yield matching (10 XP + 10 XP → 10 USDO)
Yield worker, XPCredit kayıtları üzerinde çalışır (dahili ad: xp).
- Her kredi
carryLeftveyacarryRightartırır. - Çift boyutu sabittir: 10 XP.
- Eşleşen her çift için payout sabittir: 10 USDO.
- Matching sonrası carry değerleri azalır ve payout
carryYeldUsdo'ya eklenir.
6) Haftalık payout cap (Reward levels)
carryYeldUsdo anında “bakiye”ye dönüşmez. Ödeme payoutCarryYeld job'ı ile yapılır:
- Her kullanıcının
userRewardStatusiçinde bir reward level'ı vardır (1..4). - Her level'ın haftalık max payout'u vardır (varsayılanlar):
- L1: 2000 USDO/hafta
- L2: 4000 USDO/hafta
- L3: 6000 USDO/hafta
- L4: 8000 USDO/hafta
- Kullanıcının carryYeld'i kalan haftalık limite aşarsa, taşan kısım burned olur (ödenmez).
- Haftalık payout ilerlemesi
yieldAccount.weeklyPayoutUsdo+weekKeyile saklanır.
7) Auto payout schedule
- Block ayarlarında
yieldAutoPayoutEnabled=trueise, queue'ya cron pattern (dayOfWeek/hour/minute) ile tekrarlayanpayoutCarryYeldjob'ı eklenir. - Devre dışıysa, repeat job best-effort şekilde kaldırılır.
8) TIP yükseltmesinin carry üzerindeki etkisi
Bir kullanıcının genel tier'ı arttığında:
- Bekleyen XP kredileri, eski durumdan payout olmaması için işlendi olarak işaretlenir.
yieldAccount.carryLeftXP/carryRightXPdeğerleri 0'a sıfırlanır.- Yatırım oluşturma akışında
carryYeldUsdoda 0'a sıfırlanır (upgrade endpoint'i hariç; orada sadece left/right carry sıfırlanır).