Inputs
The calculation draws on several sources:
Configure
stake and stakePercent with the set command:
get stake or get stakePercent.
How the priority cascade works
MyTonCtrl evaluates stake sources in a fixed priority order. The first rule that produces a value wins; later rules are skipped.Priority 1: Saved fixed stake
If the operator previously ranset stake <VALUE>, MyTonCtrl uses that stored amount directly. No additional fee reserve is subtracted at this stage; the value passes straight to the validation guards.
Priority 2: Nominator pool mode
When the node operates through a standard nominator pool (not a single nominator pool), MyTonCtrl sets:Priority 3: Liquid staking controller mode
When the node uses a liquid staking controller, MyTonCtrl sets:Priority 4: Percentage-based calculation (default)
If none of the above rules produce a value, MyTonCtrl falls back to percentage-based calculation usingstakePercent. This is the most common path for single nominator pools and direct staking.
The logic depends on whether the node already has active validators:
-
New validator (no active validators):
The balance is halved. This solves a cold-start problem: on the first election, the elector locks the entire stake for a full validation round. By staking only half, the node keeps the other half available for the next election, which opens before the current round ends. Without halving, a new validator would be locked out of alternating rounds. Exception: if halving produces a value below
minStake, MyTonCtrl abandons the halving and stakes the full percentage instead. Participating in one round is better than being rejected by the elector for staking too little. -
Existing validator (active validators present):
No halving is needed. The returning stake from the previous round replenishes the balance in time for the next election. Fee deduction at 100%: when
stakePercentis exactly100, MyTonCtrl subtracts 20 TON from the result to prevent draining the wallet completely. At lower percentages, the non-staked remainder covers fees implicitly.
Validation guards
After the stake amount is determined, three sequential checks run regardless of which priority rule produced the value:
The asymmetry is intentional. Exceeding the maximum is recoverable — MyTonCtrl clamps and continues. Falling below the minimum or exceeding the available balance would waste transaction fees on a doomed submission, so MyTonCtrl aborts instead.
Safety reserves by mode
Each staking mode reserves a different amount for transaction fees:Examples
New validator with 800,000 TON balance
Settings:stakePercent = 99, no fixed stake, single nominator pool mode.
- No saved fixed stake, not a standard nominator pool, not a controller.
- Falls through to percentage-based calculation (Priority 4).
- No active validators detected (new node): halving applies.
stake = 800,000 * 99 / 100 / 2 = 396,000.396,000 > minStake(300,000): halving is kept.- Result: 396,000 TON is submitted. The remaining balance covers the next election.
Returning validator with 1,600,000 TON balance
Settings:stakePercent = 99, single nominator pool mode, already validating.
- Falls through to percentage-based calculation.
- Active validators present: no halving.
stake = 1,600,000 * 99 / 100 = 1,584,000.- Result: 1,584,000 TON is submitted.
New validator with exactly 600,100 TON (near minimum)
Settings:stakePercent = 100, single nominator pool mode.
- Falls through to percentage-based calculation.
- No active validators: halving would give
600,100 / 2 = 300,050. 300,050 > minStake(300,000): halving is kept.stakePercent == 100: 20 TON fee deduction applies:300,050 - 20 = 300,030.- Result: 300,030 TON is submitted.
New validator with exactly 500,000 TON (halving would go below minimum)
Settings:stakePercent = 100, single nominator pool mode.
- Falls through to percentage-based calculation.
- No active validators: halving would give
500,000 / 2 = 250,000. 250,000 < minStake(300,000): halving is abandoned.- Full percentage is used:
500,000. stakePercent == 100: 20 TON fee deduction:500,000 - 20 = 499,980.- Result: 499,980 TON is submitted.
Nominator pool with 2,000,000 TON balance
Settings: standard nominator pool mode (not single nominator).- Pool mode detected (Priority 2).
stake = 2,000,000 - 20 = 1,999,980.- Result: 1,999,980 TON is submitted.
See also
- Staking overview — comparison of staking solutions and minimum requirements.
- Run a validator — step-by-step guide for setting optimal stake.
- MyTonCtrl settings — full list of configurable parameters including
stakeandstakePercent. - Single nominator pools — recommended staking contract for large holders.