# Validation Requirements
Situations we need to do validation in:
* Importing a block
* All validations from beacon chain spec
* OperationValidator.validateForStateTransition (for some things)
* Replaying a known-valid block
* Skip as many validations as possible
* Received gossip message
* Subset of validations as per p2p-interface spec
* Decide if it's valid to put into a block we create
* OperationValidator.validateForBlockInclusion
* Called from OperationPool
* Decide if it's valid to add to the operation pool
* May not need to be a separate case...
* Including when re-adding to the pool because of a reorg.