[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) › Id

```ts
type Id = string & Brand<"Id">;
```

Defined in: [packages/common/src/Type.ts:5892](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Type.ts#L5892)

Evolu Id: 16 bytes encoded as a 22-character [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url).

Like [Nano ID](https://github.com/ai/nanoid), it is compact and URL-safe.
Unlike Nano ID's 21-character default, an Evolu Id is the canonical Base64Url
encoding of a full 128-bit value, so it round-trips directly between its
string and byte representations with [idToIdBytes](https://evolu.dev/docs/api-reference/common/Type/functions/idToIdBytes) and
[idBytesToId](https://evolu.dev/docs/api-reference/common/Type/functions/idBytesToId). These helpers use native Base64 APIs.

[createId](https://evolu.dev/docs/api-reference/common/Type/functions/createId) is the privacy-preserving default. Use
[createIdFromString](https://evolu.dev/docs/api-reference/common/Type/functions/createIdFromString) for stable mappings from external identifiers, or
[createIdAsUuidv7](https://evolu.dev/docs/api-reference/common/Type/functions/createIdAsUuidv7) only when insertion locality is worth exposing the
creation time encoded in the identifier.