This document describes SCaml, a compiler that takes OCaml code as input and outputs Michelson code for smart contracts. SCaml is a strict subset of OCaml that removes features like recursion, polymorphism, and mutability to target smart contract usage. It reuses the OCaml compiler libraries and compiles OCaml's typed AST directly to Michelson. SCaml aims to allow OCaml programmers to easily write smart contracts and leverage existing OCaml tools. It discusses SCaml's features like entry points, data types, and exceptions as well as its ecosystem integration and possibilities for simulation and interoperability with OCaml.