Smart Contract

A program that runs on a blockchain. It stores data and executes logic automatically when certain conditions are met. Because it handles valuable assets, bugs in smart contracts can lead to direct financial loss.

Technical: SIREEN analyzes contracts written in Solidity, the most widely used smart contract language on Ethereum and EVM-compatible blockchains.
Vulnerability

A weakness in a program that an attacker could exploit to cause harm. In smart contracts, common vulnerabilities include reentrancy (stealing funds through recursive calls), missing access control (anyone can call privileged functions), and arithmetic overflow (incorrect calculations).

Technical: SIREEN focuses on vulnerabilities that can be demonstrated through executable proof-of-concept tests, not all possible weakness categories.
Attack Hypothesis

An educated guess that a specific part of a smart contract might be exploitable. A hypothesis includes what you suspect, which function is involved, and what preconditions would need to hold for the attack to work.

Technical: In SIREEN, hypotheses are generated by heuristic pattern matching (e.g., "external call before state update") or optional AI analysis. Each hypothesis becomes an AttackScenario object with entry points, preconditions, and attack vectors.
Proof of Concept (PoC)

A test designed to demonstrate whether a suspected security weakness can actually produce the described behavior. A PoC is not a complete exploit — it is a focused test that checks one specific claim.

Technical: SIREEN generates Foundry test contracts (files ending in .t.sol) that inherit from forge-std/Test.sol. Each PoC contains setUp() and testExploit() functions with security-relevant assertions.
Foundry

A toolkit for building and testing Solidity smart contracts. It includes forge (the compiler and test runner), cast (for interacting with contracts), and anvil (a local blockchain for testing).

Technical: SIREEN uses forge test to compile and execute generated PoCs. Foundry must be installed separately. Without it, SIREEN can still generate hypotheses and PoCs, but cannot produce CONFIRMED findings.

Terminal States

Every SIREEN audit ends in one of five explicit states. No generic "success."

CONFIRMED

Forge verified. Evidence complete.

DEGRADED

Incomplete verification. Manual review required.

UNVERIFIED

Hypothesis only. Nothing executed.

FAILED

Pipeline error. No claim made.

CLEAN_WITH_COVERAGE

No findings. All hypotheses tested. Not a guarantee.

Confirmed Finding

A finding that has been proven by executable evidence. The generated PoC compiled successfully, ran through Foundry, and its security assertion passed. This is the strongest level of confidence SIREEN provides.

Technical: A finding is CONFIRMED when verification.compile_status == "passed" AND verification.test_status == "passed" AND the PoC contains meaningful security assertions (not trivial assertTrue(true)).
Heuristic Analysis

Pattern-based detection that looks for known suspicious code structures. For example: "this function makes an external call before updating state" is a heuristic pattern associated with reentrancy.

Technical: SIREEN's heuristic engine uses regex patterns and source-code analysis to identify functions with external calls, unguarded privileged operations, and unbounded loops. It does not execute the code — it analyzes the source text.
AI-Assisted Analysis

Optional enhancement where a language model suggests additional attack hypotheses beyond the heuristic patterns. The AI can propose novel angles but its output is not proof — every suggestion still needs Forge verification.

Technical: When an OpenRouter API key is configured, SIREEN sends anonymized source code to LLM models (scanner, attacker, verifier, judge roles). The model's output is parsed into AttackScenario objects and processed identically to heuristic hypotheses.
Important distinction

A passing PoC confirms the behavior exercised by that specific test — not every possible exploit scenario, not the absence of other bugs, and not formal correctness of the entire contract. Always combine tool output with manual review.