# Function: createCapabilityGate()

```ts
function createCapabilityGate(config): CapabilityGate;
```

Defined in: [packages/core/src/validation/capability-gate.ts:32](https://github.com/leifriksheim/minca/blob/main/core/src/validation/capability-gate.ts#L32)

Creates a gate that checks an author was *authorized* to write a version.

A version signed by a delegated key carries one note from the root identity
in `proof`; the gate refuses anything misaddressed, over-broad, passed on,
or from a root the application does not trust.

No time is judged, by no one's clock: every peer must agree on a record's
standing whenever it looks. A revoke with its cutoff ends a key's writes
(spec 03 §6.4).

## Parameters

| Parameter | Type |
| ------ | ------ |
| `config` | [`CapabilityGateConfig`](https://minca.dev/api/core/interfaces/CapabilityGateConfig.md) |

## Returns

[`CapabilityGate`](https://minca.dev/api/core/interfaces/CapabilityGate.md)
