Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Architecture

ilold is split into a handful of crates with clear responsibilities. The diagram below shows the pipeline for each backend; both meet at the shared web layer (ilold-web) and the REPL frontend (ilold-cli).

Solidity pipeline

.sol files
  │
  ▼
ilold-core::parse::solar_frontend   (SolarParser)
  │
  ▼
ilold-core::model                   (Project, ContractDef, FunctionDef, ...)
  │
  ▼
ilold-core::cfg::builder            (CfgBuilder)
  │
  ▼
ilold-core::pathtree::walker        (build_path_tree)
  │
  ▼
ilold-core::sequence::analysis      (analyze_sequences, analyze_project)
  │
  ▼
ilold-core::narrative + slicing     (info, trace, slice, timeline)

analyze and context run this pipeline once and print to stdout. serve and explore keep the model in memory and expose it through the HTTP/WS API in ilold-web.

Solana pipeline

Anchor.toml + idls/<program>.json + target/deploy/<program>.so
  │
  ▼
ilold-solana-core::ingest           (detect, AnchorProject)
  │
  ▼
ilold-solana-core::runtime          (LiteSVM-backed engine)
  │
  ▼
ilold-solana-core::exploration      (SolanaCommand → SolanaCommandResult)
  │                                  per-step CU, logs, account diffs, decoded timelines
  ▼
ilold-web (shared HTTP/WS layer)    (/api/cmd, /api/program/*, /ws)
  │
  ▼
ilold-cli::explore                  (REPL, parses input, prints results)

There is no static CFG or path tree on Solana today: programs are bytecode at this point. Anything that requires control-flow analysis (slice, trace, sequence narrative) is listed in Solana: Limitations and tracked under Phase 2 in the Roadmap.

Shared layer

CrateRole
ilold-cliArgument parsing, REPL, output formatting, key bindings (crates/ilold-cli/src/main.rs, explore.rs, help.rs)
ilold-webHTTP + WebSocket API consumed by both the REPL (via --attach) and the web canvas
ilold-session-coreShared session abstractions (steps, scenarios, canvas patches)
ilold-coreSolidity model, CFG, slicer, narrative, sequence analysis
ilold-solana-coreAnchor IDL ingest, LiteSVM runtime, instruction execution, timeline reconstruction

The web canvas (crates/ilold-web/frontend) subscribes to the /ws stream and stays in sync with whatever the REPL does.