# How have the codegen'd clients changed to support the SCU feature?

**URL:** <https://forum.canton.network/t/how-have-the-codegend-clients-changed-to-support-the-scu-feature/7906>\
**Category:** App Development\
**Tags:** daml, codegen\
**Created:** [April 21, 2025, 8:55pm UTC](https://forum.canton.network/t/how-have-the-codegend-clients-changed-to-support-the-scu-feature/7906 "2025-04-21T20:55:04Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![WallaceKelly](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/wallacekelly/32/5046_2.png) [@WallaceKelly](https://forum.canton.network/u/WallaceKelly)\
**Post date:** [April 21, 2025, 8:55pm UTC](https://forum.canton.network/t/how-have-the-codegend-clients-changed-to-support-the-scu-feature/7906/1 "2025-04-21T20:55:04Z")

</div>

The [Smart Contract Upgrades](https://blog.digitalasset.com/developers/release-notes/2.10.0#anchor-whats-new) feature means that I can interact with the ledger using “package names” instead of “package ids.” What does that look like in the codegen’d client code?

---

<div class="post-metadata">

**Author:** ![WallaceKelly](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/wallacekelly/32/5046_2.png) [@WallaceKelly](https://forum.canton.network/u/WallaceKelly)\
**Post date:** [April 21, 2025, 8:55pm UTC](https://forum.canton.network/t/how-have-the-codegend-clients-changed-to-support-the-scu-feature/7906/2 "2025-04-21T20:55:10Z")

</div>

The codegen’d client code defaults to using the _package name_ instead of the _package id_.

The easiest way to see this is as follows:

1. **Create** a new project.

```haskell
DAML_SDK_VERSION=2.10.0 daml new codegend

cd codegend

git init

```

1. **Edit** the `daml.yaml` file to use `daml-script-lts`:

```haskell
sdk-version: 2.10.0
name: codegend
source: daml
init-script: Main:setup
version: 0.0.1
dependencies:
  - daml-prim
  - daml-stdlib
  - daml-script-lts

```

1. **Build** , **codegen** , and **commit** with `--target=1.15`:

```sh
daml build --target=1.15

daml codegen js -o js/ .daml/dist/codegend-0.0.1.dar

daml codegen java -o java/ .daml/dist/codegend-0.0.1.dar

git add .

git commit -m "for target 1.15"

```

1. **Build** , **codegen** , and **diff** with `--target=1.17`:

```sh
rm -rf js

rm -rf java

daml build --target=1.17

daml codegen js -o js/ .daml/dist/codegend-0.0.1.dar

daml codegen java -o java/ .daml/dist/codegend-0.0.1.dar

git diff

```

You will see that with `--target=1.17`, the codegen client code defaults to using the _package name_ instead of the _package id_.

TypeScript example:

 ![image](https://canada1.discourse-cdn.com/flex028/uploads/daml/original/2X/d/dae44c2b5ae1f79945bd23dfe6c4f757bcb64244.png)

Java example:

 ![image](https://canada1.discourse-cdn.com/flex028/uploads/daml/original/2X/3/30900b90d986c470ed0c7d0f2daf3005647b6e74.png)
