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

## Call Signature

```ts
function createSharedResourceByKeyWithClaims<T, K, C, D>(
  create: (key: K) => Task<T, never, D>,
): Task<SharedResourceByKeyWithClaims<K, C, T, D>, never, D>;
```

Defined in: [packages/common/src/Resource.ts:625](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L625)

Creates [SharedResourceByKeyWithClaims](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceByKeyWithClaims).

Claim-resource pairs are reference-counted by logical identity. The
underlying resource for a key is acquired on the first active claim and
released when the last active claim for that key is removed.

## Call Signature

```ts
function createSharedResourceByKeyWithClaims<T, K, C, D, LK, LC>(
  create: (key: K) => Task<T, never, D>,
  options: SharedResourceByKeyWithClaimsOptions<K, C, T, LK, LC>,
): Task<SharedResourceByKeyWithClaims<K, C, T, D>, never, D>;
```

Defined in: [packages/common/src/Resource.ts:633](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L633)

Creates [SharedResourceByKeyWithClaims](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceByKeyWithClaims).

Claim-resource pairs are reference-counted by logical identity. The
underlying resource for a key is acquired on the first active claim and
released when the last active claim for that key is removed.