> ## Documentation Index
> Fetch the complete documentation index at: https://companyname-a7d5b98e-ton-storage.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Staking overview

export const Aside = ({type = "note", title = "", icon = "", iconType = "regular", children}) => {
  const asideVariants = ["note", "tip", "caution", "danger"];
  const asideComponents = {
    note: {
      outerStyle: "border-sky-500/20 bg-sky-50/50 dark:border-sky-500/30 dark:bg-sky-500/10",
      innerStyle: "text-sky-900 dark:text-sky-200",
      calloutType: "note",
      icon: <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="w-4 h-4 text-sky-500" aria-label="Note">
          <path fill-rule="evenodd" clip-rule="evenodd" d="M7 1.3C10.14 1.3 12.7 3.86 12.7 7C12.7 10.14 10.14 12.7 7 12.7C5.48908 12.6974 4.0408 12.096 2.97241 11.0276C1.90403 9.9592 1.30264 8.51092 1.3 7C1.3 3.86 3.86 1.3 7 1.3ZM7 0C3.14 0 0 3.14 0 7C0 10.86 3.14 14 7 14C10.86 14 14 10.86 14 7C14 3.14 10.86 0 7 0ZM8 3H6V8H8V3ZM8 9H6V11H8V9Z"></path>
        </svg>
    },
    tip: {
      outerStyle: "border-emerald-500/20 bg-emerald-50/50 dark:border-emerald-500/30 dark:bg-emerald-500/10",
      innerStyle: "text-emerald-900 dark:text-emerald-200",
      calloutType: "tip",
      icon: <svg width="11" height="14" viewBox="0 0 11 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="text-emerald-600 dark:text-emerald-400/80 w-3.5 h-auto" aria-label="Tip">
          <path d="M3.12794 12.4232C3.12794 12.5954 3.1776 12.7634 3.27244 12.907L3.74114 13.6095C3.88471 13.8248 4.21067 14 4.46964 14H6.15606C6.41415 14 6.74017 13.825 6.88373 13.6095L7.3508 12.9073C7.43114 12.7859 7.49705 12.569 7.49705 12.4232L7.50055 11.3513H3.12521L3.12794 12.4232ZM5.31288 0C2.52414 0.00875889 0.5 2.26889 0.5 4.78826C0.5 6.00188 0.949566 7.10829 1.69119 7.95492C2.14321 8.47011 2.84901 9.54727 3.11919 10.4557C3.12005 10.4625 3.12175 10.4698 3.12261 10.4771H7.50342C7.50427 10.4698 7.50598 10.463 7.50684 10.4557C7.77688 9.54727 8.48281 8.47011 8.93484 7.95492C9.67728 7.13181 10.1258 6.02703 10.1258 4.78826C10.1258 2.15486 7.9709 0.000106649 5.31288 0ZM7.94902 7.11267C7.52078 7.60079 6.99082 8.37878 6.6077 9.18794H4.02051C3.63739 8.37878 3.10743 7.60079 2.67947 7.11294C2.11997 6.47551 1.8126 5.63599 1.8126 4.78826C1.8126 3.09829 3.12794 1.31944 5.28827 1.3126C7.2435 1.3126 8.81315 2.88226 8.81315 4.78826C8.81315 5.63599 8.50688 6.47551 7.94902 7.11267ZM4.87534 2.18767C3.66939 2.18767 2.68767 3.16939 2.68767 4.37534C2.68767 4.61719 2.88336 4.81288 3.12521 4.81288C3.36705 4.81288 3.56274 4.61599 3.56274 4.37534C3.56274 3.6515 4.1515 3.06274 4.87534 3.06274C5.11719 3.06274 5.31288 2.86727 5.31288 2.62548C5.31288 2.38369 5.11599 2.18767 4.87534 2.18767Z"></path>
        </svg>
    },
    caution: {
      outerStyle: "border-amber-500/20 bg-amber-50/50 dark:border-amber-500/30 dark:bg-amber-500/10",
      innerStyle: "text-amber-900 dark:text-amber-200",
      calloutType: "warning",
      icon: <svg className="flex-none w-5 h-5 text-amber-400 dark:text-amber-300/80" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-label="Warning">
          <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
        </svg>
    },
    danger: {
      outerStyle: "border-red-500/20 bg-red-50/50 dark:border-red-500/30 dark:bg-red-500/10",
      innerStyle: "text-red-900 dark:text-red-200",
      calloutType: "danger",
      icon: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor" className="text-red-600 dark:text-red-400/80 w-4 h-4" aria-label="Danger">
          <path d="M17.1 292c-12.9-22.3-12.9-49.7 0-72L105.4 67.1c12.9-22.3 36.6-36 62.4-36l176.6 0c25.7 0 49.5 13.7 62.4 36L494.9 220c12.9 22.3 12.9 49.7 0 72L406.6 444.9c-12.9 22.3-36.6 36-62.4 36l-176.6 0c-25.7 0-49.5-13.7-62.4-36L17.1 292zm41.6-48c-4.3 7.4-4.3 16.6 0 24l88.3 152.9c4.3 7.4 12.2 12 20.8 12l176.6 0c8.6 0 16.5-4.6 20.8-12L453.4 268c4.3-7.4 4.3-16.6 0-24L365.1 91.1c-4.3-7.4-12.2-12-20.8-12l-176.6 0c-8.6 0-16.5 4.6-20.8 12L58.6 244zM256 128c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
        </svg>
    }
  };
  let variant = type;
  let gotInvalidVariant = false;
  if (!asideVariants.includes(type)) {
    gotInvalidVariant = true;
    variant = "danger";
  }
  const iconVariants = ["regular", "solid", "light", "thin", "sharp-solid", "duotone", "brands"];
  if (!iconVariants.includes(iconType)) {
    iconType = "regular";
  }
  return <>
      <div className={`callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border ${asideComponents[variant].outerStyle}`} data-callout-type={asideComponents[variant].calloutType}>
        <div className="mt-0.5 w-4" data-component-part="callout-icon">
          {}
          {icon === "" ? asideComponents[variant].icon : <Icon icon={icon} iconType={iconType} size={14} />}
        </div>
        <div className={`text-sm prose min-w-0 w-full ${asideComponents[variant].innerStyle}`} data-component-part="callout-content">
          {gotInvalidVariant ? <p>
              <span className="font-bold">
                Invalid <code>type</code> passed!
              </span>
              <br />
              <span className="font-bold">Received: </span>
              {type}
              <br />
              <span className="font-bold">Expected one of: </span>
              {asideVariants.join(", ")}
            </p> : <>
              {title && <p className="font-bold">{title}</p>}
              {children}
            </>}
        </div>
      </div>
    </>;
};

Staking in TON enables earning rewards by locking Toncoin to support network security and validation. This guide covers the main staking options available and how to choose the right approach.

## Staking options

This page focuses on practical staking methods. TON offers several staking approaches, each with different requirements, benefits, and use cases:

### Classic staking

Classic staking involves running a validator node directly using MyTonCtrl. This method provides full control over validation and requires technical expertise to set up and maintain.

<Aside type="caution" title="Stake requirements">
  Technical minimum stake is 300,000 TON, but validators compete for 400 slots per validation round. The actual minimum stake is \~700,000 TON. Check current validator stakes at [tonscan.org/validators](https://tonscan.org/validators) (scroll to the bottom to see the validator with the lowest stake).
</Aside>

**Documentation**: See [MyTonCtrl validator documentation](/ecosystem/node/setup-mytonctrl) for detailed setup and management instructions.

### Liquid staking

Liquid staking protocols tokenize staked positions, enabling stakers to receive liquid tokens that represent staked TON. These tokens can be used in DeFi while the underlying TON earns rewards.

**Benefits:**

* Liquidity: Access staked funds without unstaking delays
* Composability: Use tokens in DeFi protocols and dApps
* Decentralization: Flexible staker-validator connections without central pools
* Accessibility: Low minimum deposits for broader participation
* Voting power: Some protocols allow governance influence
* Safety: Reduced slashing risks via diversification
* Diversification: Easy fund spreading across validators

[**Tonstakers**](https://tonstakers.com):

* Minimum stake: 1 TON
* Liquid token: tsTON
* Withdrawal: Instant if funds available; otherwise up to 18 hours
* Voting for network proposals
* Automated compounding
* Decentralized validation

[**Bemo**](https://bemo.finance):

* Minimum stake: 1 TON
* Liquid token: bmTON
* Withdrawal: 36-72 hours cooldown
* Centralized validation

[**Hipo**](https://hipo.fi):

* Minimum stake: Varies
* Liquid token: hTON
* Withdrawal: Average 30 hours; instant (1 minute) if funds available
* Centralized validation

**Protocol comparison:**

| Protocol                                     | Min deposit | Liquidity   | Voting | Withdrawal                   | Decentralized validation |
| -------------------------------------------- | ----------- | ----------- | ------ | ---------------------------- | ------------------------ |
| Tonstakers                                   | 1 TON       | Yes (tsTON) | Yes    | Up to 18h (instant possible) | Yes                      |
| Bemo                                         | 1 TON       | Yes (bmTON) | No     | 36-72h cooldown              | No                       |
| Hipo                                         | Varies      | Yes (hTON)  | No     | Avg 30h (instant possible)   | No                       |
| [TON Whales](https://tonwhales.com/staking)  | 50 TON      | **No**      | No     | Up to 18h                    | No                       |
| [TON Nominators](https://tonvalidators.org/) | 10,000 TON  | **No**      | Yes    | Up to 18h                    | No                       |

<Aside type="note">
  All validators participating in these protocols use MyTonCtrl for validation. For validator setup instructions, see:

  * [Tonstakers setup](/ecosystem/node/mytonctrl/liquid-staking)
  * [Nominator pool setup](/ecosystem/node/mytonctrl/pools#nominator-pool-operations-nominator-pool-mode)
  * [Single nominator pool setup](/ecosystem/node/mytonctrl/pools#single-nominator-pool-operations-single-nominator-mode)
</Aside>

### Nominator pools

Nominator pools are smart contracts that allow nominators to delegate their Toncoin to a validator for staking. The pool ensures validator funds are used exclusively for validation and guarantees proper reward distribution.

**How it works:**

* Nominators deposit funds into a pool managed by a validator
* The validator uses combined funds (validator's own + nominators') for validation
* Rewards are distributed proportionally: validator receives a share (set by `validator_reward_share`), remaining rewards go to nominators based on their stake size
* If validator performs poorly and gets fined, the fine is deducted from validator's balance first; if insufficient, losses are deducted from nominators proportionally
* Validator must maintain sufficient funds to cover maximum possible fines

**Key parameters:**

* Minimum nominator stake: 10,000 TON (recommended configuration)
* Maximum nominators per pool: 40
* Operational costs: \~5 TON per validation round (paid by validator)
* Partial withdrawals: Not supported — only full withdrawal available
* Voting: Nominators can vote on network configuration proposals

**When to use:**

* Staking below validator minimum (300,000 TON)
* Delegating to trusted validators without running infrastructure
* Participating in network governance through voting
* Simple staking without liquidity tokens or DeFi participation

**How to stake:**

1. Find a suitable pool on [TON Nominators](https://tonvalidators.org/) — check pool parameters, validator commission, and minimum stake requirements
2. Send a message to the nominator pool contract with TON and text comment `"d"` (deposit)
3. Amount must be ≥ `min_nominator_stake + 1 TON` (1 TON is deducted as deposit fee)
4. If pool is not validating, deposit is credited immediately; otherwise, it's added to pending deposits

**How to withdraw:**

1. Send a message to the nominator pool contract with text comment `"w"` (withdraw) and \~1 TON for network fee
2. If pool has sufficient balance, withdrawal is immediate; otherwise, a withdrawal request is created
3. Only full withdrawal is supported — partial withdrawals are not available

**How to vote:**

1. Find the proposal hash posted in [`@tonblockchain`](https://t.me/tonblockchain) or [`@tonstatus`](https://t.me/tonstatus)
2. Send a message with comment `"y<HASH>"` to vote for, or `"n<HASH>"` to vote against (e.g., `"yD855FFBCF813E50E10BEAB902D1177529CE79785CAE913EB96A72AE8EFBCBF47"`)
3. Attach \~1 TON for network fee

**Reward calculation:**

* Use [TON Center Nominator Pools API](https://toncenter.com/api/smc-index/) to calculate nominator rewards for each round of validation
* Available API methods:
  * [getPoolBookings](/ecosystem/api/toncenter/smc-index/get-pool-bookings-method) — get all the bookings (debits and credits) in specified pool
  * [getNominatorBookings](/ecosystem/api/toncenter/smc-index/get-nominator-bookings-method) — get nominator bookings (debits and credits) in specified pool
  * [getNominatorEarnings](/ecosystem/api/toncenter/smc-index/get-nominator-earnings-method) — get nominator income in specified pool with his stake on each timepoint
  * [getNominator](/ecosystem/api/toncenter/smc-index/get-nominator-method) — get nominator's balances in all pools where he participates
  * [getPool](/ecosystem/api/toncenter/smc-index/get-pool-method) — get pool data with all its nominators

**Setup for validators:**

* [MyTonCtrl nominator pools](/ecosystem/node/mytonctrl/pools#nominator-pool-operations-nominator-pool-mode) — standard pools with multiple nominators
* Nominator pools can be configured with minimum stake of 100 TON (not recommended — 10,000 TON is the tested and recommended configuration)
* Use [nominator pool contract](https://github.com/ton-blockchain/nominator-pool) to deploy a pool without MyTonCtrl

### TON Whales nominator pools

[TON Whales](https://tonwhales.com/staking) is a nominator pool service built on custom smart contracts by the TON Whales team. It provides the same core functionality as standard nominator pools but with different implementation and lower entry threshold.

**Key differences from standard nominator pools:**

* Lower minimum stake: 50 TON (vs 10,000 TON in standard pools)
* Custom contract architecture: Uses separate Owner, Controller, Proxy, and Pool contracts
* Fee structure: Deposit and withdrawal fees vary by pool (check pool information before staking)

**Creating a pool:**

* Whales contracts allow creating pools with minimum stake as low as 1 TON (not recommended)

**How it works:**

* Nominators deposit funds into Whales pools managed by validators
* Rewards are distributed proportionally minus validator commission
* Validator covers operational costs and is responsible for validation quality
* Funds are secured by smart contracts, but validators control pool operations

**When to use:**

* Small to medium stakes (50+ TON)
* Simple staking without technical knowledge
* No validator setup required

**How to stake:**

1. Use [TON Whales staking website](https://tonwhales.com/staking) to find a suitable pool and stake
2. Alternatively, send a message to any Whales-type nominator pool contract with TON and text comment `"Stake"` (capitalization is important)
3. Amount must be `desired_stake + deposit_fee` (check pool for current deposit fee)

**How to withdraw:**

1. Send a message with text comment `"Withdraw"` (capitalization is important) and `withdraw_fee` (check pool for current fee)
2. Withdrawal is a two-step process: first request, then withdraw when solidified
3. Sometimes withdrawal can be immediate if pool has sufficient balance

**See also:**

* [TON Whales staking](https://tonwhales.com/staking)
* [TON Whales nominator pool contracts](https://github.com/tonwhales/ton-nominators)

### Single nominator pools

Single nominator pools are security-focused smart contracts designed for validators with sufficient self-stake who want to validate independently without other participants. This is a simplified, more secure version of the nominator pool that supports only one nominator.

<Aside type="note" title="Stake requirements">
  Track actual minimum stakes at [tonscan.org/validators](https://tonscan.org/validators). The current minimum is about \~700,000 TON.
</Aside>

**Key features:**

* **Security-first design**: Separates cold wallet (owner) from hot wallet (validator) to prevent theft if validator node is compromised
* **Simplified architecture**: Reduced complexity compared to multi-nominator pools, making it secure and easy to audit
* **Emergency safeguards**: Owner can recover stakes even in extreme scenarios like Elector contract upgrades

**How it works:**

1. Owner (cold wallet) holds staking funds securely offline
2. Owner deposits funds into single nominator pool contract
3. Validator (hot wallet on node) instructs contract to participate in validation cycles
4. Contract sends stake to Elector for validation
5. After cycle completion, validator instructs contract to recover stake
6. Owner can withdraw funds at any time (only owner can withdraw)

**Security benefits:**

* Validator's hot wallet cannot steal funds — only owner can withdraw
* If validator is compromised, owner can change validator address immediately
* Owner can send raw messages to recover stakes in emergency situations
* Owner can upgrade contract code in extreme emergencies

**Setup for validators:**

* [MyTonCtrl single nominator pools](/ecosystem/node/mytonctrl/pools#single-nominator-pool-operations-single-nominator-mode)

**Instruction for nominator:**

* Send an **empty message** to the single nominator pool contract with TON to deposit
* Send a message of 1 TON to the single nominator pool contract with text comment `"w"` (withdraw) to withdraw
* That's it

**Reward and penalty tracking:**

* Separate API tools are typically not needed for single nominator tracking, since validator and nominator are usually the same person (as originally designed)
* If validator and staking are handled by different parties, calculate exact income, all penalties (which should be charged to validator since penalties are due to their hardware/honesty issues), and fees
* For such cases, API is not yet available from TON Center, similar to [nominator pools API](/ecosystem/api/toncenter/smc-index/get-nominator-bookings-method)

### Combining staking with DeFi

Staking can be combined with various DeFi strategies to maximize returns and unlock additional value from staked assets.

**Liquid staking strategies:**

* **Re-staking liquid tokens**: After staking TON and receiving liquid tokens (e.g., tsTON), stake these tokens again to earn additional yields. This creates a compounding effect where staking rewards are earned on both the original stake and the liquid token rewards.
* **DeFi integration**: Use liquid staking tokens in lending protocols, DEX liquidity pools, and other DeFi applications to earn multiple yield streams simultaneously.
* For detailed strategies and examples, see [Tonstakers Earn](https://tonstakers.com/) which covers leveraged staking, collateral staking, and DEX liquidity provision.

**Vesting contracts with staking:**

* **Locked token purchases**: When buying tokens with a lock period via vesting contracts, buyers receive locked tokens that can be staked to participate in validation and earn rewards while they remain locked.
* This approach allows token buyers to generate income from locked assets during the vesting period, making locked token purchases more attractive while providing additional revenue streams.
* Setup instructions: See [Vesting contracts staking options](/standard/vesting#staking-options) for detailed configuration steps.

### See also

* [Staking links on ton.org](https://ton.org/en/stake)
* [MyTonCtrl validator guide](/ecosystem/node/mytonctrl/validator)
* [MyTonCtrl nominator pools](/ecosystem/node/mytonctrl/pools)
* [Vesting contracts](/standard/vesting)
* [Catchain consensus](https://docs.ton.org/catchain.pdf)
