<!--
{
  "availability" : [

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

# Block

A Bitcoin block — an 80-byte [`BlockHeader`](/documentation/BitcoinKernel/BlockHeader) plus its list of
[`Transaction`](/documentation/BitcoinKernel/Transaction) values, structurally validated by the kernel on
construction.

```
final class Block
```

## Overview

Construct from consensus-serialized bytes (network or disk format) via
[`init(_:)`](/documentation/BitcoinKernel/Block/init(_:)). The kernel parses, sanity-checks structure, and produces
an opaque handle; downstream consensus validation happens through
[`processBlock(_:)`](/documentation/BitcoinKernel/ChainstateManager/processBlock(_:)).

Wraps the opaque `btck_Block` type; `deinit` calls `btck_block_destroy`
when the last Swift reference drops.