Scilla Interpreter
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Scilla Interpreter provides a complete interpretation and execution environment for Scilla smart contracts. It reads and displays Scilla source code input with full contract structure analysis, program output showing execution results, compilation status indicating successful parsing, error messages with detailed descriptions, warning messages highlighting potential issues, program execution results with computed values, execution trace tracking step-by-step program flow through transitions and statements, contract state showing all field values at each step, variable values for all scoped variables, function call stacks for transition invocation, event logs capturing all emitted events, message outputs for contract-to-contract communication, gas usage estimation for cost analysis, step counts for performance measurement, input parameters for transition configuration, contract metadata including name and fields, library dependencies for imported contracts, import resolution status for dependency verification, type checking results validating all expressions, expression evaluation showing intermediate results, statement execution results for each line, transition analysis for contract entry points, contract invocations showing which transitions were called, blockchain state queries for context awareness, current block information for time-dependent logic, transaction context for execution environment, account balances for token interactions, contract storage state for persistent data, and event emissions for logging. All data is organized in a clean dashboard with source code display, execution results, state tracking, and detailed execution logs.
HOW TO USE
Enter your Scilla source code in the input area. Specify the transition name and input parameters in the provided fields. Click "Run Program" to start the interpretation. The tool will parse and validate the source code, then execute the specified transition with the given parameters. Results are displayed in organized cards showing compilation status, execution steps, gas estimate, output values, event counts, and message counts. The execution log section provides detailed logs of the interpretation process. The contract state section shows all field values and emitted events. The tool works with any Scilla smart contract that follows standard Scilla syntax and structure.
THE MECHANISM
Scilla Interpreter performs client-side interpretation of Scilla smart contracts by simulating the Scilla execution environment. The tool first parses the source code to identify the contract structure including contract name, field declarations, and transition definitions. It validates the syntax and type checks all expressions and statements. During execution, the tool creates an in-memory representation of the contract state with all field variables initialized to their default values. When a transition is invoked with input parameters, the interpreter executes each statement in sequence, evaluating expressions, updating field values, and tracking all state changes. Event emissions are captured and recorded with their payload data. Message outputs for contract invocations are tracked for cross-contract communication. The interpreter maintains a call stack for nested transitions and function calls, enabling proper scope management and variable resolution. Execution traces are generated by recording each statement execution with detailed information about expression values and state changes. Gas estimation is performed by counting operations and applying a cost model based on statement complexity and field access patterns.
WHAT IT CANNOT SEE
Scilla Interpreter cannot execute Scilla code on-chain to verify behavior against actual Zilliqa state, as the interpretation environment does not replicate on-chain conditions. The tool cannot detect runtime errors that only occur when executed in the actual Scilla VM environment, as the interpreter may not reproduce all edge cases. It cannot verify that the Scilla code is secure or free from vulnerabilities without formal verification, which requires additional security analysis. The tool cannot guarantee that the interpreted program will behave identically when deployed to different Scilla versions or Zilliqa environments, as VM implementations may vary. It cannot predict actual gas costs accurately without on-chain context, as gas costs depend on network conditions. The tool also cannot detect issues that only manifest under specific transaction contexts or with particular inputs.
PLEASE NOTE
Scilla Interpreter supports EVM-compatible chains only. The tool is a client-side interpretation and does not execute or deploy code to any blockchain. Execution results are for development and testing purposes only — always test programs thoroughly on test networks before mainnet deployment. The tool is free to use and does not store or transmit any source code or execution results off-device. Always review execution logs and state changes carefully before relying on program behavior.