#solana #arcium #computation #integrating #traits #encryption

arcium-anchor

A helper crate for integrating Arcium into Solana programs

35 releases (8 breaking)

new 0.9.7 Apr 7, 2026
0.9.3 Mar 23, 2026
0.6.0-alpha Dec 18, 2025
0.4.0 Nov 1, 2025
0.2.0 Jul 25, 2025

#125 in Magic Beans

Download history 375/week @ 2025-12-16 194/week @ 2025-12-23 158/week @ 2025-12-30 154/week @ 2026-01-06 452/week @ 2026-01-13 320/week @ 2026-01-20 486/week @ 2026-01-27 278/week @ 2026-02-03 127/week @ 2026-02-10 305/week @ 2026-02-17 245/week @ 2026-02-24 358/week @ 2026-03-03 367/week @ 2026-03-10 210/week @ 2026-03-17 221/week @ 2026-03-24 316/week @ 2026-03-31

1,156 downloads per month

GPL-3.0-or-later

42KB
968 lines

arcium-anchor

Crates.io

A helper crate for integrating Arcium into Solana programs. Provides utilities, traits, and account types that simplify the development of Anchor-based Solana programs that interact with the Arcium network for encrypted computations.

Usage

use arcium_anchor::{
    queue_computation, init_comp_def,
    SignedComputationOutputs, SharedEncryptedStruct, MXEEncryptedStruct,
    traits::{QueueCompAccs, CallbackCompAccs, InitCompDefAccs},
    prelude::*,
};

// Initialize a computation definition
init_comp_def(&ctx.accounts, circuit_source_override, finalize_authority)?;

// Queue a computation for execution
queue_computation(
    &ctx.accounts,
    computation_offset,
    args,
    callback_instructions,
    num_callback_txs,
    cu_price_micro,
)?;

// Verify and deserialize computation results
let output: MyOutputType = computation_output
    .verify_output(&ctx.accounts.cluster, &ctx.accounts.computation)?;

Main Exports

Core Functions

  • queue_computation() - Queue an encrypted computation for execution
  • init_comp_def() - Initialize a computation definition on-chain
  • comp_def_offset() - Calculate computation definition account offset

Types

  • SignedComputationOutputs<O> - Enum for computation results (Success/Failure) with BLS signature verification
  • SharedEncryptedStruct<const LEN: usize> - Container for shared encrypted data
  • MXEEncryptedStruct<const LEN: usize> - Container for MXE encrypted data

Traits

  • QueueCompAccs - Trait for accounts that can queue computations
  • CallbackCompAccs - Trait for accounts that handle computation callbacks
  • InitCompDefAccs - Trait for accounts that can initialize computation definitions

PDA Utilities

Various helper macros for deriving Program Derived Addresses (PDAs) used by Arcium accounts.

Dependencies

~32MB
~513K SLoC