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

```ts
function isInstance<Value>(
  name: Value["~evolu/instance"],
): (value: unknown) => value is Value;
```

Defined in: [packages/common/src/Types.ts:247](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Types.ts#L247)

Creates a realm-neutral predicate for one [Instance](https://evolu.dev/docs/api-reference/common/Types/interfaces/Instance) name.

The identity must be stored directly on the value; inherited markers are
ignored.

The explicit value type can include the rest of an interface whose trusted
constructors attach the matching identity.

### Checking runtime identity

```ts

interface Foo extends Instance<"Foo"> {
  readonly value: string;
}

const isFoo = isInstance<Foo>("Foo");
const value: unknown = { ...instance("Foo"), value: "value" };

assertTrue(isFoo(value));
```