DAML Connect and Ledger API versioning disparity


So we were upgrading our ledger-api wrapper which uses both the rxjava and the java bindings. We upgraded to version 1.8.0 as suggest by the DAML connect 1.9.0 release information in https://daml.com/blog/engineering/release-of-daml-connect-1-9-0-rc/
Quoting the post:

Specific Changes

  • The Ledger API version is now at 1.8.

This lead us to believe that we should update our pom.xml file to use:




However, doing this did not make function calls using act_as and read_as available to us. It was only when we used version 1.9.0 that act_as and read_as became available in the command submission and command service.

I was wondering whether this is intended behavior or whether we have misinterpreted the documentation on our end, considering the documentation said the ledger API is now up to version 1.8.0


Apologies for the confusion, I believe that version reported in the release announcement refers specifically to the Ledger API itself, as a component. You should use the SDK version (i.e. 1.9 in your case) when referring to libraries in your build files.


There are 3 different versions involved here:

  1. The Ledger API version. This purely describes the API not an implementation thereof. SDK 1.9, added multi-party submissions so the API changed. SDK 1.8 for example did not change the API in anyway so the ledger API version stayed the same.

  2. The version of a server-side implementation of the ledger API, e.g., the version of Sandbox. In this case, Sandbox 1.9, implements ledger API 1.8. Sandbox 1.8 and Sandbox 1.7 both implemented Legder API 1.7.

  3. The version of a client-side bindings to connect to the Ledger API, e.g. bindings-rxjava. Here, bindings-raxjava 1.9, adds support for the new features in Ledger API 1.8 namely multi-party submissions.

For more information on versions and compatibility, take a look at Portability, Compatibility, and Support Durations — Daml SDK 1.9.0 documentation.