<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "BitcoinKernel",
  "identifier" : "/documentation/BitcoinKernel/ChainstateManager/processBlockHeader(_:state:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "BitcoinKernel"
    ],
    "preciseIdentifier" : "s:13BitcoinKernel17ChainstateManagerC18processBlockHeader_5stateSbAA0fG0C_AA0F15ValidationStateCtF"
  },
  "title" : "processBlockHeader(_:state:)"
}
-->

# processBlockHeader(_:state:)

Processes a block header for validation — runs Bitcoin Core’s
[`AcceptBlockHeader`](https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp)
checks without requiring the full block body.

```
@discardableResult func processBlockHeader(_ header: BlockHeader, state: BlockValidationState) -> Bool
```

## Parameters

`header`

The block header to process.

`state`

Populated on return with the validation result.

## Return Value

`true` if header processing completed successfully.

## Discussion

Useful for header-first IBD patterns where headers arrive before
blocks. A `true` return means the header passed initial checks
(proof-of-work, timestamp bounds, version-bit activation, linkage
to a known parent) — not that the block extends the best chain.
Inspect `state` for a typed rejection reason on failure.