Arcium Docs
arcium.com@ArciumHQ
  • Documentation
  • Developers
  • Intro to Arcium
  • Installation
    • Arcup Version Manager
  • Hello World with Arcium
  • Arcium Computation Lifecycle
  • Encryption
    • Sealing aka re-encryption
  • Arcis
    • Operations
    • Types
    • Input/Output
    • Best practices
  • Invoking a Computation from your Solana program
    • Computation Definition Accounts
    • Callback Accounts
  • JavaScript Client
    • Encrypting inputs
    • Tracking callbacks
  • Callback Server
  • Current Limitations
Powered by GitBook
On this page
  1. Arcis

Types

PreviousOperationsNextInput/Output

Last updated 8 days ago

The following types are supported:

  • u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize

  • f64, f32 (Note: these types are emulated by the fixed-point numbers k*2^-52, for k between -2^250 and 2^250.)

  • tuples of supported types, including ()

  • fixed-length arrays of a supported type

  • (mutable) references to a supported type

  • user-defined structs of supported types

  • ArcisPublicKey, an Arcis public key wrapper.

  • Arcis-defined Enc, Mxe and Shared.

In particular, we do not currently support HashMap, Vec, String (we do not support types with a variable len). Constant-size byte strings (like b"hello_world") are supported.

Here, Enc type defines the encrypted data input, which is used as Enc<Owner, T> where Owner can be either Mxe or Shared, signaling which party the data of type T can be decrypted by. You can read more about dealing with encrypted inputs/outputs .

Note: Currently all these types get mapped to secret shares over the curve25519 scalar field under the hood, meaning they all take up the same amount of space. Changing this for better space utilization is on the roadmap and will be implemented soon.

here