Monaco Protocol SDK v1.0.93
This release types a spot order’s released lock on themovements 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
Theuser_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 and Account Balances.
Alphabet perp is GOOGL
The Alphabet perp now prices Alphabet Class A on every oracle, and its base asset is renamed fromGOOG 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.
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 aLOCK 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.

