Documentation Index
Fetch the complete documentation index at: https://docs.paxeer.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
ArgusVM is a register-based virtual machine designed for HyperPaxeer’s dual-VM architecture. It is the execution environment for the Argus capital-orchestration layer — a C++ runtime that handles risk engines, funded smart-wallet management, and capital allocation. Smart contracts are written in ArgLang, a statically typed language with Rust-inspired syntax that compiles to.avm bytecode.
Register-Based
Faster execution than stack-based VMs (no push/pop overhead)
256-bit Native
First-class support for cryptographic operations
EVM Compatible
Compatible with EVM but not dependent on it
Core Design Principles
- Register-based — 32 general-purpose 256-bit registers eliminate push/pop overhead
- 256-bit native — first-class support for cryptographic operations and large integers
- Deterministic — guaranteed identical output for identical input across all nodes
- Gas-metered — every operation has a fixed gas cost
- Sandboxed — no host-system access except whitelisted syscalls
Architecture
Register Set
ArgusVM uses 32 general-purpose 256-bit registers plus special-purpose registers:Status Flags
64-bit status register with condition flags:Memory Model
ArgusVM uses a segmented memory model optimized for smart contracts:Memory Layout
Storage (Persistent State)
- Key-value store:
bytes32 → bytes32 - Accessed via:
SLOADandSSTOREopcodes - Gas costs:
SLOAD: 200 gas (cold), 100 gas (warm)SSTORE: 5000 gas (cold), 200 gas (warm)
Instruction Set Architecture (ISA)
Instruction Format
Fixed-width 64-bit instructions:Opcode Categories
- Arithmetic
- Bitwise
- Comparison
- Memory
- Storage
- Control Flow
- Blockchain Context
- External Calls
Gas Model
Base Costs
| Operation | Gas Cost |
|---|---|
| Arithmetic | 3 gas |
| Bitwise | 3 gas |
| Comparison | 3 gas |
| Memory load | 3 gas |
| Memory store | 3 gas |
| Storage load (cold) | 200 gas |
| Storage load (warm) | 100 gas |
| Storage store (cold) | 5000 gas |
| Storage store (warm) | 200 gas |
| Jump | 8 gas |
| Call | 100 gas + target gas |
| Create | 32000 gas |
| Log | 375 gas + 375 per topic + 8 per byte |
Memory Expansion Cost
Execution Model
Contract Execution Flow
Call Stack
- Max depth: 1024 calls
- Each frame stores:
- Return address (pc)
- Saved registers (r0-r31)
- Local variables
- Gas limit for this call
Syscall Interface
ArgusVM provides a syscall interface for cryptographic operations:| ID | Name | Input | Output |
|---|---|---|---|
| 0 | ecrecover | hash, v, r, s | address |
| 1 | sha256 | data, len | hash |
| 2 | keccak256 | data, len | hash |
| 3 | blake2b | data, len | hash |
| 4 | verify_ed25519 | msg, sig, pubkey | bool |
| 5 | verify_secp256k1 | msg, sig, pubkey | bool |
| 6 | bls_verify | msg, sig, pubkey | bool |
| 7 | bls_aggregate | sigs[], len | aggregated_sig |
| 8 | modexp | base, exp, mod | result |
| 9 | bn256_add | x1, y1, x2, y2 | x3, y3 |
| 10 | bn256_mul | x, y, scalar | x2, y2 |
| 11 | bn256_pairing | points[], len | bool |
Precompiled Contracts
Standard precompiles for common cryptographic operations:| Address | Name | Purpose |
|---|---|---|
| 0x01 | ECRecover | ECDSA signature recovery |
| 0x02 | SHA256 | SHA-256 hash |
| 0x03 | RIPEMD160 | RIPEMD-160 hash |
| 0x04 | Identity | Data copy |
| 0x05 | ModExp | Modular exponentiation |
| 0x06 | BN256Add | BN256 elliptic curve addition |
| 0x07 | BN256Mul | BN256 elliptic curve multiplication |
| 0x08 | BN256Pairing | BN256 pairing check |
| 0x09 | Blake2F | Blake2b F compression |
| 0x0A | BLS12Verify | BLS12-381 signature verification |
| 0x0B | BLS12Aggregate | BLS12-381 signature aggregation |
Bytecode Format
File Structure
Instruction Encoding Example
Determinism Guarantees
Prohibited (Non-Deterministic)
- ❌ System time (use
block.timestamp) - ❌ Random numbers (use
block.hash + nonce) - ❌ Floating point (use fixed-point arithmetic)
- ❌ Hash map iteration order (use sorted keys)
- ❌ External I/O (only syscalls allowed)
Enforced Determinism
- ✅ All arithmetic is 256-bit integer (no floats)
- ✅ Division by zero returns 0 (no exceptions)
- ✅ Out-of-bounds memory access reverts
- ✅ All randomness from blockchain state
- ✅ Fixed gas costs per operation
Security Features
Sandboxing
- No file system access
- No network access
- No system calls except whitelisted syscalls
- Memory isolation between contracts
Gas Limits
- Prevents infinite loops
- Prevents DoS attacks
- Ensures bounded execution time
Reentrancy Protection
- Call depth limit: 1024
- State changes committed only on success
- Revert cascades up call stack
Overflow Protection
- Built-in overflow checks
- Safe arithmetic by default
- No need for SafeMath library
Performance Characteristics
Expected Performance
| Metric | Value |
|---|---|
| Throughput | 10,000+ simple transactions/sec per core |
| Latency | <1ms per simple contract call |
| Memory | <100MB per VM instance |
| Startup | <10ms to initialize VM |
Optimization Strategies
- JIT compilation for hot paths (future)
- Register allocation optimization
- Instruction fusion (combine common patterns)
- Lazy memory allocation
Comparison to Other VMs
| Feature | ArgusVM | EVM | WASM |
|---|---|---|---|
| Architecture | Register | Stack | Stack |
| Word Size | 256-bit | 256-bit | 32/64-bit |
| Gas Metering | Yes | Yes | External |
| Deterministic | Yes | Yes | Depends |
| Precompiles | Yes | Yes | No |
| JIT Support | Future | No | Yes |
| EVM Compatible | Yes | N/A | No |
| EVM Dependent | No | Yes | No |
Key Differentiator: ArgusVM is the only VM that is EVM-compatible but not EVM-dependent, enabling full ecosystem independence.
EVM Compatibility Layer
While ArgusVM is independent, we maintain full EVM compatibility through a translation layer:Bytecode Translation
Bytecode Translation
EVM bytecode can be translated to AVM bytecode:
- Stack operations → Register operations
- EVM opcodes → AVM opcodes
- Gas costs normalized
- Behavior preserved
Tooling Support
Tooling Support
Existing Ethereum tooling works with ArgusVM:
- Hardhat, Foundry, Remix support
- MetaMask and other wallets
- Block explorers
- Bridge protocols
Migration Path
Migration Path
Seamless migration for developers:
- Deploy existing Solidity contracts (via translation)
- Gradually migrate to ArgLang
- Optimise for ArgusVM architecture
- Leverage native performance benefits
ArgLang
ArgLang is the statically typed, contract-oriented language that compiles to AVM bytecode. It combines Rust-style safety with Solidity familiarity.Syntax
Type System
- Integers:
u8,u16,u32,u64,u128,u256,i8–i256 - Boolean:
bool - Address:
address(20 bytes) - Bytes:
bytes1–bytes32,bytes,string - Collections:
Vec<T>,Map<K, V>, arrays (u256[10]), structs, enums, options
Function Visibility
Control Flow
Built-in Globals
- msg:
sender,value,data,sig - tx:
origin,gasprice - block:
number,timestamp,coinbase,gaslimit,chainid - this:
address(this),this.balance
Standard Library
Compiler Pipeline
Map and Array Storage
ArgLang maps and arrays use Keccak256-based slot hashing, similar to Solidity but adapted for register-based codegen:- Simple state → sequential slots (
counterat slot 0,ownerat slot 1) - Maps →
keccak256(key || base_slot) - Nested maps → recursive hashing:
keccak256(spender || keccak256(owner || base_slot)) - Arrays → length at
base_slot, elementiatkeccak256(base_slot) + i
Gas for Map Operations
| Operation | Gas |
|---|---|
Map read (balances[addr]) | ~251 (KECCAK256 + SLOAD) |
| Map write (warm) | ~5,251 |
| Map write (cold) | ~20,251 |
Resources
PAX-28 Token Standard
Native fungible-token spec for ArgusVM
Architecture Overview
Dual-VM design and precompile framework
Smart Contracts
Deploy Solidity contracts on the EVM layer
PaxSpot
Spot exchange built on four AVM-adjacent precompiles