<!--
{
  "availability" : [

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

# BlockHeader

A Bitcoin block header — exactly 80 bytes holding the six fields that
make up the proof-of-work commitment: `version (4) | prev hash (32) | merkle root (32) | time (4) | nBits (4) | nonce (4)`.

```
final class BlockHeader
```

## Overview

Headers are what miners iterate (changing the `nonce` until the
resulting hash is ≤ the target implied by `bits`) and what the P2P
network gossips before blocks. Use for header-first IBD and for
lightweight chain-presence checks that don’t need full transaction
data.

Wraps the opaque `btck_BlockHeader` type; `deinit` calls
`btck_block_header_destroy` when the last Swift reference drops.