Rewards & Payouts
What Gets Distributed
After every block, the consensus relayer forwards both of the following to the validator registry:
| Source | Details |
|---|---|
| Block reward | 0.002 BESC fixed per block |
| Gas fees | All gas paid by transactions in that block |
With a 3-second block time and 1,000 Gwei minimum gas price, the block reward alone generates:
Per block: 0.002 BESC + gas
Per minute: ~0.04 BESC (block reward only)
Per hour: ~2.4 BESC (block reward only)
Per day: ~57.6 BESC (block reward only)
Per year: ~21,024 BESC (block reward only)Gas fees add to this total depending on network activity.
How Payouts Work
The payout destination depends on whether a validator has delegators:
Validator with No Delegators
All rewards — block reward + gas — go directly to the validator's wallet. No contract interaction required to receive them.
Relayer → forwardReward() → 100% direct to validator walletValidator with Delegators
Rewards are split:
Relayer → forwardReward()
│
├── Validator self-stake share + commission
│ → DIRECT to validator wallet
│
└── Delegator portion (after commission)
→ Into registry contract
→ Claimable by each delegator
proportionally to their stakeExample — 10% commission, 5,000 BESC self-stake, 15,000 BESC delegated (20,000 total):
| Share | Calculation | Goes To |
|---|---|---|
| Self-stake share | 5,000/20,000 × reward = 25% | Direct → validator wallet |
| Commission on delegator share | 10% × 75% of reward = 7.5% | Direct → validator wallet |
| Delegators' net share | 90% × 75% = 67.5% of reward | Registry → delegators claim |
The validator receives 32.5% of total rewards directly; delegators share the remaining 67.5%.
Claiming Rewards (Delegators)
Delegator rewards accumulate in the registry contract and must be claimed:
// Check pending reward
const pending = await registry.getPendingReward(yourAddress);
console.log(`Pending: ${ethers.formatEther(pending)} BESC`);
// Claim (specify which validator you delegated to)
await registry.claimRewards(validatorAddress);There is no cooldown on claiming — you can claim at any time.
Validator Subscription
To remain eligible for rewards, validators pay 40 BUSDC every 30 days. There is a 7-day grace period after the due date.
If a validator misses the payment:
checkValidatorStatus(addr)can be called by anyone to trigger deactivation- Validator stops receiving reward distributions immediately
- Self-stake and delegations remain in the contract (no slashing)
- Reactivation requires paying the overdue subscription
Commission Management
Validators set their commission rate (0–25%) at registration. To update:
// Update commission rate — 7-day cooldown between changes
await registry.updateCommission(750); // 750 bps = 7.5%The 7-day cooldown prevents validators from bait-and-switching delegators with sudden commission hikes.
