> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arcium.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Versioning and compatibility

> Understand coordinated Arcium releases, compatibility guarantees, and the supported path from v0.11 or newer.

Arcium publishes the CLI, Rust crates, TypeScript packages, and Arx node image as a coordinated release.

## Choose an upgrade path

| Project state                                | Path                                                                                                                                                             |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| All Arcium components use the latest release | No upgrade required.                                                                                                                                             |
| Every component is v0.11 or newer            | Start from the oldest component version, review every subsequent [release note](/developers/release-notes), then synchronize all components to the same release. |
| Any component is v0.10 or older              | Request a project-specific upgrade path in [Arcium Discord](https://discord.gg/arcium). These versions are outside the maintained documentation baseline.        |

## Understand compatibility

Starting with v0.11, releases are designed to preserve compatibility at the protocol and account level. Network upgrades should not invalidate existing MXEs, Clusters, or computation-definition accounts.

Developer-facing APIs can still change. An upgrade might require source changes before you rebuild, even when deployed accounts remain compatible. The [release notes](/developers/release-notes) identify required application and Node Operator actions for each release.

| Layer                    | Compatibility rule                                                                            |
| ------------------------ | --------------------------------------------------------------------------------------------- |
| Arcium components        | Use the same release across the CLI, crates, TypeScript packages, and Arx node image.         |
| Protocol and accounts    | Releases from v0.11 onward are designed to keep existing deployments and accounts compatible. |
| Developer APIs           | Rust, TypeScript, CLI, configuration, and Arcis APIs can change between releases.             |
| Mixed component versions | They might work, but Arcium does not test or guarantee them.                                  |

## Update a project

Each component updates through a different mechanism:

| Component              | Update mechanism                |
| ---------------------- | ------------------------------- |
| CLI and Arx node image | Arcup                           |
| Rust crates            | Cargo manifests and lockfile    |
| TypeScript packages    | `package.json` and its lockfile |

1. Check the active CLI and Arcup versions:

   ```bash theme={null}
   arcium --version
   arcup version
   ```

   Also check Arcium versions in your Cargo manifests, JavaScript package manifest, lockfiles, and Arx node image tag.

2. Read the [release notes](/developers/release-notes) from your oldest component version through the latest release. Apply every required API or configuration change in order.

3. Update the components managed by Arcup:

   ```bash theme={null}
   arcup self update
   arcup update
   ```

4. Set Arcium Rust crates and TypeScript packages to the same release. Follow the [installation overview](/developers/installation) for current prerequisites. Node Operators should also follow [Node setup](/developers/node-setup) for the current image and configuration.

5. Rebuild and test before deploying:

   ```bash theme={null}
   arcium build
   cargo check --all
   arcium test
   ```
