Most applications should configure the memory box explicitly.
Configure the memory box by appending query parameters to the base box URI ''mem:''.

The following parameters are supported:

|= Parameter|Description|Default value>|Maximum value>
|max-bytes|Maximum storage size of the box (in bytes)|65535|1073741824 (1 GiB)
|max-zettel|Maximum number of zettel|127|65535
|readonly|Allow only read operations|false|n/a
|name|Unique name of the box|n/a|n/a

The default values provide reasonable limits for many applications.

The number of zettel is usually easy to estimate.

The number of bytes is usually more difficult to determine.
A zettel requires 6 bytes for its identifier.
Each metadata entry additionally requires the lengths of its key and value, plus a one-byte separator.
Content contributes its size in bytes.
For text content, this is the size of its UTF-8 encoding.

If one of the limits is exceeded, Zettelstore returns HTTP status code 507 (Insufficient Storage).

The ''readonly'' parameter exists primarily to support the [[''read-only-mode''|00001004010000#read-only-mode]] startup configuration.
Since a memory box is initially empty, enabling ''readonly'' effectively prevents the creation or modification of zettel.