Cairo (von starkware) ist eine Programmiersprache für kryptographische Beweise, die für die Entwicklung von Smart Contracts auf Starknet (einem Layer-2-Netzwerk auf Ethereum) dient. Cairo 0.x war Python-ähnlich; Cairo 1.0 (2022/2023) ist Rust-inspiriert und kompiliert zu Sierra (Safe Intermediate Representation), das sich in CASM (Cairo Assembly) für die STARK-Verifikation übersetzen lässt.

Kernkonzepte

Das zentrale Datenelement ist felt252 (ein Feld-Element, eine Zahl modulo einer großen Primzahl). Smart Contracts werden mit dem Attribut #[starknet::contract] markiert; Speicher über #[storage], Events über #[event], externe Funktionen über #[external] und Lese-Funktionen über #[view].

#[starknet::contract]
mod counter {
    #[storage]
    struct Storage {
        value: felt252,
    }

    #[external]
    fn increment(ref self: ContractState) {
        self.value.write(self.value.read() + 1);
    }
}

Cairo 1 nutzt Traits, Impls, Snapshots (@) und Span für den Zugriff auf Arrays (Array::new(), append()) — das Typsystem ist stark an Rust angelehnt.

Toolchain und Kommandos

scarb new mein_projekt
scarb build
scarb test
scarb fmt

snforge test          # Starknet Foundry: Tests
sncast declare -c mein_contract
sncast deploy -c mein_contract
sncast invoke -c mein_contract -f increment
sncast call -c mein_contract -f get_value

Scarb ist der Paketmanager und Build-Tool (Scarb.toml wie Cargo.toml), Starknet Foundry bringt snforge (Tests) und sncast (Deployment/Interaktion) mit. Alternativ arbeitet starkli als schlanke CLI direkt gegen das Netzwerk. Die alte Cairo-0-CLI bot cairo-compile und cairo-run.

Verwandte Grundlagen: Solidity-Befehle, Move-Befehle, Vyper-Befehle, Rust-Befehle.