<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "BitcoinKernel",
  "identifier" : "/documentation/BitcoinKernel/BlockValidationResult",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "BitcoinKernel"
    ],
    "preciseIdentifier" : "s:13BitcoinKernel21BlockValidationResultO"
  },
  "title" : "BlockValidationResult"
}
-->

# BlockValidationResult

A granular reason why a block failed validation. Paired with
[`ValidationMode.invalid`](/documentation/BitcoinKernel/ValidationMode/invalid) inside [`BlockValidationState`](/documentation/BitcoinKernel/BlockValidationState) to explain a
rejection from [`processBlockHeader(_:state:)`](/documentation/BitcoinKernel/ChainstateManager/processBlockHeader(_:state:)) or
[`processBlock(_:)`](/documentation/BitcoinKernel/ChainstateManager/processBlock(_:)).

```
enum BlockValidationResult
```

## Overview

Maps to `btck_BlockValidationResult` constants in the kernel C API.
Case descriptions follow Bitcoin Core’s `BlockValidationResult` enum
in [`validation_state.h`](https://github.com/bitcoin/bitcoin/blob/master/src/validation.h).