Can anyone please explain what are the different types of pallets we need to add to a runtime in order to integrate staking into our runtime?
If you want nominated proof of stake (NPoS) for validator staking of a standalone chain then you may extend the substrate-node-template by adding these further pallets from the Substrate repository:
- pallet-staking, pallet-staking-reward-curve, and pallet-session to configure bonding, inflation, and frequency of validator staking reward distribution to nominators
- pallet-treasury to send slashed funds to
- pallet-collective and pallet-membership so the super-majority of the council may cancel slashing
If you want delegated proof of stake (DPoS) for collator staking of a parachain then extend the Cumulus-based substrate-parachain-template, see the answer here, which shows parachains that have implemented custom solutions using:
- parachain-staking pallet that improves upon the functionality of the Cumulus collator-selection pallet by allowing delegation of stake to a list of collator candidates