Arbitrum Multi-VM Support Enables Smart Contract Development in Rust and C++
Per Pluang, Arbitrum's latest upgrade introduces multi-VM support.
Caleb North·updated July 29, 2026

Arbitrum upgrade adds multi-VM support, letting developers use Rust and C++ for smart contracts.
Developers gain the ability to write smart contracts in Rust and C++. The headline is the only confirmed detail in available sources. Everything below it is unverified.
Signal in the headline
The Pluang report frames this as multi-VM support, not as a WASM-only addition. That wording matters. Multi-VM implies an architecture where the EVM is one of several execution environments, with contracts able to call across boundaries. The snippet does not clarify those boundaries. Treat the wording as directional. Definitive details require Arbitrum's own documentation or governance post.
What multi-VM actually changes for architects
Rust and C++ are not Solidity. They bring primitives Solidity lacks and impose constraints Solidity does not have.
- Memory model. Solidity operates on EVM memory, a transient byte-addressable buffer cleared per call. Rust and C++ introduce a native heap. A use-after-free in C++ becomes a state-mutation bug with no Solidity equivalent. Auditors trained on EVM semantics will not recognize the failure modes.
- Panic semantics. Rust panics unwind by default. The Arbitrum WASM runtime must catch and revert each panic or risk state corruption propagating through cross-contract calls. Verify the panic boundary per contract.
- Reentrancy surface. Cross-language calls between a Rust contract and a Solidity contract create reentrancy patterns neither language's tooling fully models. CEI invariants — checks, effects, interactions — require manual enforcement across the boundary.
- Tooling assumptions. Slither, Mythril, and Echidna are EVM-only. They will not parse WASM. A new audit pipeline is mandatory. Static analysis on Rust and C++ contracts must come from their own ecosystems: cargo audit, Miri, fuzz harnesses, sanitizers.
- Determinism. Arbitrum's consensus assumes deterministic execution. Rust permits threading and system time. C++ permits hardware intrinsics. Both must be stripped at compile time. A contract that reaches non-deterministic primitives breaks the chain's invariant.
What to verify before deploying
The evidence is a single headline. Confirm directly before committing engineering time.
- Source. Pull the announcement from Arbitrum's official channels. Pluang's snippet contains no version number, no release date, no compiler spec, no gas accounting rules, and no security disclosure.
- Compiler target. Determine whether C++ compiles to WASM (a likely path) or to a separate VM. Each path has different gas accounting and different security properties.
- Audit tooling. Identify the security tools the Arbitrum foundation recommends for non-EVM contracts. Without them, the audit surface expands faster than the team can cover it.