Scalus Multiplatform β Cardano on JVM, JavaScript, and Native
Scalus compiles to JVM, JavaScript/TypeScript, and Native from the same Scala 3 codebase. Write once, deploy anywhere β from server-side backends to browser wallets to CLI tools.
Platform Support Matrix
| Feature | JVM | JS/TS | Native |
|---|---|---|---|
| Smart contracts / UPLC | β (Scala) | β | β |
| SIR compiler | β (Scala) | β | β |
| Standard library | β | β (Off-chain) | β (Off-chain) |
| Transaction builder | β | β | β |
| Script evaluation / Cost calculation | β | β | β |
| Plutus VM | β | β | β |
| Ledger Rules / Framework | β | β | β |
| Testing utilities | β | β | β |
| Emulator | β | β | β |
| Yaci DevKit | β | β | β |
| Ed25519 signatures | β | β | β |
| ECDSA secp256k1 | β | β | β |
| Schnorr signatures | β | β | β |
| BLS12-381 | β | β | β |
When to Use Which Platform
JVM β Full DApp Development
The JVM platform provides the complete Scalus stack:
- Smart contract development with the compiler plugin (Scala 3)
- Transaction building with TxBuilder
- Local testing with Emulator and Yaci DevKit
- Integration with Bloxbean Cardano Client Library
- Production backends with mature JVM ecosystem
Best for: Backend services, full DApp development, integration testing, production deployments.
JavaScript/TypeScript β Offchain & Browser
JavaScript/TypeScript enables Scalus in Node.js and browser environments:
- Script evaluation β Run Plutus V1/V2/V3 scripts
- Transaction building β Construct and sign transactions
- Wallet integration β Works with Lucid Evolution
- Cost estimation β Calculate execution units offchain
- Browser DApps β Full offchain logic in the browser
See the scalus npm package for JavaScript/TypeScript API, installation, and usage examples.
Best for: Browser wallets, Node.js tooling, Lucid-based DApps, offchain computation.
Native β CLI & Embedded
Scala Native compiles to native binaries:
- Fast startup β No JVM warmup
- Small footprint β Standalone executables
- System integration β FFI to C libraries
Best for: CLI tools, embedded systems, static libraries.
Get in Touch
Building a JavaScript/TypeScript or Native integration? Weβre actively looking for feedback and early adopters. Open an issueΒ or reach out β weβd love to help with your integration.
See Also
- Getting Started β Set up JVM development environment
- Emulator β In-memory testing (JVM)
- JS/TS Emulator β In-memory testing (JavaScript/TypeScript)
- Transaction Builder β Build transactions (JVM/JS)
- Local Devnet β Integration testing (JVM only)