Skip to main content
Pre-ASUKA AlphaContributors Welcome

Ora Development Notebook

Pre-ASUKA Alpha - Smart Contract Language for EVM

An experimental smart contract language with explicit semantics, memory regions, and clean compilation pipeline targeting EVM via sensei-ir.

79%
Success Rate
76/96
Examples Pass
81
MLIR Operations

✅ What Works Now

  • Full lexer and parser (76/96 examples pass - 79% success rate)
  • Complete type checking and semantic analysis
  • Storage, memory, and transient storage operations
  • Switch statements and control flow (if/else)
  • Structs, enums, and custom types
  • Complete MLIR lowering with 81 operations
  • Arithmetic operations (add, sub, mul, div, rem)
  • Map operations and memory management

🚧 In Development

  • Complete sensei-ir (SIR) lowering and EVM code generation
  • For loops with capture syntax
  • Enhanced error handling (try-catch improvements)
  • Type inference improvements
  • Full formal verification framework

📋 Planned for ASUKA

  • Comprehensive standard library
  • Advanced optimization passes
  • IDE integration (LSP)
  • Package manager
  • 50+ working examples
  • Language specification v1.0

Experience Ora

Clean, explicit syntax for smart contracts

contract SimpleToken {
    storage var total_supply: u256;
    storage var balances: map[address, u256];
    
    log Transfer(sender: address, recipient: address, amount: u256);
    
    pub fn transfer(to: address, amount: u256) -> !bool
        requires(balances[std.transaction.sender] >= amount)
        requires(to != std.constants.ZERO_ADDRESS)
    {
        balances[std.transaction.sender] -= amount;
        balances[to] += amount;
        @lock(balances[to]);
        
        log Transfer(std.transaction.sender, to, amount);
        return true;
    }
}

Join the Development

Ora is in active development toward the ASUKA release

🐛 Report Issues

Found a bug or have a feature request?

Open an Issue →

📝 Improve Docs

Help us make documentation better

Contributing Guide →

💬 Discuss

Share ideas and ask questions

Join Discussion →