https://docs.daml.com/json-api/index.html#contracts-query-stream
The stream is guaranteed to send an offset immediately at the beginning of this “live” data, which may or may not contain any
events
; if it does not contain events and no events were emitted before, it may benull
or a string; otherwise, it will be a string.
Yes, null
is LedgerBegin…
I believe you have never seen null
just because sandbox does not emit LedgerBegin
even on totally empty ledger. That is sandbox implementation.