Privacy features are on the roadmap and not yet available on Arc.
How ArcaneVM works
Arc runs one blockchain with two execution environments: Arc for public state and ArcaneVM for private state. Both environments produce state roots that are committed together in each block, advancing in lockstep within the same consensus rounds. To submit a private transaction, encrypt a standard EVM transaction using the ArcaneVM network public key and send the ciphertext as calldata to an Arc precompile. From the public ledger’s perspective, this looks like an ordinary precompile call — the encrypted payload is opaque. Validators running ArcaneVM inside hardware enclaves decrypt, verify, and execute the transaction against private state using standard EVM rules. The privacy precompile returns only an acknowledgement and a predefined gas cost. No execution results, return values, or event logs are exposed to the public ledger. After consensus finalizes the block, a light client inside each enclave verifies the block’s commit certificate before making private state queryable. Retrieve transaction results from an RPC node by providing the transaction hash and proving authorization.Synchronous composability
ArcaneVM finalizes private and public state in the same block by the same validator set. Private and public contracts compose atomically without cross-chain bridges or asynchronous messaging. Bridge assets between public and private contracts through controlled precompile operations that execute within a single block. Both sides of the bridge see consistent state at each block height.Contract isolation by default
ArcaneVM enforces a default-deny isolation model. When you deploy a contract, every function and storage slot is inaccessible to external callers and other contracts by default. Privacy holds even if you forget to add explicit protections. Exposure is opt-in through three mechanisms:- Function-level access policies. Each function selector carries an access
policy:
Open,Restricted, orLocked. Restricted functions require the caller to have an explicit grant. Locked functions revert unconditionally. - Trust domains. A contract’s admin can grant trust to specific contracts
via
addTrustee. Without an active trust relationship, introspection opcodes likeEXTCODESIZE,EXTCODEHASH, andBALANCEreturn zero. Trust is unidirectional and revocable. - Runtime visibility enforcement. Solidity visibility modifiers (
public,external,internal,private) are enforced at runtime on everyCALLandDELEGATECALL, preventing crafted calldata from reaching unintended entrypoints.
Deploying existing Solidity contracts
ArcaneVM reuses standard EVM bytecode and tooling. Core business rules, state management, and function implementations carry over unchanged. The primary adaptation is how contracts expose their interfaces to external callers, through access policy and trust domain configuration. For example, deploy a standard OpenZeppelin ERC-20 token into ArcaneVM without modifying the bytecode, then use the trust domain API to maketransfer open to
any caller while restricting balanceOf to explicitly trusted contracts —
without redeploying.
Post-quantum encryption
ArcaneVM uses hybrid post-quantum cryptography to protect against harvest-now, decrypt-later attacks:- Public-key encryption uses X-Wing KEM (combining X25519 and ML-KEM-768) with HKDF-SHA256 and AES-256-GCM.
- Symmetric encryption uses AES-256-GCM-SIV for contract state and AES-256-GCM for state roots.
- Node-to-node communication uses TLS 1.3 with the X25519MLKEM768 hybrid key agreement.