# Storage — `client.storage` Per-player storage, one item per `type`. `StorageDomain`, revision key `storage`. Source: `src/domains/StorageDomain.ts`. ```ts client.storage.value // GetStorageResponse | undefined await client.storage.save(type, data); await client.storage.delete(type); ``` ```ts interface GetStorageResponse { items?: StorageItem[]; nextCursor?: string; } interface StorageItem { data?: string; // opaque payload, JSON-stringify yourself id?: string; // server-assigned type?: string; // the storage key } ``` - `save(type: string, data: string): Promise`: upserts the item of `type` (the server keeps one item per player and type), then invalidates. - `delete(type: string): Promise`: deletes the item of `type`, then invalidates. ## Limits and notes - The state loads with `{ limit: 100 }`; `nextCursor` pagination is not surfaced. - `data` is a raw string on the wire; serialize and parse JSON yourself. - Project storage is not reachable from the client SDK. It stays available to modules, the dashboard and `/game/v1`.