Make verifiability a settlement-layer feature again.
Trade a paragraph of Python-like source for a contract any node can re-derive on its own.
§ I
I. The UTXO model and "state-is-code".
Bitcoin runs on UTXOs (Unspent Transaction Outputs): every transaction consumes old UTXOs and produces new ones. Each UTXO carries some sats and a locking script. To spend it you submit an unlocking script; the two run together and must return true.
Writing a smart contract is, at root, writing custom logic into that locking script — not just signature verification but time, data shape, multi-party conditions, anything programmable.
§ II
II. BVM is a stack machine, not a heap.
BVM (the Bitcoin Virtual Machine) has no heap and no globals — only a main and an alt stack plus a fixed opcode set. Hand-typing opcodes is brittle; UTXO_Compiler turns high-level .ct into BVM bytecode so you stop wrestling with stack shape every day.
§ III
III. The language design choices that matter.
- Explicit type declarations
- Every parameter and struct field declares its type — there is no var / auto. On a zero-tolerance VM, "what you read is what runs" beats brevity.
- Compile-time ownership checks
- A variable passed to a built-in or assigned elsewhere is consumed; you can't reach it again. That maps directly onto BVM's stack-pop semantics, and turns a class of "failed on chain" into "failed at build".
- State baked into bytecode
- Member fields are compiled into the bytecode itself, so different data produces different locking scripts. That's the UTXO version of "state is code" — fundamentally different from Ethereum's "contract address + on-chain storage" pattern.
- One contract per file
- A .ct file holds a single contract, mirroring "one UTXO, one locking script."
§ IV
IV. Where it sits next to its peers.
| Dimension | UTXO_Compiler .ct | sCrypt (BSV) | Bitcoin Script (raw) |
|---|---|---|---|
| Abstraction | High-level | High-level | Assembly-level |
| Syntax | Python-like | TypeScript-like | Opcode sequence |
| Type system | Strong | Strong | Untyped |
| Ownership checks | Compile-time | — | — |
| Debugger | Built-in interactive | Plugin | None |
| Constructors | Hand-embedded | Yes | Hand-embedded |
§ V
V. Two things we will say out loud.
Platform support
Linux and Windows are live today; macOS is on the roadmap, not on disk.
Ecosystem maturity
Built-in functions and objects are still expanding; community samples are early. We'd rather call UTXO_Compiler "infrastructure under construction" than pretend it's finished.