# Soralets & Modules

Create Soralets and upload WASM modules for inline data processing.

## Creating a Soralet

To upload a WASM module, you must first create a Soralet. A Soralet is a WASM runtime container on Soracom which will run your WASM modules, and which can contain multiple versions of of your modules.

1. Sign in to the **[User Console](https://console.soracom.io/?coverage_type=g)**. From the **☰ Menu**, open the **Soralet Management** screen.

2. Click the **+ New** button.

   ![Soralet Management screen](https://docs.soracom.io/_astro/soralet-management.CwgMOTNp_ZLTrvn.webp)

3. Enter a unique **Soralet ID** for your Soralet.

   ![Create a new Soralet](https://docs.soracom.io/_astro/create-soralet.DSmNO2_r_2goczu.webp)

   > [!WARNING]
   >
   > The name of a Soralet can only consist of numbers, letters, underscores, and hyphens, and must be 100 characters or less.

   Then click **Create Soralet**.

Your Soralet will appear in the list of Soralets.

## Uploading a Module

Now, upload your WASM module to your Soralet:

1. Click the **ID** of the Soralet you want to configure.

   ![Select Soralet](https://docs.soracom.io/_astro/select-soralet.MvvCLwBf_NldKD.webp)

2. From the **Versions** tab, click the **Upload new WASM** button.

   ![Upload WASM module](https://docs.soracom.io/_astro/upload-module.D3CJZ8B6_Z2mp56u.webp)

3. Select the compiled WASM module file, then click **Upload**.

   ![Select module to upload](https://docs.soracom.io/_astro/upload-new-module.DWl22EiB_Z2vOO8n.webp)

Once uploaded, your module will appear in the list of versions.

![Soralet module versions](https://docs.soracom.io/_astro/soralet-module-versions.Byj8O3tU_KUJ0q.webp)

You can then follow the [Device Testing](https://docs.soracom.io/en/services/orbit/device-testing) documentation to test your module in on Soracom, and the [Configuration](https://docs.soracom.io/en/services/orbit/configuration) documentation to enable your module for a device group.

If you upload additional modules to the same Soralet, they will be saved separately rather than overwriting existing modules. Each time you upload another WASM module, the [Soracom Resource Name (SRN)](https://docs.soracom.io/en/developers/soracom-resource-name) version number will automatically increment. This allows you to easily update your group configuration and roll back to a previous version without re-uploading an older WASM module.

## Deleting a Module

If you no longer need a particular module version, or if you have reached the limit of modules that can be uploaded to a Soralet, you can delete individual modules.

1. Click the **ID** of the Soralet you want to configure.

2. From the **Versions** tab, click the **🗑** button for the module version you want to delete.

   ![Delete module](https://docs.soracom.io/_astro/delete-module.CpvUq4iP_Z2jaeHY.webp)

   > [!WARNING]
   >
   > You can only delete a module if it is not used in a group configuration.

   > [!NOTE]
   >
   > Deleting a module is a permanent action. Once deleted, a module cannot be restored. You will need to upload the module again.

## Deleting a Soralet

Once you have deleted all modules from a Soralet, you can also delete the Soralet itself:

1. Click the **ID** of the Soralet you want to configure.

2. Click the **🗑 Delete** button.

   ![Delete Soralet](https://docs.soracom.io/_astro/delete-soralet.DLhwZ11n_8Ik4v.webp)

## Programmatic Usage

You can also create and manage Soralets using the Soracom API and Soracom CLI. In many cases, you may prefer configuring Soralets programmatically as part of your Orbit module development process, in order to avoid using the User Console interface. For more information on deploying Orbit modules programmatically, refer to the [Deployment](https://docs.soracom.io/en/services/orbit/deployment) documentation.
