# On-Chain Staking

B2 sidechain provides an on-chain staking system and uses the PoSA (Proof-of-Stake-of-Authority) staking model. It allows users to delegate their tokens to the specific validator and share the validator's rewards based on the total staked amount. B2 has the following staking roles:

• **Validator:** A node that produces new blocks and validates existing blocks.

• **Delegator:** A user who participates in validator election.

&#x20;

A validator is a node that runs the validator node software, in a special validator mode. This mode allows the node to connect to boot nodes and produce new blocks. Once a block is produced by a validator, it propagates it through the network to other validators using boot nodes. Other validators must verify and add this block to the chain. Unfortunately, the Parlia consensus engine does not support fast finality today, but still this feature is under development.&#x20;

That’s why to prove the correctness of the produced block, the user must verify  $$2/3\*N+1$$ blocks. To become a validator, the user has to satisfy the following requirements:

• Have their own, fully synchronized, node running in the full-sync mode, with an unlocked validator private key.

• For registration, the user must specify the validator's address and commission rate.

• Request from one of the existing validator to propose the user become a validator.

• Wait until 2/3 of the validators support the candidate.

&#x20;

Staking pool contract allows the chain to use a different staking model. Namely, instead of delegating tokens to a validator, the user buys a share of the pool, and validator rewards are distributed between delegators based on their share. Since all the users use the same pool, the cost of reward-claiming transactions on average is shared by all the delegators in the pool.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.antimatter.finance/b2/chain-architecture/on-chain-staking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
