Skip to main content
Key terms you’ll encounter throughout Arcium development.

MXE (MPC eXecution Environment)

Your complete confidential application composed of three parts:
  • A Solana program that receives inputs and queues computations
  • Confidential instructions with encrypted logic written in Arcis
  • An MXE account storing on-chain metadata like cluster selection and the MXE’s public key

Cluster

A group of MPC nodes that execute your confidential instructions. You choose which cluster when deploying your MXE. The selection is made at deployment time but can be changed later via arcium migrate-cluster. Each cluster has a numeric cluster_offset identifier (e.g., 456 on devnet) that you specify during deployment.

Confidential Instruction

Your encrypted business logic written in Arcis (Rust framework) that executes on encrypted data via MPC. Mark functions with the #[instruction] macro to designate them as confidential instructions. Examples: vote counting, order matching, sealed-bid auctions.

Arcium Program

The on-chain coordinator on Solana that orchestrates MPC computations, routes work to clusters, and manages callbacks and finalization. You interact with it via CPI (Cross-Program Invocation) from your Solana program.

Computation Definition

An on-chain account storing compiled MPC bytecode. Created once per confidential instruction, it contains the compiled circuit from your Arcis code and must be initialized via init_comp_def() before first use.

Computation

A single execution instance of a confidential instruction. You generate a random computation_offset (u64) per invocation to uniquely identify it. The computation tracks execution status and stores encrypted results until callback.

Arx node

An MPC execution node that participates in cluster computations. Each node holds secret shares and collaborates via the MPC protocol. Clusters contain multiple Arx nodes—the dishonest majority model means privacy holds even if all but one node are compromised.

Offset identifiers

Arcium uses numeric offsets to identify on-chain resources. You’ll encounter these throughout the SDK:
OffsetTypePurposeHow it’s set
cluster_offsetu32Identifies which cluster your MXE connects toChosen at deployment (e.g., 456 on devnet)
computation_offsetu64Uniquely identifies a single computation invocationGenerated randomly per invocation (randomBytes(8))
comp_def_offsetu32Identifies a computation definition (circuit) within your MXEVia comp_def_offset("instruction_name") — computes sha256(name) truncated to LE u32

What’s next?

Computation Lifecycle

Understand how computations flow from queue to callback

Write Confidential Instructions

Learn Arcis and write encrypted business logic