> For the complete documentation index, see [llms.txt](https://docs.catalyx.solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.catalyx.solutions/catalyx-blockchain-manager/canton-network/version-2.0/user-guide-canton/validators/integrations/package-manager.md).

# Package Manager

The Package Manager tab connects a validator to CatalyX Package Manager (CPM) and shows the live status of its onboarding.

<div data-with-frame="true"><figure><img src="https://2680825251-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsUGPGTcyMu8FXsdY8XQY%2Fuploads%2Fgit-blob-d64f20b242e9f8f566c290ba40a261520021326b%2Fimage%20(181).png?alt=media" alt=""><figcaption></figcaption></figure></div>

The **Package Manager** tab connects the validator to **CatalyX Package Manager (CPM)**, the application registry for discovering, publishing, and downloading Canton applications. It was added in 2.0.1.

The tab is a connection and status view, not a copy of CPM. You use it to connect the validator and follow the onboarding. Browsing, versioning, and publishing packages stay in CPM itself.

{% hint style="info" %}
**The status is read live from the ledger.** Every time you open the tab, the API checks the participant's installed packages and the ledger's active contracts. Nothing is cached in the validator's configuration, because CPM can approve, reject, or end an onboarding on its own side.
{% endhint %}

***

## Connect a validator to CPM

<div data-with-frame="true"><figure><img src="https://2680825251-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsUGPGTcyMu8FXsdY8XQY%2Fuploads%2Fgit-blob-375ac8476608c6a0cfa34718139dbc9a045272a3%2Fimage%20(182).png?alt=media" alt=""><figcaption></figcaption></figure></div>

{% stepper %}
{% step %}
**Open the Package Manager tab**

Open the validator, then select **Package Manager** under **Integrations**. Click **Connect**.
{% endstep %}

{% step %}
**Check the values supplied by CatalyX**

The **Connect to CatalyX Package Manager** form lists the values CatalyX fills in for you. You do not enter these.

<table><thead><tr><th width="220">Value</th><th>Source</th></tr></thead><tbody><tr><td><strong>Canton party ID</strong></td><td>The validator's primary party.</td></tr><tr><td><strong>JSON Ledger API</strong></td><td>The participant's externally routable JSON Ledger API URL.</td></tr><tr><td><strong>OIDC issuer</strong></td><td>The identity provider the validator uses.</td></tr><tr><td><strong>OIDC client ID</strong></td><td>The <code>&#x3C;validator-name>-cpm-ui</code> client the operator provisions.</td></tr><tr><td><strong>CPM operator party</strong></td><td>The CPM party that approves onboarding requests.</td></tr></tbody></table>

If any of these is missing, the validator is not ready to be onboarded yet, and the form shows which value is missing.
{% endstep %}

{% step %}
**Enter your company details**

<table><thead><tr><th width="250">Field</th><th>Notes</th></tr></thead><tbody><tr><td><strong>Email</strong></td><td>Contact email for your organisation, for example <code>ops@your-company.com</code>.</td></tr><tr><td><strong>Company domain / log in ID</strong></td><td>Identifies your organisation in CPM and is used to sign in. 2 to 64 characters: letters, digits, dots, and hyphens.</td></tr><tr><td><strong>Company name</strong></td><td>Your company's legal name, for example <code>Your Company B.V.</code></td></tr></tbody></table>

Tick the box to accept the CatalyX Package Manager terms and conditions on behalf of your organisation.
{% endstep %}

{% step %}
**Submit and wait for approval**

The tab shows the progress in three steps:

1. **CPM package deployed** — the CPM DAR is uploaded to the validator's participant.
2. **Onboarding request submitted** — the onboarding request is created on the ledger.
3. **Approved by CatalyX** — CatalyX has approved the request.

While the request waits for approval, the badge shows `Awaiting approval`. You can leave the tab and come back later.
{% endstep %}

{% step %}
**Open CPM**

Once the badge shows `Onboarded`, click **Open CPM**. You sign in to CPM with your own identity.

<div data-with-frame="true"><figure><img src="https://2680825251-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsUGPGTcyMu8FXsdY8XQY%2Fuploads%2Fgit-blob-e91c24f080d5d75bd5eeb8ce559fd7f75936c7e7%2Fimage%20(183).png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

***

## After onboarding

When the validator is onboarded, the card shows the registration details:

<div data-with-frame="true"><figure><img src="https://2680825251-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsUGPGTcyMu8FXsdY8XQY%2Fuploads%2Fgit-blob-e91c24f080d5d75bd5eeb8ce559fd7f75936c7e7%2Fimage%20(183).png?alt=media" alt=""><figcaption></figcaption></figure></div>

<table><thead><tr><th width="220">Field</th><th>Contents</th></tr></thead><tbody><tr><td><strong>Company domain</strong></td><td>The log in ID entered when connecting.</td></tr><tr><td><strong>Email</strong></td><td>The email entered when connecting.</td></tr><tr><td><strong>Request</strong></td><td>The onboarding contract ID, truncated, with a copy button.</td></tr><tr><td><strong>Submitted</strong></td><td>When the request was submitted.</td></tr></tbody></table>

If the request is rejected, or the onboarding is later removed on the ledger, the tab shows this the next time you open it, and you can connect again.

***

## Connection status

The badge at the top of the card shows where the validator stands.

<table><thead><tr><th width="190">Badge</th><th>Meaning</th><th width="160">Action</th></tr></thead><tbody><tr><td><code>Initializing</code></td><td>The validator is still starting. The tab becomes available once its participant and Canton party are ready.</td><td>None</td></tr><tr><td><code>Not connected</code></td><td>The validator is not connected to CPM.</td><td><strong>Connect</strong></td></tr><tr><td><code>Not connected</code> (package deployed)</td><td>The CPM package is already on the participant, but no onboarding request exists. Connecting submits a new request without deploying the package again.</td><td><strong>Connect again</strong></td></tr><tr><td><code>Connecting</code></td><td>The API is deploying the CPM package and submitting the onboarding request.</td><td>None</td></tr><tr><td><code>Awaiting approval</code></td><td>The onboarding request is on the ledger, waiting for approval by CatalyX. The tab checks the ledger every few seconds.</td><td>None</td></tr><tr><td><code>Onboarded</code></td><td>The validator is registered with CPM.</td><td><strong>Open CPM</strong></td></tr></tbody></table>

***

## When Connect is unavailable

The **Connect** button is disabled when the API cannot find the CPM package version to install. A note on the card says why:

<table><thead><tr><th width="300">Note</th><th>What to do</th></tr></thead><tbody><tr><td><em>The CPM registry has no package published for this network, so there is nothing to install yet.</em></td><td>CPM is not yet available on this network. Contact IntellectEU support.</td></tr><tr><td><em>The CPM registry is unreachable, so the package version cannot be resolved.</em></td><td>The platform cannot reach the CPM registry. Ask your platform administrator to check network access to the registry.</td></tr></tbody></table>

***

## Good to know

* **One validator per CPM tenant.** A CPM tenant (company) currently maps to one validator.
* **The rest happens in CPM.** For using CPM once you are onboarded, see the [CatalyX Package Manager](/catalyx-package-manager.md) documentation.

{% hint style="info" %}
**Version note.** In 2.0.1, the operator also created a CPM Keycloak user and ledger user for each validator. From 2.0.2, it provisions only the `<validator-name>-cpm-ui` OIDC client, and users sign in to CPM with their own identity. See the [2.0.2 release notes](https://docs.catalyx.solutions/catalyx-blockchain-manager/canton-network/version-2.0/user-guide-canton/validators/integrations/pages/kCPkb5ZqkVwieHjMbC9q#version-2.0.2).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.catalyx.solutions/catalyx-blockchain-manager/canton-network/version-2.0/user-guide-canton/validators/integrations/package-manager.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
