nau/scalus

Scalus - Smart contracts & dApps Development Platform for Cardano

105

stars

4,808

commits

Scala

primary language

Sep 10, 2026

updated

scalus.org
cardano
compiler
dapps-development
plutus
scala
smart-contracts
uplc

README

Scalus — Smart contract & dApps Development Platform for Cardano

Scalus

Built by Lantr Engineering · in continuous development since 2024

CI/Release Maven Central Discord

Vision

Scalus is a production-ready Smart contract & dApps development platform for Cardano built in Scala 3. It covers the full development journey: build, test, debug, optimise, integrate, deploy, and operate a protocol/application in one integrated stack.

It's built for teams shipping L2s, bridges, DEXs, and other systems where the contract is only one part of what has to be correct.


What Scalus includes

Scalus full-stack development schema: smart contracts, business applications, testing, data structures, design patterns, and off-chain tooling

Scalus covers the full Cardano development lifecycle: write validators, compile and optimize UPLC, test and debug locally, build transactions, generate blueprints, deploy scripts, and run tooling across JVM, JavaScript/TypeScript, and Native targets.


Platform at a glance

Scalus is not just a Scala-to-UPLC compiler. It is an integrated Cardano development stack.

Platform areaComponentsWhat it gives youWhere to look
Smart-contract languageScala 3, @Compile, Plutus V1/V2/V3 validators, typed datums/redeemersWrite Cardano validators in a typed, mainstream language with IDE support.scalus-core, scalus-plugin, Smart Contracts
Compiler pipelineSIR, lowering, UPLC generation, optimizer, source-position trackingControl and inspect the path from Scala source to production UPLC.scalus-core, scalus-plugin
On-chain standard libraryPlutus Prelude, builtins, data conversion, crypto, collectionsUse Cardano primitives and reusable data types directly in validators.scalus-core, Language Guide
Advanced on-chain structuresMerkle Tree, Incremental Merkle Tree, Merkle Patricia Forestry, Bilinear AccumulatorsBuild efficient authenticated data structures and membership proofs.scalus-core, Advanced Data Structures
Design pattern libraryWithdraw Zero, Transaction-Level Minting, Merkelized Validator, Parameter Validation, UTxO Indexer, Linked List, Validity RangeReuse hardened Cardano contract patterns instead of rebuilding them per protocol.scalus-design-patterns, Design Patterns
Off-chain transactionsTxBuilder, UTxO selection, fee calculation, balancing, script evaluation, indexed redeemersBuild payments, minting, staking, governance, and script transactions in one API.scalus-cardano-ledger, Transactions
Ledger and emulatorIn-memory Cardano L1 emulator, ledger rules, snapshots, local test workflowsValidate transactions locally without a running node, then graduate to devnet/testnet.scalus-cardano-ledger, Emulator
Wallet and serializationHD wallet support, BIP-39, BIP32-Ed25519, CIP-1852, Flat, CBOR, JSONMove between keys, addresses, scripts, transactions, and wire formats.scalus-cardano-ledger, scalus-core
Enterprise testingScalaTest, ScalaCheck, boundary tests, attack scenarios, multi-transaction scenariosTest validator logic, invariants, and full protocol flows before deployment.scalus-testkit, Testing
Debugging and profilingIDE breakpoints, source-position tracking, CEK reports, budget profilingDebug validators as Scala code and identify expensive script paths.scalus-testkit, Debugging, Profiling
Blueprints and deploymentCIP-57 blueprint generation, JAR embedding, reference-script deployment tasksPackage verifiable contract artifacts and deploy reference scripts from sbt.scalus-sbt-plugin, SBT Plugin
Example catalogueAuctions, lottery, HTLC, AMM, escrow, vesting, NFTs, vaults, identity, payment splitter, factory, proxyStudy complete contracts and transaction flows by domain.scalus-examples, Blueprint catalogue
Multiplatform targetsJVM, JavaScript/TypeScript, NativeRun compiler, evaluator, emulator, and transaction tooling in backend, browser/Node, and native contexts.scalus-cardano-ledger/js, Multiplatform
Performance toolingUPLC optimizer, low-level UPLC Term DSL, CEK/JIT evaluation, JMH benchmarksReduce script size/cost and measure evaluator/compiler performance.scalus-uplc-jit-compiler, bench
Application runtime (in development)Chain follower, typed UTxO indexing, durable reactive workers, scheduler, persistenceOperate full Cardano applications, not just compile scripts.scalus-utxo-cell, docs

Multiplatform support

Scalus off-chain and multiplatform architecture

Scalus is designed so the same core Cardano model can be used across the parts of an application that usually drift apart: on-chain validators, backend services, browser or Node.js tooling, transaction builders, and local test infrastructure.

On JVM, Scalus provides the full Scala developer experience: compiler plugin, transaction builder, ledger/emulator APIs, testing, profiling, and integration with JVM Cardano tooling. On JavaScript/TypeScript, the scalus npm package exposes the emulator, Plutus script evaluation, cost calculation, and related Cardano utilities for Node.js and browser-oriented workflows. Native support keeps the evaluator and low-level tooling available where embedding or performance-sensitive execution matters.


Versioning and stability

Starting with 1.0.0-M1, scalus-core, scalus-cardano-ledger, and scalus-bloxbean-cardano-client-lib form the stable API surface, checked with MiMa on every build. Most APIs will remain binary compatible across the 1.x line; some parts will likely still see breaking changes in 1.x releases, always following a deprecation cycle. scalus-testkit is best-effort, and *.internal packages and compiler internals carry no compatibility promise (concretely: scalus.compiler.sir.lowering, scalus.compiler.sir.linking, scalus.compiler.intrinsics, scalus.uplc.builtin.internal and scalus.uplc.internal are exempt from the MiMa check; see mimaBinaryIssueFilters in build.sbt). Upgrading from 0.18.x? See the migration guide.


How Scalus differs

Aiken is a focused Cardano smart-contract language. Plutarch gives Haskell teams low-level control over generated Plutus code. Yaci DevKit provides a local Cardano devnet. Balius explores headless Cardano application runtimes.

Scalus has a different center of gravity: it aims to be a full JVM-based Cardano development platform, built around Scala 3 and available across JVM, JavaScript/TypeScript, and Native targets. It combines smart-contract development, the compiler pipeline, optimization controls, transaction building, ledger/emulator workflows, testing, debugging, profiling, CIP-57 blueprints, example contracts, and multiplatform tooling in one stack.

That matters for teams building non-trivial protocols, because the hard part is rarely only writing a validator. The hard part is keeping contracts, off-chain code, tests, transaction flows, deployment artifacts, and long-term operations coherent as the protocol evolves.

Read more: How Scalus Differs.


Quickstart

Create a minimal Scalus validator project:

sbt new scalus3/hello.g8
cd hello-cardano
sbt test

This generates a Plutus V3 spending validator, unit tests, integration tests, and a compiled contract wrapper.

For a fuller dApp-ready starter with CIP-57 blueprint generation and deployment tasks:

sbt new scalus3/validator.g8

Next steps:


Learning paths


Installation

Scala / sbt

Use the latest published Scalus version. Maven Central currently lists 1.0.0.

project/plugins.sbt:

addSbtPlugin("org.scalus" % "scalus-sbt-plugin" % "1.0.0")

build.sbt:

scalaVersion := "3.3.8"

val scalusVersion = "1.0.0"

addCompilerPlugin(
  "org.scalus" % "scalus-plugin" % scalusVersion cross CrossVersion.full
)

libraryDependencies ++= Seq(
  "org.scalus" %% "scalus" % scalusVersion,
  "org.scalus" %% "scalus-cardano-ledger" % scalusVersion,
  "org.scalus" %% "scalus-testkit" % scalusVersion % Test
)

Use scalus for on-chain validators and UPLC compilation, scalus-cardano-ledger for transaction building and ledger/emulator APIs, and scalus-testkit for validator and transaction tests.

JavaScript / TypeScript

npm install scalus
import { Emulator, SlotConfig, Scalus } from "scalus";

The JS/TS package provides the in-memory Cardano emulator, Plutus script evaluation, cost calculation, and related Cardano tooling.


Quick Look

Here's a real validator, checking a signature and a redeemer, compiled to production UPLC:

@Compile
object HelloCardano extends Validator {
    inline override def spend(
        datum: Option[Data],
        redeemer: Data,
        tx: TxInfo,
        ownRef: TxOutRef
    ): Unit = {
        val owner = datum.getOrFail("Datum not found").to[PubKeyHash]
        val signed = tx.signatories.contains(owner)
        require(signed, "Must be signed")
        val saysHello = redeemer.to[String] == "Hello, World!"
        require(saysHello, "Invalid redeemer")
    }
}

// compile to Untyped Plutus Core (UPLC)
val compiled = PlutusV3.compile(HelloCardano.validate)
// HEX encoded Plutus script, ready to be used with cardano-cli or Blockfrost
val plutusScript = compiled.program.doubleCborHex

Compilation pipeline

Scalus compilation pipeline: Scala to SIR to UPLC


Repository map

PathWhat it contains
scalus-coreCore compiler, UPLC/SIR model, Plutus evaluator, on-chain Prelude, serialization, crypto, and shared Cardano types.
scalus-pluginScala 3 compiler plugin that powers @Compile and turns supported Scala code into Scalus intermediate representation.
scalus-cardano-ledgerCardano ledger model, transaction builder, wallet/address utilities, emulator support, and the Scala.js/npm package source.
scalus-testkitTesting helpers for validators, transactions, generated Cardano data, emulator workflows, and property-based tests.
scalus-examplesExample contracts and transaction flows: Hello Cardano, lottery, auction, HTLC, AMM, escrow, vesting, payment splitter, editable NFT, and more.
scalus-design-patternsReusable Cardano contract patterns such as Transaction-Level Minting, Merkelized Validator, UTxO Indexer, Linked List, and Validity Range.
scalus-utxo-cellExperimental UTxO cell and flow framework for stateful, multi-transaction application logic.
scalus-sbt-pluginsbt plugin for CIP-57 blueprint generation and reference-script deployment tasks.
scalus-uplc-jit-compilerJVM-side JIT compiler support for UPLC evaluation and benchmarking.
bloxbean-cardano-client-libIntegration layer for Bloxbean Cardano Client Lib users, published as scalus-bloxbean-cardano-client-lib.
benchJMH benchmarks for evaluator, compiler, and transaction tooling performance.
docsInternal design notes, historical docs, Catalyst reports, and development plans.
scalus-sitePublic documentation website source and generated static site assets.

Blueprint catalogue

The examples project contains Contract objects with CIP-57 blueprint definitions. Generate the catalogue locally with:

sbt scalusExamplesJVM/blueprint

The ScalusSbtPlugin also embeds generated JSON files in packaged JARs under META-INF/scalus/blueprints/<ContractName>.json.

BlueprintWhat it demonstratesSource
Hello CardanoMinimal Plutus V3 spending validator with owner signature and redeemer checks.HelloCardanoContract.scala
Simple TransferTyped datum/redeemer flow for a simple transfer contract.simpletransfer
EscrowTwo-party escrow with typed configuration and spend actions.escrow
HTLCHash time-locked contract with lock/redeem/refund style actions.htlc
VestingTime-locked release of funds using validity intervals.vesting
LotteryCommit-reveal-punish state machine with off-chain transaction builders.lottery
AuctionOne-shot UTxO parameterized auction with bidding, refunds, and close logic.auction
CrowdfundingCampaign validator plus donation-token minting policy.crowdfunding
Payment SplitterNaive and optimized stake-validator payment splitting patterns.paymentsplitter
Constant-product AMMParameterized x*y=k pool with deposit, redeem, and swap actions.amm
Price Bet + OracleTwo-contract example for oracle-published prices and future-price bets.pricebet
Editable NFTReference NFT validator with updateable metadata/state.editablenft
Decentralized IdentityIdentity datum/action contract for DID-style state updates.decentralizedidentity
VaultStateful vault validator and transaction builders.vault
FactoryFactory pattern for minting/creating contract instances.factory
Upgradeable ProxyProxy validator for upgradeable contract indirection.upgradeableproxy

Used by

Protocol & application development

ProjectDescriptionProgressGithub
GummiwormA state-channel Layer 2 for Cardano, built for custody and settlementPre-productionView
BifrostA Bitcoin↔Cardano bridge, secured by Cardano SPOsTestnetView
Vela FinanceA decentralised synthetic stablecoin with user-set interest ratesIn developmentPrivate

Integrating Scalus Components

JVM

Script evaluation & cost calculation utilities for JVM.

ProjectDescriptionGithub
Cardano Client LibA widely used Java/JVM SDK for building and submitting Cardano transactions.View
YaciStoreA Cardano chain indexer and data storeView
Yaci DevKitA local Cardano devnet for development and testingView
YanoAn early-stage, lightweight Cardano node/data layer (BloxBean)View
JuLCAn experimental compiler from Java to UPLCView

JavaScript / TypeScript

In-memory Cardano node emulator, script evaluation & cost calculation utilities for JS/TS.

ProjectDescriptionGithub
MeshJSA widely used open-source SDK for building Cardano dAppsView
Evolution SDKA TypeScript SDK for building Cardano transactionsView
Lucid EvolutionA TypeScript library for building Cardano transactions off-chainView

Previous funding

WorkstreamStatusReference
Catalyst F11 — Scalus: Multiplatform Scala implementation of Cardano PlutusFinishedProject ID: 1100252
Catalyst F11 — Multiplatform Plutus Script Cost & Evaluation Library (JS/JVM/LLVM)FinishedProject ID: 1100198
Catalyst F13 — Scalus: Multiplatform Tx Builder — same code for front & backendFinishedProject ID: 1300009
2025 Treasury Budget — Lantr: Scalus DApps Development PlatformFinishedGovernance Action

Reports 2025


Contributing

See CONTRIBUTING.md for the full contributor guide.

Local setup

The default contributor workflow expects Java 11+ and sbt. The recommended full toolchain setup is:

nix develop

Then use sbtn or sbt from the repository root.

Useful commands

CommandPurpose
sbtn quickFormat, compile JVM projects, and run quick JVM tests.
sbtn precommitClean, format, compile, and run the main JVM test suite before committing.
sbtn ci-jsCompile and test Scala.js projects, then run npm package tests.
sbtn ci-nativeCompile and test Scala Native projects.
sbtn scalusExamplesJVM/blueprintGenerate CIP-57 blueprints for the example contracts.
sbtn benchmarkRun the default JMH benchmark task.

Website docs

The public documentation site lives in scalus-site and uses pnpm:

cd scalus-site
pnpm install
pnpm dev

Contact

Follow our progress on X (@Scalus3) and X (@lantr_io).

Join Scalus Club for early access and to shape the roadmap.

Questions or feedback? Reach out on Discord or email us at contact@lantr.io.

Contributors

nau

2,479 commits

rssh

1,333 commits

sae3023

273 commits

roman-hulenko

264 commits

nau/scalus

Scalus - Smart contracts & dApps Development Platform for Cardano

105

stars

4,808

commits

Scala

primary language

Sep 10, 2026

updated

scalus.org
cardano
compiler
dapps-development
plutus
scala
smart-contracts
uplc

README

Scalus — Smart contract & dApps Development Platform for Cardano

Scalus

Built by Lantr Engineering · in continuous development since 2024

CI/Release Maven Central Discord

Vision

Scalus is a production-ready Smart contract & dApps development platform for Cardano built in Scala 3. It covers the full development journey: build, test, debug, optimise, integrate, deploy, and operate a protocol/application in one integrated stack.

It's built for teams shipping L2s, bridges, DEXs, and other systems where the contract is only one part of what has to be correct.


What Scalus includes

Scalus full-stack development schema: smart contracts, business applications, testing, data structures, design patterns, and off-chain tooling

Scalus covers the full Cardano development lifecycle: write validators, compile and optimize UPLC, test and debug locally, build transactions, generate blueprints, deploy scripts, and run tooling across JVM, JavaScript/TypeScript, and Native targets.


Platform at a glance

Scalus is not just a Scala-to-UPLC compiler. It is an integrated Cardano development stack.

Platform areaComponentsWhat it gives youWhere to look
Smart-contract languageScala 3, @Compile, Plutus V1/V2/V3 validators, typed datums/redeemersWrite Cardano validators in a typed, mainstream language with IDE support.scalus-core, scalus-plugin, Smart Contracts
Compiler pipelineSIR, lowering, UPLC generation, optimizer, source-position trackingControl and inspect the path from Scala source to production UPLC.scalus-core, scalus-plugin
On-chain standard libraryPlutus Prelude, builtins, data conversion, crypto, collectionsUse Cardano primitives and reusable data types directly in validators.scalus-core, Language Guide
Advanced on-chain structuresMerkle Tree, Incremental Merkle Tree, Merkle Patricia Forestry, Bilinear AccumulatorsBuild efficient authenticated data structures and membership proofs.scalus-core, Advanced Data Structures
Design pattern libraryWithdraw Zero, Transaction-Level Minting, Merkelized Validator, Parameter Validation, UTxO Indexer, Linked List, Validity RangeReuse hardened Cardano contract patterns instead of rebuilding them per protocol.scalus-design-patterns, Design Patterns
Off-chain transactionsTxBuilder, UTxO selection, fee calculation, balancing, script evaluation, indexed redeemersBuild payments, minting, staking, governance, and script transactions in one API.scalus-cardano-ledger, Transactions
Ledger and emulatorIn-memory Cardano L1 emulator, ledger rules, snapshots, local test workflowsValidate transactions locally without a running node, then graduate to devnet/testnet.scalus-cardano-ledger, Emulator
Wallet and serializationHD wallet support, BIP-39, BIP32-Ed25519, CIP-1852, Flat, CBOR, JSONMove between keys, addresses, scripts, transactions, and wire formats.scalus-cardano-ledger, scalus-core
Enterprise testingScalaTest, ScalaCheck, boundary tests, attack scenarios, multi-transaction scenariosTest validator logic, invariants, and full protocol flows before deployment.scalus-testkit, Testing
Debugging and profilingIDE breakpoints, source-position tracking, CEK reports, budget profilingDebug validators as Scala code and identify expensive script paths.scalus-testkit, Debugging, Profiling
Blueprints and deploymentCIP-57 blueprint generation, JAR embedding, reference-script deployment tasksPackage verifiable contract artifacts and deploy reference scripts from sbt.scalus-sbt-plugin, SBT Plugin
Example catalogueAuctions, lottery, HTLC, AMM, escrow, vesting, NFTs, vaults, identity, payment splitter, factory, proxyStudy complete contracts and transaction flows by domain.scalus-examples, Blueprint catalogue
Multiplatform targetsJVM, JavaScript/TypeScript, NativeRun compiler, evaluator, emulator, and transaction tooling in backend, browser/Node, and native contexts.scalus-cardano-ledger/js, Multiplatform
Performance toolingUPLC optimizer, low-level UPLC Term DSL, CEK/JIT evaluation, JMH benchmarksReduce script size/cost and measure evaluator/compiler performance.scalus-uplc-jit-compiler, bench
Application runtime (in development)Chain follower, typed UTxO indexing, durable reactive workers, scheduler, persistenceOperate full Cardano applications, not just compile scripts.scalus-utxo-cell, docs

Multiplatform support

Scalus off-chain and multiplatform architecture

Scalus is designed so the same core Cardano model can be used across the parts of an application that usually drift apart: on-chain validators, backend services, browser or Node.js tooling, transaction builders, and local test infrastructure.

On JVM, Scalus provides the full Scala developer experience: compiler plugin, transaction builder, ledger/emulator APIs, testing, profiling, and integration with JVM Cardano tooling. On JavaScript/TypeScript, the scalus npm package exposes the emulator, Plutus script evaluation, cost calculation, and related Cardano utilities for Node.js and browser-oriented workflows. Native support keeps the evaluator and low-level tooling available where embedding or performance-sensitive execution matters.


Versioning and stability

Starting with 1.0.0-M1, scalus-core, scalus-cardano-ledger, and scalus-bloxbean-cardano-client-lib form the stable API surface, checked with MiMa on every build. Most APIs will remain binary compatible across the 1.x line; some parts will likely still see breaking changes in 1.x releases, always following a deprecation cycle. scalus-testkit is best-effort, and *.internal packages and compiler internals carry no compatibility promise (concretely: scalus.compiler.sir.lowering, scalus.compiler.sir.linking, scalus.compiler.intrinsics, scalus.uplc.builtin.internal and scalus.uplc.internal are exempt from the MiMa check; see mimaBinaryIssueFilters in build.sbt). Upgrading from 0.18.x? See the migration guide.


How Scalus differs

Aiken is a focused Cardano smart-contract language. Plutarch gives Haskell teams low-level control over generated Plutus code. Yaci DevKit provides a local Cardano devnet. Balius explores headless Cardano application runtimes.

Scalus has a different center of gravity: it aims to be a full JVM-based Cardano development platform, built around Scala 3 and available across JVM, JavaScript/TypeScript, and Native targets. It combines smart-contract development, the compiler pipeline, optimization controls, transaction building, ledger/emulator workflows, testing, debugging, profiling, CIP-57 blueprints, example contracts, and multiplatform tooling in one stack.

That matters for teams building non-trivial protocols, because the hard part is rarely only writing a validator. The hard part is keeping contracts, off-chain code, tests, transaction flows, deployment artifacts, and long-term operations coherent as the protocol evolves.

Read more: How Scalus Differs.


Quickstart

Create a minimal Scalus validator project:

sbt new scalus3/hello.g8
cd hello-cardano
sbt test

This generates a Plutus V3 spending validator, unit tests, integration tests, and a compiled contract wrapper.

For a fuller dApp-ready starter with CIP-57 blueprint generation and deployment tasks:

sbt new scalus3/validator.g8

Next steps:


Learning paths


Installation

Scala / sbt

Use the latest published Scalus version. Maven Central currently lists 1.0.0.

project/plugins.sbt:

addSbtPlugin("org.scalus" % "scalus-sbt-plugin" % "1.0.0")

build.sbt:

scalaVersion := "3.3.8"

val scalusVersion = "1.0.0"

addCompilerPlugin(
  "org.scalus" % "scalus-plugin" % scalusVersion cross CrossVersion.full
)

libraryDependencies ++= Seq(
  "org.scalus" %% "scalus" % scalusVersion,
  "org.scalus" %% "scalus-cardano-ledger" % scalusVersion,
  "org.scalus" %% "scalus-testkit" % scalusVersion % Test
)

Use scalus for on-chain validators and UPLC compilation, scalus-cardano-ledger for transaction building and ledger/emulator APIs, and scalus-testkit for validator and transaction tests.

JavaScript / TypeScript

npm install scalus
import { Emulator, SlotConfig, Scalus } from "scalus";

The JS/TS package provides the in-memory Cardano emulator, Plutus script evaluation, cost calculation, and related Cardano tooling.


Quick Look

Here's a real validator, checking a signature and a redeemer, compiled to production UPLC:

@Compile
object HelloCardano extends Validator {
    inline override def spend(
        datum: Option[Data],
        redeemer: Data,
        tx: TxInfo,
        ownRef: TxOutRef
    ): Unit = {
        val owner = datum.getOrFail("Datum not found").to[PubKeyHash]
        val signed = tx.signatories.contains(owner)
        require(signed, "Must be signed")
        val saysHello = redeemer.to[String] == "Hello, World!"
        require(saysHello, "Invalid redeemer")
    }
}

// compile to Untyped Plutus Core (UPLC)
val compiled = PlutusV3.compile(HelloCardano.validate)
// HEX encoded Plutus script, ready to be used with cardano-cli or Blockfrost
val plutusScript = compiled.program.doubleCborHex

Compilation pipeline

Scalus compilation pipeline: Scala to SIR to UPLC


Repository map

PathWhat it contains
scalus-coreCore compiler, UPLC/SIR model, Plutus evaluator, on-chain Prelude, serialization, crypto, and shared Cardano types.
scalus-pluginScala 3 compiler plugin that powers @Compile and turns supported Scala code into Scalus intermediate representation.
scalus-cardano-ledgerCardano ledger model, transaction builder, wallet/address utilities, emulator support, and the Scala.js/npm package source.
scalus-testkitTesting helpers for validators, transactions, generated Cardano data, emulator workflows, and property-based tests.
scalus-examplesExample contracts and transaction flows: Hello Cardano, lottery, auction, HTLC, AMM, escrow, vesting, payment splitter, editable NFT, and more.
scalus-design-patternsReusable Cardano contract patterns such as Transaction-Level Minting, Merkelized Validator, UTxO Indexer, Linked List, and Validity Range.
scalus-utxo-cellExperimental UTxO cell and flow framework for stateful, multi-transaction application logic.
scalus-sbt-pluginsbt plugin for CIP-57 blueprint generation and reference-script deployment tasks.
scalus-uplc-jit-compilerJVM-side JIT compiler support for UPLC evaluation and benchmarking.
bloxbean-cardano-client-libIntegration layer for Bloxbean Cardano Client Lib users, published as scalus-bloxbean-cardano-client-lib.
benchJMH benchmarks for evaluator, compiler, and transaction tooling performance.
docsInternal design notes, historical docs, Catalyst reports, and development plans.
scalus-sitePublic documentation website source and generated static site assets.

Blueprint catalogue

The examples project contains Contract objects with CIP-57 blueprint definitions. Generate the catalogue locally with:

sbt scalusExamplesJVM/blueprint

The ScalusSbtPlugin also embeds generated JSON files in packaged JARs under META-INF/scalus/blueprints/<ContractName>.json.

BlueprintWhat it demonstratesSource
Hello CardanoMinimal Plutus V3 spending validator with owner signature and redeemer checks.HelloCardanoContract.scala
Simple TransferTyped datum/redeemer flow for a simple transfer contract.simpletransfer
EscrowTwo-party escrow with typed configuration and spend actions.escrow
HTLCHash time-locked contract with lock/redeem/refund style actions.htlc
VestingTime-locked release of funds using validity intervals.vesting
LotteryCommit-reveal-punish state machine with off-chain transaction builders.lottery
AuctionOne-shot UTxO parameterized auction with bidding, refunds, and close logic.auction
CrowdfundingCampaign validator plus donation-token minting policy.crowdfunding
Payment SplitterNaive and optimized stake-validator payment splitting patterns.paymentsplitter
Constant-product AMMParameterized x*y=k pool with deposit, redeem, and swap actions.amm
Price Bet + OracleTwo-contract example for oracle-published prices and future-price bets.pricebet
Editable NFTReference NFT validator with updateable metadata/state.editablenft
Decentralized IdentityIdentity datum/action contract for DID-style state updates.decentralizedidentity
VaultStateful vault validator and transaction builders.vault
FactoryFactory pattern for minting/creating contract instances.factory
Upgradeable ProxyProxy validator for upgradeable contract indirection.upgradeableproxy

Used by

Protocol & application development

ProjectDescriptionProgressGithub
GummiwormA state-channel Layer 2 for Cardano, built for custody and settlementPre-productionView
BifrostA Bitcoin↔Cardano bridge, secured by Cardano SPOsTestnetView
Vela FinanceA decentralised synthetic stablecoin with user-set interest ratesIn developmentPrivate

Integrating Scalus Components

JVM

Script evaluation & cost calculation utilities for JVM.

ProjectDescriptionGithub
Cardano Client LibA widely used Java/JVM SDK for building and submitting Cardano transactions.View
YaciStoreA Cardano chain indexer and data storeView
Yaci DevKitA local Cardano devnet for development and testingView
YanoAn early-stage, lightweight Cardano node/data layer (BloxBean)View
JuLCAn experimental compiler from Java to UPLCView

JavaScript / TypeScript

In-memory Cardano node emulator, script evaluation & cost calculation utilities for JS/TS.

ProjectDescriptionGithub
MeshJSA widely used open-source SDK for building Cardano dAppsView
Evolution SDKA TypeScript SDK for building Cardano transactionsView
Lucid EvolutionA TypeScript library for building Cardano transactions off-chainView

Previous funding

WorkstreamStatusReference
Catalyst F11 — Scalus: Multiplatform Scala implementation of Cardano PlutusFinishedProject ID: 1100252
Catalyst F11 — Multiplatform Plutus Script Cost & Evaluation Library (JS/JVM/LLVM)FinishedProject ID: 1100198
Catalyst F13 — Scalus: Multiplatform Tx Builder — same code for front & backendFinishedProject ID: 1300009
2025 Treasury Budget — Lantr: Scalus DApps Development PlatformFinishedGovernance Action

Reports 2025


Contributing

See CONTRIBUTING.md for the full contributor guide.

Local setup

The default contributor workflow expects Java 11+ and sbt. The recommended full toolchain setup is:

nix develop

Then use sbtn or sbt from the repository root.

Useful commands

CommandPurpose
sbtn quickFormat, compile JVM projects, and run quick JVM tests.
sbtn precommitClean, format, compile, and run the main JVM test suite before committing.
sbtn ci-jsCompile and test Scala.js projects, then run npm package tests.
sbtn ci-nativeCompile and test Scala Native projects.
sbtn scalusExamplesJVM/blueprintGenerate CIP-57 blueprints for the example contracts.
sbtn benchmarkRun the default JMH benchmark task.

Website docs

The public documentation site lives in scalus-site and uses pnpm:

cd scalus-site
pnpm install
pnpm dev

Contact

Follow our progress on X (@Scalus3) and X (@lantr_io).

Join Scalus Club for early access and to shape the roadmap.

Questions or feedback? Reach out on Discord or email us at contact@lantr.io.

Contributors

nau

2,479 commits

rssh

1,333 commits

sae3023

273 commits

roman-hulenko

264 commits

Languages

Scala

92.0%

MDX

5.9%