[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [local‑first/Owner](https://evolu.dev/docs/api-reference/common/local-first/Owner) › deriveShardOwner

```ts
function deriveShardOwner(
  owner: AppOwner,
  path: readonly [string | number, string | number],
): ShardOwner;
```

Defined in: [packages/common/src/local-first/Owner.ts:269](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/local-first/Owner.ts#L269)

Derives a [ShardOwner](https://evolu.dev/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner) from an [AppOwner](https://evolu.dev/docs/api-reference/common/local-first/Owner/interfaces/AppOwner) using the specified path.

**Advantages of derived owners:**

- **Deterministic**: Same path always produces the same ShardOwner across all
  devices
- **Immediate availability**: Can be hardcoded and used before sync occurs
- **Consistent setup**: All devices start with identical data structure
- **Lifecycle management**: Can implement epoch patterns for clean data
  deletion and recreation

**Common patterns:**

- Use paths like `["shard", 1]` for versioned data lifecycle
- Use paths like `["project", "MyApp", 1]` for named partitions with versions
- Each device can derive the same owners and set up initial structure