For the complete documentation index, see llms.txt. This page is also available as Markdown.

Run locally

What you will do

  1. Check out an approved repository tag.

  2. Create a local data directory and configuration file.

  3. Start one Decentralization Manager instance.

  4. Open the web interface.

  5. Verify persistent files and Canton connectivity.

This guide starts one node. Creating a Decentralized Party requires other participating nodes and is covered separately.

1. Check out the source

git clone <https://github.com/DLC-link/decentralization-manager.git>
cd decentralization-manager
git checkout <approved-release-tag>

Do not use a release candidate or main unless the environment owner explicitly approved it for testing.

2. Prepare a data directory

mkdir -p ./development/participant-1

Decentralization Manager loads an optional .env file from the directory passed through --dir or DECPM_DIR. The configuration file belongs at the directory root, not inside its data/ subdirectory.

3. Add minimum development configuration

Create ./development/participant-1/.env with placeholders for the selected environment:

Add the approved authentication settings for your environment. Do not place production credentials in this file or commit it to source control.

4. Start the application

For a release build:

5. Open the interface

Open:

Complete the configured identity-provider login where required.

Expected result

A successful first start should:

  • Serve the web interface on the configured HTTP port.

  • Generate or load a persistent Noise identity.

  • Create or open the SQLite operational database.

  • Create the local DAR storage directory when needed.

  • Attempt Canton Admin and Ledger API connections using the selected settings.

  • Expose a clear error if authentication, TLS, or Canton connectivity is misconfigured.

Verify persistent files

The selected data directory should contain application-managed state under data/, including the Noise key, SQLite database, and DAR storage as they are created.

Restart the process with the same data directory and confirm that its identity remains stable. Do not delete or replace the Noise key after peers have registered it.

Development-only insecure mode

The repository includes an insecure mode for isolated development against a Canton participant configured with unsafe shared-secret authentication.

Never enable insecure mode in a shared, externally reachable, staging, or production environment. It disables normal authentication boundaries and is not a shortcut for identity-provider setup.

Troubleshooting

Symptom
Likely check

Build cannot fetch canton-lib

Confirm a GitHub-registered SSH key is available to the build path.

UI does not open

Check the configured HTTP port, process logs, and local firewall.

Login fails

Check provider URL, realm or audience, public client, redirect URI, web origin, PKCE, and token claims.

Every Canton call fails immediately

Check host, port, and whether the client TLS setting matches what the endpoint serves.

Peers cannot connect later

Check the Noise port, public address, peer entry, and persistent public key.

State disappears after restart

Confirm the same data directory is used and remains writable.

Next steps

Technical sources

Next step

👉 Form the mesh: Connect Decentralization Manager peers.

Last updated