This release requires a program redeploy due to a change in the Arcium program ID. Follow this guide to migrate your MXE from v0.5.x to v0.6.2.
1. Redeploy Required
The Arcium program ID has changed. You must redeploy your MXE program to use v0.6.2.
| Version | Program ID |
|---|
| v0.5.x | BpaW2ZmCJnDwizWY8eM34JtVqp2kRgnmQcedSVc9USdP |
| v0.6.2 | Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ |
After updating dependencies and code (steps below), run:
arcium deploy --cluster-offset <your-offset> --keypair-path <path> --rpc-url <url>
2. Update Rust Dependencies
Update your program dependencies to v0.6.2:
cd programs/your-program-name
cargo update --package arcium-client --precise 0.6.2
cargo update --package arcium-macros --precise 0.6.2
cargo update --package arcium-anchor --precise 0.6.2
Update your encrypted-ixs dependencies:
cd ../../encrypted-ixs
cargo update --package arcis --precise 0.6.2
arcis-imports no longer exists in v0.6.2. You must migrate to the arcis crate (see section 7).
3. Update TypeScript Dependencies
4. Rename SignerAccount to ArciumSignerAccount (Rust)
The SignerAccount type has been renamed to ArciumSignerAccount. Update all references in your program:
// Before v0.6
#[account(
init_if_needed,
payer = payer,
space = 8 + 1,
seeds = [b"SignerAccount"],
bump,
address = derive_sign_pda!(),
)]
pub sign_pda_account: Account<'info, SignerAccount>,
// v0.6.2
#[account(
init_if_needed,
payer = payer,
space = 8 + 1,
seeds = [b"ArciumSignerAccount"],
bump,
address = derive_sign_pda!(),
)]
pub sign_pda_account: Account<'info, ArciumSignerAccount>,
The seed in the seeds attribute must also be updated from b"SignerAccount" to b"ArciumSignerAccount".
5. Update PDA Seed in TypeScript
If you derive the signer PDA manually in your TypeScript code, update the seed:
// Before v0.6
const signPda = PublicKey.findProgramAddressSync(
[Buffer.from("SignerAccount")],
program.programId
)[0];
// v0.6.2
const signPda = PublicKey.findProgramAddressSync(
[Buffer.from("ArciumSignerAccount")],
program.programId
)[0];
v0.6.2 adds the --cluster flag to run tests against devnet, mainnet, or custom clusters directly.
Prerequisites
| Mode | Requirements |
|---|
| Localnet (default) | Docker running, ports available |
| Remote clusters | Cluster offset in Arcium.toml, RPC URL in Anchor.toml |
Add cluster configurations to your Arcium.toml:
[localnet]
nodes = 2
localnet_timeout_secs = 60
backends = ["Cerberus"]
# Cluster configs for non-localnet testing
# Get offset from `arcium deploy` or `arcium init-mxe` output
[clusters.devnet]
offset = 123
[clusters.mainnet]
offset = 456
# Custom clusters are also supported
[clusters.my-custom-cluster]
offset = 789
Run Tests
# Localnet (default) - starts Docker, validator, ARX nodes
arcium test
# Devnet - uses cluster config from Arcium.toml
arcium test --cluster devnet
# Mainnet
arcium test --cluster mainnet
# Custom cluster
arcium test --cluster my-custom-cluster
RPC Configuration
For non-localnet testing, configure your RPC endpoint in Anchor.toml:
[provider]
cluster = "devnet"
wallet = "~/.config/solana/id.json"
Non-localnet tests skip Docker, local validator, and ARX nodes entirely. The CLI reads the cluster offset from Arcium.toml and sets the ARCIUM_CLUSTER_OFFSET environment variable for your tests.
If you run arcium test --cluster devnet without configuring [clusters.devnet] in Arcium.toml, you’ll see an error with instructions to add the configuration.
7. Migrate from arcis-imports to arcis
The arcis-imports crate no longer exists in v0.6.2. You must migrate to the arcis crate:
# Before v0.6 (Cargo.toml)
[dependencies]
arcis-imports = "0.5.1"
# v0.6.2 (Cargo.toml)
[dependencies]
arcis = "0.6.2"
In your circuit code, update the import:
// Before v0.6
use arcis_imports::*;
8. Verify Migration
After completing all steps, verify your migration:
# Build
arcium build
# Type check
cargo check --all
# Run tests
arcium test
9. Summary of Breaking Changes
| Change | Before v0.6 | v0.6.2 |
|---|
| Program ID | BpaW2ZmCJnDwizWY8eM34JtVqp2kRgnmQcedSVc9USdP | Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ |
| Signer Account Type | SignerAccount | ArciumSignerAccount |
| Signer PDA Seed | "SignerAccount" | "ArciumSignerAccount" |
| Rust Dependencies | 0.5.x | 0.6.2 |
| TypeScript Client | @arcium-hq/[email protected] | @arcium-hq/[email protected] |
| Arcis Crate | arcis-imports | arcis |