> ## Documentation Index
> Fetch the complete documentation index at: https://docs.0xmonaco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# V1.0.93

# Monaco Protocol SDK v1.0.93

This release types a spot order's released lock on the `movements` channel the way movement history reports it, records spot order locks and their releases in movement history, renames the Alphabet perp to GOOGL, and removes the retired whitelist submission endpoint. **Action items:** match a spot unlock frame on `entryType` `UNLOCK` and read its reason from `description`, not from `transactionType`; look the Alphabet perp up as `GOOGL/USDC` or by its pair id; drop any call to `sdk.whitelist.submit()`.

## Breaking

### Spot unlock frames match their movement-history row

The `user_movement` frame for a spot order's released lock now has `entryType` `UNLOCK` and `transactionType` `TRADE`, with `referenceType` `Order` and `referenceId` the order. The reason, `OrderCancelled`, `OrderPartiallyCancelled` or `OrderExpired`, starts the `description`, for example `OrderCancelled order <id> - unlocked <amount> <symbol>`. Before, the frame carried `entryType` `CREDIT`, the reason as `transactionType` and the reason again as `referenceType`, while `GET /api/v1/accounts/movements` reported the same release as an `UNLOCK` of a `TRADE`.

Code that matched `transactionType` `OrderCancelled`, `OrderPartiallyCancelled` or `OrderExpired`, or `startsWith("order")`, should match `entryType` `UNLOCK` instead and read the reason from `description`. The frame's `id` is now the id of that movement-history row, so a client that reads both deduplicates the release by `id`. Its amounts and before/after snapshots are unchanged. See [WebSockets](https://docs.0xmonaco.com/sdk/typescript/websockets.md) and [Account Balances](https://docs.0xmonaco.com/developers/account-balances.md).

### Alphabet perp is GOOGL

The Alphabet perp now prices Alphabet Class A on every oracle, and its base asset is renamed from `GOOG` to `GOOGL`, "Alphabet Inc. Class A". The pair symbol follows the asset, so the perp reads `GOOGL/USDC`. Its pair id is unchanged. A lookup by the old `GOOG/USDC` symbol no longer finds it, so look it up by `GOOGL/USDC` or by pair id. See [Perpetual Futures](https://docs.0xmonaco.com/trading-mechanics/perps.md).

## Removed

### Whitelist submission

`sdk.whitelist` and `WhitelistAPIImpl` are removed from `@0xmonaco/core`, and `WhitelistAPI`, `SubmitWhitelistRequest`, `SubmitWhitelistResponse` and the `whitelist` member of `MonacoSDK` from `@0xmonaco/types`, with the `submit_whitelist` wire operation. The Rust REST client drops `submit_whitelist`, and the Rust gRPC SDK drops the `monaco::api::whitelist` module. The server endpoint is gone: `POST /api/v1/whitelist` answers `404`, and gRPC `WhitelistService.SubmitWhitelist` answers `UNIMPLEMENTED`. It only returned `403` / `PERMISSION_DENIED` once public whitelist applications closed. Existing approvals are unchanged.

## Fixed

### Spot order locks in movement history

A spot order that rests on the book now adds a `LOCK` movement, and a cancel, partial cancel, expiry or replace that releases it adds an `UNLOCK` movement. Both have transaction type `TRADE` and reference the order, so a `TRADE` filter returns them too. To list only fill activity, keep the `DEBIT` and `CREDIT` rows, which reference the trade. Before, these rows were not stored, so `GET /api/v1/accounts/movements` (gRPC `AccountsService.GetMovements`) filtered by `LOCK` or `UNLOCK` returned nothing for spot orders. Balances were always correct, and earlier orders are not backfilled. See [Accounts](https://docs.0xmonaco.com/accounts.md).

## Upgrade

```bash theme={null}
npm install @0xmonaco/core@1.0.93 @0xmonaco/types@1.0.93 @0xmonaco/react@1.0.93
# or bun
bun add @0xmonaco/core@1.0.93 @0xmonaco/types@1.0.93 @0xmonaco/react@1.0.93
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.