# Staking & delegation

> Staking and delegation on NeuroChain — becoming a validator, minimum stake, bonding lock, APY and reward payouts, delegation, commission, and what stake does and does not give you.

Source: https://docs.nro.world/learn/staking

NRO can be put to work in two ways:

| | Who | What it does |
|---|---|---|
| **Self-stake** | A validator (`.node`), or any address that stakes for itself | Gives consensus voting power (for `.node`) and governance voting weight; earns staking rewards |
| **Delegation** | Any address, to a `.node` with active stake | Earns rewards at the base rate, minus the validator's commission |

Every staking action is a [signed operation](./wallet#signed-operations): the node checks your signature on entry, and the change itself is applied in consensus on every validator.

## Parameters

All of these are [governance parameters](./governance#parameters); the defaults below are what a new chain starts with. The reward and lock timings are not final before launch and may change — read live values from `GET /api/v1/governance/params` before relying on them.

| Parameter | Default | Meaning |
|-----------|---------|---------|
| `min_stake` | 10 000 NRO | Minimum stake, minimum delegation, and the price of a `.node` |
| `unbonding_blocks` | 1 512 000 | Bonding lock after staking or delegating (sized for about 7 days at 400 ms blocks). Env override: `NEUROCHAIN_UNBONDING_BLOCKS` |
| `base_apy_bps` | 1 200 (12%) | Annual rate for stake and delegations |
| `genesis_apy_bps` | 2 400 (24%) | Annual rate for validators staked at genesis |
| `reward_interval_blocks` | 216 000 | Blocks between payouts. Env override: `NEUROCHAIN_REWARD_INTERVAL_BLOCKS` |
| `blocks_per_year` | 78 840 000 | Blocks in a year at 400 ms, used to turn an annual rate into a per-block one |
| `max_commission_bps` | 2 000 (20%) | Highest commission a validator may charge |

## Becoming a validator

1. Register a `.node` name from your `.human` wallet. Registration debits `min_stake` and records it as the node's stake — see [Addresses](./addresses#paid-names-node-app-vault-agent).
2. Run a node with that identity and its ML-DSA-65 consensus key — see [Run a node](/operate/node).
3. Once its stake is at least `min_stake` and its consensus key is on chain, it joins the active set and starts proposing and voting. See [Consensus → Validator set](./consensus#validator-set).

A validator can add stake later; each top-up raises the amount and **restarts the bonding lock for the whole stake**.

## Bonding lock and withdrawing

Stake and delegations are locked for `unbonding_blocks` from the **last** time you added to them. After that:

- **Unstake** returns the whole self-stake at once. For a `.node`, it goes back to the node's **owner** wallet.
- **Undelegate** returns the whole delegation to that validator at once.

Partial withdrawals are not supported: withdraw and stake again with the amount you want to keep.

## Rewards

Rewards are paid every `reward_interval_blocks`, straight to the staker's balance:

```
reward = amount × apy_bps / 10 000 × elapsed_blocks / blocks_per_year
```

- `apy_bps` is `genesis_apy_bps` for genesis validators and `base_apy_bps` for everyone else.
- `elapsed_blocks` is the number of blocks since the last payout, limited by a per-payout cap (`MAX_REWARD_ELAPSED_BLOCKS`) so a long gap cannot produce an outsized payout.
- All arithmetic is in integers with 128-bit intermediates, so every validator computes exactly the same amount.

History and charts: `GET /api/v1/staking/rewards/:address`.

## Delegation

| Rule | Value |
|------|-------|
| Minimum | `min_stake` (10 000 NRO by default) |
| Target | A `.node` that has active stake |
| Rate | `base_apy_bps` (genesis rate does not apply to delegations) |
| Commission | Set by the validator, 10% by default, at most 20% |

For each delegation the annual rate is split:

```
commission_rate = base_apy × commission_bps / 10 000   → paid to the validator
delegator_rate  = base_apy − commission_rate           → paid to you
```

With the defaults (12% base, 10% commission) a delegator earns 10.8% a year and the validator 1.2% on the delegated amount.

::: info What delegation does not do
Delegated NRO does **not** add to the validator's consensus voting power, and it does **not** give the delegator a governance vote. Both count self-stake only. Delegation earns rewards; it does not move control.
:::

## Risks

- **Slashing.** A validator that signs two conflicting votes loses 5% of `min_stake` from its self-stake and is jailed for 10 000 blocks. See [Consensus → Slashing](./consensus#slashing-and-jail). Delegations are not slashed.
- **Lock.** Bonded NRO cannot be moved until the lock ends.

## API

| Action | Endpoint |
|--------|----------|
| Stake | `POST /api/v1/staking/stake` |
| Unstake | `POST /api/v1/staking/unstake` |
| Delegate | `POST /api/v1/staking/delegate` |
| Undelegate | `POST /api/v1/staking/undelegate` |
| Your stake and rewards | `GET /api/v1/staking/info/:address` |
| Delegations to a validator | `GET /api/v1/staking/delegations/:validator` |
| Your delegations | `GET /api/v1/staking/my-delegations/:address` |
| Validators with stake | `GET /api/v1/staking/validators` |
| Register a node | `POST /api/v1/nodes/register` |

Request and response fields are in the [REST reference](/reference/rest).
