Skip to content

BNB Reflections

A portion of WATER buy and sell taxes is converted to BNB and assigned to eligible holders through the dividend tracker.

A holder must:

  1. Hold at least 1,000 WATER.
  2. Maintain the qualifying position for at least 24 hours.
  3. Not be excluded from dividend tracking.

The timer is designed so an already-qualified holder does not lose qualification merely for buying more. A holder who has not yet completed the wait can have the timer restarted when their balance increases.

After a successful tax conversion, the token processes a bounded batch of eligible holders. The default batch is 5 and can be tuned from 1 to 50.

This bounded model avoids trying to pay every holder in one transaction. distributionCursor() tracks round-robin progress.

claimDividends()

A holder can use the manual claim path rather than waiting for the automatic batch cycle.

Smart-contract wallets with non-trivial receive logic may fail the deliberately gas-capped automatic push. A failed push emits DistributionFailed, rolls accounting back and leaves the BNB claimable through the manual path.

pendingBNBRewards(address account)
isReflectionEligible(address account)
holdTimeRemaining(address account)
totalEligibleHolders()
totalBNBDistributed()
distributionCursor()
dividendTracker()

A personal staking vault is the direct holder of staked WATER. This is the foundation of the dividend-preserving design. The staking dApp exposes a pull-into-vault and claim workflow so eligible token-level BNB can be collected and sent to the vault owner.

When BNB is available but there are no eligible holders, the token records it in pendingReflectionBNB and emits ReflectionBNBDeferred. The amount can be incorporated into a later normal distribution cycle.