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 for EVM/Yul.

79%
Examples Pass
23/29
Validated
Active
Development

✅ What Works Now

  • Full lexer and parser (23/29 examples pass)
  • Type checking and semantic analysis
  • Storage, memory, and transient regions
  • Error unions and switch statements
  • Structs, enums, and custom types
  • MLIR lowering for optimization

🚧 In Development

  • Complete Yul/EVM code generation
  • Advanced for-loop syntax
  • Standard library functions
  • Full formal verification

📋 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 →