Skip to content
Discussions/App Development/Is there a way to obtain the package ID without uploading a dar to a ledger?Forum ↗

Is there a way to obtain the package ID without uploading a dar to a ledger?

App Development6 posts282 views7 likesLast activity Aug 2022
ME
meschOP
Aug 2022

I use daml packages list to obtain the package ID of deployed packages.

Is there a way to obtain the package ID of a package without deploying it to a ledger, just by looking at its DAR?

Thanks a lot,
mesch.

GA
Gary_Verhaegen
Aug 2022

Hi @mesch,

[EDIT]
Since this is marked as the solution, I’ve updated it to use inspect-dar instead of inspect based on @cocreature’s comment below.
[/EDIT]

There is

daml damlc inspect-dar <path/to/dar>

Full example:

$ cd $(mktemp -d)
$ daml new t
Created a new project in "t" based on the template "skeleton".
$ cd t
$ daml build

2022-08-09 13:41:44.39 [INFO]  [build]
Compiling t to a DAR.

2022-08-09 13:41:45.08 [INFO]  [build]
Created .daml/dist/t-0.0.1.dar
$ daml damlc inspect-dar .daml/dist/t-0.0.1.dar --json | grep package_id
    "main_package_id": "76fda6460d5253cf41165c2bb4ba1208a67b6d1bf953dd209bf6511fa9ea2c9d",
$ daml damlc inspect-dar .daml/dist/t-0.0.1.dar --json | jq -r .main_package_id
76fda6460d5253cf41165c2bb4ba1208a67b6d1bf953dd209bf6511fa9ea2c9d
$
ME
mesch
Aug 2022

Excellent, thank you very much.

One caveat for future readers: the bash autocompletion that comes with the daml SDK for the daml tool completes daml damlc ins| straight to daml damlc inspect-dar, which gives different information as far as I can tell.

CO
cocreature
Aug 2022

I strongly recommend to use daml damlc inspect-dar for this actually, especially the --json option which deliberately provides this in a machine readable form. daml damlc inspect is intended for debugging the generate daml-lf not to provide package metadata.

GA
Gary_Verhaegen
Aug 2022

Updated accepted answer to use inspect-dar.

ME
mesch
Aug 2022

Alright, see it!

Thanks,
mesch.

← Back to Discussions