<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "BitcoinKernel",
  "identifier" : "/documentation/BitcoinKernel/ChainstateManager/init(options:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "BitcoinKernel"
    ],
    "preciseIdentifier" : "s:13BitcoinKernel17ChainstateManagerC7optionsAcA0cD7OptionsC_tKcfc"
  },
  "title" : "init(options:)"
}
-->

# init(options:)

Creates a chainstate manager from options.

```
init(options: ChainstateManagerOptions) throws
```

## Parameters

`options`

Preconfigured options — including context, data
directory, worker-thread count, and in-memory-DB flags.

## Discussion

Opens (or creates) the block-index and chainstate LevelDB databases
in the paths configured on `options`. On a fresh data directory this
initializes them with the genesis block for the configured
[`ChainType`](/documentation/BitcoinKernel/ChainType); on an existing directory it loads the state left
behind by the previous run.

> Throws: ``doc://BitcoinKernel/documentation/BitcoinKernel/KernelError/chainstateManagerCreationFailed`` if opening
> the databases fails. Common causes are documented on the error case.