Skip to content
Why UTXO Compiler

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.

IV. Where it sits next to its peers.
DimensionUTXO_Compiler .ctsCrypt (BSV)Bitcoin Script (raw)
AbstractionHigh-levelHigh-levelAssembly-level
SyntaxPython-likeTypeScript-likeOpcode sequence
Type systemStrongStrongUntyped
Ownership checksCompile-time
DebuggerBuilt-in interactivePluginNone
ConstructorsHand-embeddedYesHand-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.