JuLC Documentation
Welcome to the JuLC documentation. JuLC compiles a safe subset of Java to Plutus V3 UPLC for Cardano smart contracts.
New to JuLC?
Section titled “New to JuLC?”Write Your First ContractScaffold a project with the julc CLI, write a validator, compile, and test — in under 10 minutes
Getting StartedComprehensive guide: all language features, data modeling, collections, deployment
Guides
Section titled “Guides”Advanced GuideLow-level patterns, raw Data access, PlutusData manipulation
For-Loop PatternsFor-each, while loops, accumulators, nested loops
Testing GuideUnit tests, property-based fuzzing, budget analysis, integration tests
Source MapsRuntime error location, trace diagnostics
Formal Verification (Experimental)
Section titled “Formal Verification (Experimental)”Formal VerificationExperimental exact-artifact verification with the stable typed Java DSL, Lean, and IOG Blaster
Standard Library
Section titled “Standard Library”Library ReferenceAll 13 stdlib libraries: Lists, Maps, Values, Math, Crypto, Bitwise, and more
Reference
Section titled “Reference”API ReferenceAll supported types, operators, methods, and ledger access
Library Developer GuideWrite and publish @OnchainLibrary modules
Examples12 example validators with source code
TroubleshootingEvery compiler error mapped with causes and solutions
Internals
Section titled “Internals”For compiler contributors:
Compiler DesignArchitecture, compilation pipeline, PIR generation
Compiler Developer GuideDevelopment setup, debugging, extending the compiler
Example Repositories
Section titled “Example Repositories”- julc-helloworld — Simple vesting contract with tests
- julc-examples — Advanced validators and patterns
