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

```ts
function createIdAsUuidv7<B>(
  deps: RandomBytesDep & TimeDep,
): [B] extends [never] ? string & Brand<"Id"> : string & Brand<"Id"> & Brand<B>;
```

Defined in: [packages/common/src/Type.ts:1835](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Type.ts#L1835)

Creates an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) embedding timestamp bits (UUID v7 layout) before
Base64Url encoding.

Tradeoff: better insertion locality / index performance for huge datasets vs
leaking creation time everywhere the Id appears. Evolu uses [createId](https://evolu.dev/docs/api-reference/common/Type/functions/createId)
by default to avoid activity leakage; choose this only if you explicitly
accept timestamp exposure.

### Example

```ts
const id = createIdAsUuidv7({ randomBytes, time });
const todoId = createIdAsUuidv7<"Todo">({ randomBytes, time });
```