# Kzg

WASM implementation of Ox's KZG interface, backed by c-kzg-4844.

This module is not installed into [`Engine`](/api/Engine). Create an explicit
instance, pass it anywhere that accepts `Kzg.Kzg`, and dispose it when done.

## Examples

```ts twoslash
// @noErrors
import { Setups } from 'ox/trusted-setups'
import { Kzg } from 'ox/wasm'

const kzg = await Kzg.create({
  trustedSetup: Setups.mainnet
})

kzg.dispose()
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`Kzg.create`](/wasm/crypto/Kzg/create) | Creates an independently owned WASM implementation of [`Kzg.Kzg`](/api/Kzg). |
| [`Kzg.from`](/wasm/crypto/Kzg/from) | Defines a KZG interface. |

## Errors

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`Kzg.DisposedError`](/wasm/crypto/Kzg/errors#kzgdisposederror) | Thrown when an operation is called after its KZG instance was disposed. |
| [`Kzg.InvalidInputError`](/wasm/crypto/Kzg/errors#kzginvalidinputerror) | Thrown when a KZG operation receives malformed input. |
| [`Kzg.InvalidPrecomputeError`](/wasm/crypto/Kzg/errors#kzginvalidprecomputeerror) | Thrown when `precompute` is outside the supported memory bound. |
| [`Kzg.InvalidTrustedSetupError`](/wasm/crypto/Kzg/errors#kzginvalidtrustedsetuperror) | Thrown when c-kzg rejects the trusted setup. |
| [`Kzg.MemoryError`](/wasm/crypto/Kzg/errors#kzgmemoryerror) | Thrown when the KZG artifact reaches its 128 MiB memory limit. |
| [`Kzg.WasmError`](/wasm/crypto/Kzg/errors#kzgwasmerror) | Thrown when the KZG artifact traps or reports an internal error. |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`Kzg.Kzg`](/wasm/crypto/Kzg/types#kzgkzg) | Root type for a KZG interface. |
| [`Kzg.TrustedSetup`](/wasm/crypto/Kzg/types#kzgtrustedsetup) | Trusted setup points accepted by `create`. |
