<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "Bitcoin",
  "identifier" : "/documentation/Bitcoin/BitcoinConfig",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Bitcoin"
    ],
    "preciseIdentifier" : "s:7Bitcoin0A6ConfigV"
  },
  "title" : "BitcoinConfig"
}
-->

# BitcoinConfig

A type-safe, fluent builder for Bitcoin Core CLI arguments.

```
struct BitcoinConfig<N> where N : BitcoinNetwork
```

## Overview

`BitcoinConfig` accumulates validated `-key=value` arguments and tracks
conflict-relevant state in a `ConfigFlags` bitmask. Call `validate()` before
passing the config to `Daemon.start(with:)` to surface warnings and errors.

Create configs exclusively via the static factory methods:

```swift
BitcoinConfig.mainnet()
BitcoinConfig.regtest()
```

The initializer is intentionally `internal` — phantom typing requires
that the network type is always inferred from the factory call site.