Vara.ETH Testnet
on Ethereum Hoodi - Now Live
Build powerful applications with real-time compute, parallel execution, and near-zero fees

Currently in MVP phase. Testnet showcases Vara.eth's core functionality. Stable testnet with wrapped VARA token integration coming soon. State reset expected during transition.
Phase 1: MVP Testnet (Current)
Phase 2: Stable Testnet (Coming Soon)
What is Vara.ETH
Vara.eth is an application platform on top of Ethereum that enables modern decentralized applications to run with 1000x more computing power, near-instant finality, and Web2-grade UX - all while maintaining Ethereum's security and liquidity without bridging. Key capabilities:
Key Features of Vara.eth Testnet
Independent Execution
_01 >
True Parallelization
_02 >
Lightweight Performance
_03 >
Decentralized Consensus
_04 >
Zero-Cost UX
_05 >
Developer-First Environment
_06 >
Dual-Token Power
_07 >
Network Configuration (Chain ID, RPC, Explorer)

Chain ID

Explorer

Faucet

Developer Quickstart on Vara.eth Testnet
_01 >
_02 >
_03 >
cargo install [email protected]_04 >
Write your program logic in Rust using Gear's framework.
Create a new Sails program:
# Your name
AUTHOR="Gear Technologies"
# Your GitHub username
USERNAME="gear-tech"
cargo sails new counter \
--author "$AUTHOR" \
--username "$USERNAME" \
--eth
cd counterExample counter program (app/src/lib.rs):
#![no_std]
use sails_rs::{cell::RefCell, prelude::*};
// Model of the service's data. Only service knows what is the data
// and how to manipulate it.
pub struct CounterData {
counter: u32,
}
impl CounterData {
// The only method exposed publicly for creating a new instance of the data.
pub const fn new(counter: u32) -> Self {
Self { counter }
}
}
// Service event type definition.
#[event]
#[derive(Clone, Debug, PartialEq, Encode, TypeInfo, ReflectHash)]
#[codec(crate = sails_rs::scale_codec)]
#[scale_info(crate = sails_rs::scale_info)]
#[reflect_hash(crate = sails_rs)]
pub enum CounterEvents {
/// Emitted when a new value is added to the counter
Added(u32),
/// Emitted when a value is subtracted from the counter
Subtracted(u32),
}
pub struct CounterService<'a> {
data: &'a RefCell<CounterData>,
}
impl<'a> CounterService<'a> {
// Service constrctor demands a reference to the data to be passed
// from the outside.
pub fn new(data: &'a RefCell<CounterData>) -> Self {
Self { data }
}
}
// Declare the service can emit events of type CounterEvents.
#[service(events = CounterEvents)]
impl CounterService<'_> {
/// Add a value to the counter
#[export]
pub fn add(&mut self, value: u32) -> u32 {
let mut data_mut = self.data.borrow_mut();
data_mut.counter += value;
// Emit event right before the method returns via
// the generated `emit_event` method.
self.emit_event(CounterEvents::Added(value)).unwrap();
data_mut.counter
}
/// Substract a value from the counter
#[export]
pub fn sub(&mut self, value: u32) -> u32 {
let mut data_mut = self.data.borrow_mut();
data_mut.counter -= value;
// Emit event right before the method returns via
// the generated `emit_event` method.
self.emit_event(CounterEvents::Subtracted(value)).unwrap();
data_mut.counter
}
/// Get the current value
#[export]
pub fn value(&self) -> u32 {
self.data.borrow().counter
}
}
pub struct Program {
counter_data: RefCell<CounterData>,
}
#[program]
impl Program {
// Program's constructor
pub fn init(counter: u32) -> Self {
Self {
counter_data: RefCell::new(CounterData::new(counter)),
}
}
// Exposed service
pub fn counter(&self) -> CounterService<'_> {
CounterService::new(&self.counter_data)
}
}Example counter program tests (tests/gtest.rs):
use counter_client::{CounterClient, CounterClientCtors, counter::*};
use sails_rs::{client::*, gtest::*};
const ACTOR_ID: u64 = 42;
#[tokio::test]
async fn do_something_works() {
let system = System::new();
system.init_logger_with_default_filter(
"gwasm=debug,gtest=info,sails_rs=debug"
);
system.mint_to(ACTOR_ID, 100_000_000_000_000);
// Submit program code into the system
let program_code_id = system.submit_code(counter::WASM_BINARY);
// Create Sails Env
let env = GtestEnv::new(system, ACTOR_ID.into());
let program = env
.deploy::<counter_client::CounterClientProgram>(
program_code_id, b"salt".to_vec()
)
.init(5) // Call program's constructor
.await
.unwrap();
let mut counter_service_client = program.counter();
assert_eq!(counter_service_client.value().await.unwrap(), 5);
assert_eq!(counter_service_client.add(37).await.unwrap(), 42);
assert_eq!(counter_service_client.value().await.unwrap(), 42);
}Compile to WASM, get IDL and run tests:
cargo build --release
cargo test --release
# Output:
# ./target/wasm32-gear/release/*.opt.wasm
#
# ./target
# `-- wasm32-gear
# `-- release
# |-- counter.idl
# |-- counter.opt.wasm
# `-- counter.wasm_05 >
Download ethexe for your system.
Grant execute permissions via chmod +x ./ethexe.
_06 >
# Your private key (development wallet only)
PRIVATE_KEY="0x7f539fd5987c4d422927c1d34a86c28be3dc708f11ed448b2d90f50c7c98e743"
# Your Ethereum address corresponding to private key
SENDER="0xF124d5D75Cfd6Ce6916A7ab9c3011B793406b72D"
./ethexe key keyring import --name sender --private-key "$PRIVATE_KEY"Create file .ethexe.toml:
[ethereum]
rpc = "wss://hoodi-reth-rpc.gear-tech.io/ws"
beacon-rpc = "https://hoodi-lighthouse-rpc.gear-tech.io"
router = "0xE549b0AfEdA978271FF7E712232B9F7f39A0b060"Upload WASM:
./ethexe tx --sender "$SENDER" upload --watch \
./target/wasm32-gear/release/counter.opt.wasmCODE_ID will be printed in the output.
_07 >
CODE_ID="0x9ae72d1d1c95ebb5a3dd5f7bc2d2142a3be98a822ee45bbf6f6f70a02bff5c29"
./ethexe tx --sender "$SENDER" create "$CODE_ID"Result: PROGRAM_ID — your Mirror contract address on Ethereum.
_08 >
- Fund executable balance (reverse-gas model)
- Interact with the program (Etherscan / SDK)
- Read program state
- Generate Solidity ABI and link Mirror as a proxy contract
Interactive Tutorial · 9 Lessons · Zero Setup
Prefer to learn hands-on?
Walk through the full on-chain flow — program creation, funding, message passing, get a reply. Runs entirely in the browser.
Use Cases You Can Run Today on Testnet
CEX-like Decentralized Exchanges
What you can build: A central limit order book (CLOB) with CEX-grade performance and Ethereum-native security.
Why Vara.eth:
- Sub-second responsiveness for order inserts/cancels/fills
- Predictable, low costs - matching runs off-chain, only settlements touch Ethereum
- True parallelization across trading pairs through isolated actor states
- No bridges, no fractured liquidity
- Decentralized validator execution, no sequencer bias
_01 >

High-Frequency Trading (HFT)
What you can build: Real-time trading engines with millisecond execution and complex strategies.
Why Vara.eth:
- Near-instant finality through pre-confirmations
- Parallel execution of multiple trading programs
- Bridgeless access to Ethereum liquidity and price feeds
- High computational throughput for complex strategies
_02 >

AI Agents & On-Chain Automation
What you can build: ML inference engines, fraud detection systems, autonomous portfolio managers.
Why Vara.eth:
- Run ML models with significantly greater computational resources
- Results are cryptographically signed and delivered to Ethereum
- Reverse-gas model: apps pay execution, users interact gas-free
- Support for complex AI workloads impossible on Ethereum L1
_03 >

Parallel Simulations & Scientific Computing
What you can build: Monte Carlo simulations, risk models, backtesting engines, auction simulations.
Why Vara.eth:
- Execute multiple simulation instances simultaneously within a block
- Isolated actor states enable natural parallelization
- General-purpose WASM VM handles massive numeric workloads
- Efficient batching of results back to Ethereum
_04 >

On-Chain Gaming
What you can build: Multiplayer games, strategy games, physics simulations, interactive worlds.
Why Vara.eth:
- Real-time game state updates with sub-second confirmations
- Complex game logic through actor model and parallel execution
- Near-instant user feedback
- Up to 2GB memory per program for rich game worlds
_05 >

Supply Chain & IoT Data Processing
What you can build: Real-time monitoring systems, anomaly detection, logistics optimization.
Why Vara.eth:
- Process large IoT datasets off-chain
- Send only critical insights on-chain for cost efficiency
- Maintain blockchain transparency and security
- Temperature monitoring, GPS tracking, quality control
_06 >

More Possibilities
- Compute-heavy oracles: Micro-batching, smoothing, sophisticated price feeds
- Web2 integration: Verified domains, certificate-based authentication
- Multi-party computation: Secure collaborative computation
- ZK tooling: Witness generation, computational markets for ZK proofs
- Perps & AMMs: Risk engines, liquidation checks, funding rate calculations
_07 >

Benchmarks on Vara.eth Testnet: Proof of Performance
Mandelbrot Set Computation on Vara.eth Testnet
- 1,000,000 points × 1,000 iterations
- Parallelized across 16 threads
- Executed for ~$3 in internal gas (testnet)
- Shows feasibility for scientific, quantitative, ZK workloads using general-purpose WASM VM
_01 >

Arkanoid Game Simulation (Multiple Concurrent Games)
- 16 concurrent game simulations executed in a single block
- ~$0.17 total cost
- Demonstrates parallel throughput for auctions, backtests, and multi-agent workloads through isolated actor states
_02 >

AI Image Recognition On-Chain
- Trained AI model running inside Vara.eth
- Recognizes handwritten digits and cat images
- Demonstrates on-chain AI inference capabilities
- Real-world ML model execution with consumer-grade hardware
_03 >

More Benchmarks Coming Soon (HFT, AI, Oracles, MPC)
We're continuously adding new benchmarks demonstrating:
- HFT order matching performance
- Complex AI inference workloads
- Oracle data processing throughput
- Multi-party computation efficiency
Want to contribute a benchmark?
_04 >

The future of Ethereum applications is here. Deploy your first program and experience:
