Skip to main content

Monaco Protocol SDK v1.1.2

This release fixes the balances WebSocket channel, which now sends the lock and unlock balance_update frames it documents. No request or response shape changed. Action item: if your client re-read spot balances over REST after placing or cancelling a resting spot order to see its lock move, you can apply the balances frame instead.

Fixed

The balances channel sends lock and unlock

The balances channel (sdk.ws.balances; WebSocket balances, authenticated) now sends a lock frame when a spot order rests on the book and an unlock frame when that lock is released. It had sent neither since spot orders moved onto the sequenced placement path.
  • lock arrives when a spot order rests: placed alone or in a batch, as a replacement, or as a passive TWAP child.
  • unlock arrives on a cancel, partial cancel, expiry, a replace whose replacement doesn’t rest on the same row, a batch cancel or cancel-all, a self-trade-prevention cancel, or a TWAP parent cancelling its child.
  • Each frame carries the spot row after the step: available, locked, total and their raw forms, tokenSymbol, referenceId (the order), and version, the same revision REST and the subscribe snapshot report. The fee-lock reconcile after an engine restart re-sizes a row across all of its resting orders and sends no referenceId.
  • One step sends one frame per row. An order that fills and rests in one step sends only its trade frame, which already carries the lock, and a batch or replace sends one frame per row with its final state.
  • Market, IOC and FOK orders never rest, and margin orders lock margin collateral, so none of them sends lock or unlock. The release still sends its movements frame as before.
See WebSocket balance updates and the balances channel reference.

Upgrade