Skip to main content

Architecture

Mpawns Coin: reward engine and anti-abuse layers

Technical breakdown of reward issuance, uniqueness guarantees, rate limits, and quality gates.

Section Architecture
Updated 23.05.2026

Где живет reward engine#

Основная реализация находится в private/pawn_coin/PawnCoinService.php.

Этот сервис отвечает за wallet bootstrap, creditReward, reward summary, ledger reads и anti-abuse throttling.

Основные reward sources#

  • correct prediction reward
  • first forecast of the day
  • Idea Box publish reward
  • first post of the week

Idempotency и защита от дублей#

  • uniq_reward_source блокирует повторное начисление за один source event.
  • uniq_reward_period защищает периодические награды вроде daily/weekly bonus.
  • Ledger write и reward event write должны оставаться согласованными в пределах service flow.

Quality gates#

  • В private/community_pool/CommunityPool.php используется minimum comment length для daily forecast bonus.
  • В ibox/config.php применяются minimum title/content requirements и daily cap для reward-eligible posts.
  • В PawnCoinService.php есть rolling-window rate limiting по reward type.

Starter wallet bootstrap#

Текущая безопасная логика больше не завязана на изменяемый grant_type как на признак уникальности.

Bootstrap считается выполненным, если у пользователя уже есть запись в mp_pawn_grants, что защищает от повторного стартового гранта после admin edits.

Что важно проверять после изменений#

  1. Не сломалась ли idempotency reward source / period.
  2. Не начал ли starter grant reissue происходить на старых пользователях.
  3. Совпадают ли reward labels, ledger rows и user-facing history.
  4. Не появились ли дыры между quality gates в source modules и central economy config.

Continue Reading

Related Articles