# Working with p12 files

### Generating p12 files[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#generating-p12-files) <a href="#generating-p12-files" id="generating-p12-files"></a>

This guide will walk you through the process of creating your own custom p12 files. We will generate three files to match the original Euclid Development Environment project's configuration.

{% hint style="warning" %}
**Caution**

If using a Euclid Development Environment project, you must update your configuration to use your own custom p12 files. Projects submitted with the default p12 files that come with the project will be rejected.
{% endhint %}

#### Step 1: Download `cl-keytool.jar` Executable[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#step-1-download-cl-keytooljar-executable) <a href="#step-1-download-cl-keytooljar-executable" id="step-1-download-cl-keytooljar-executable"></a>

Download the `cl-keytool.jar` executable. This is included as an asset with each release of Tessellation.

#### Step 2: Set Up Your Environment Variables[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#step-2-set-up-your-environment-variables) <a href="#step-2-set-up-your-environment-variables" id="step-2-set-up-your-environment-variables"></a>

Modify the following variables with your custom details and export them to your environment:

```
export CL_KEYSTORE=":your_custom_file_name.p12"
export CL_KEYALIAS=":your_custom_file_alias"
export CL_PASSWORD=":your_custom_file_password"
```

Replace `:your_custom_file_name.p12`, `:your_custom_file_alias`, and `:your_custom_file_password` with your specific file name, alias, and password, respectively.

#### Step 3: Generate Your Custom .p12 File[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#step-3-generate-your-custom-p12-file) <a href="#step-3-generate-your-custom-p12-file" id="step-3-generate-your-custom-p12-file"></a>

Execute the following command to generate your custom .p12 file:

```
java -jar cl-keytool.jar generate
```

This will create a .p12 file in the directory from which the command was executed.

#### Step 4: Repeat the Process[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#step-4-repeat-the-process) <a href="#step-4-repeat-the-process" id="step-4-repeat-the-process"></a>

Repeat steps 2 and 3 two more times to create a total of three custom p12 files. Remember to change the file name each time to avoid overwriting any existing files.

### Finding Your Node IDs[​](https://docs.constellationnetwork.io/sdk/guides/working-with-p12-files#finding-your-node-ids) <a href="#finding-your-node-ids" id="finding-your-node-ids"></a>

Your node ID is the public key of your wallet which will be stored as a p12 file.

{% hint style="warning" %}
**Caution**

If using a Euclid Development Environment project, you must update your configuration to use your own custom p12 files. Projects submitted with the default p12 files that come with the project will be rejected.
{% endhint %}

[**How to generate p12 files**](https://docs.constellationnetwork.io/sdk/guides/generating-with-p12-files)

Download the `cl-wallet.jar` executable. This is distributed as an asset with each [release of Tessellation](https://github.com/Constellation-Labs/tessellation/releases).

Editing the details of the following variables and export to your environment.

```
export CL_KEYSTORE=":your_file_name.p12"
export CL_KEYALIAS=":your_file_alias"
export CL_PASSWORD=":your_file_password"
```

Then you can run the following to get your node ID:

```
java -jar cl-wallet.jar show-id
```
