[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Redacted](https://evolu.dev/docs/api-reference/common/Redacted) › createEqRedacted

```ts
function createEqRedacted<A>(eq: Eq<A>): Eq<Redacted<A>>;
```

Defined in: [packages/common/src/Redacted.ts:141](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Redacted.ts#L141)

Creates an [Eq](https://evolu.dev/docs/api-reference/common/Eq/type-aliases/Eq) for [Redacted](https://evolu.dev/docs/api-reference/common/Redacted/interfaces/Redacted) values based on an equality function
for the underlying type.

### Example

```ts
import {
  assertFalse,
  assertTrue,
  createEqRedacted,
  createRedacted,
  eqString,
  type Brand,
} from "@evolu/common";

type ApiKey = string & Brand<"ApiKey">;
const eqRedactedApiKey = createEqRedacted<ApiKey>(eqString);

// Apply brands only after validation or at another trusted boundary.
using a = createRedacted("x" as ApiKey);
using b = createRedacted("x" as ApiKey);
using c = createRedacted("y" as ApiKey);

assertTrue(eqRedactedApiKey(a, b));
assertFalse(eqRedactedApiKey(a, c));
```