Skip to main content
JF

JAM Forge

A Scala Client for the JAM Protocol

Project Timeline

Our journey from concept to production-ready implementation

Aug 2024

Project Inception

Research and planning began

Oct 2024

Kotlin Development

Core protocol in Kotlin

Feb 2025

Scala Migration

Started Scala client

Nov 2025

Testing & Hardening

Fuzz testing & security

Dec 2025

M1 Complete

GP 0.7.2 conformance

Jan 2026

Networking & Block Authoring

P2P & block production

Completed
In Progress
Upcoming

Key Features

Built for performance, designed for developers

Functional-First Design

Built with immutable data structures, pure functions, and algebraic data types for predictable, composable code that eliminates entire classes of bugs.

PolkaVM Implementation

Custom PolkaVM virtual machine implementation in pure Scala with efficient bytecode execution, gas metering, and memory management.

Native Performance

Leverages Rust-based cryptographic libraries via JNI and JVM JIT optimization for production-grade performance without sacrificing type safety.

Functional Concurrency

Cats Effect provides composable, referentially transparent concurrency primitives for safe async operations in consensus-critical code.

Type-Safe APIs

Comprehensive type system with opaque types, GADTs, and refined types ensures compile-time correctness and prevents invalid states.

Modular Architecture

Cleanly separated modules (jam-core, jam-crypto, jam-pvm, jam-protocol) with minimal dependencies for easy integration and maintenance.

What is JAM Forge?

JAM Forge is a production-grade Scala 3 implementation of the JAM (Join-Accumulate Machine) protocol—the next evolution in blockchain infrastructure. JAM introduces a novel architecture for scalable, decentralized computation through its innovative work package and service account model.

By leveraging Scala's advanced type system and functional programming paradigms, JAM Forge delivers a concise, maintainable implementation while maintaining full protocol conformance and production-grade performance.

  • Passes all official JAM conformance test vectors
  • Type-safe binary codecs with scodec for protocol serialization
  • Native Rust cryptography via JNI for Bandersnatch VRF and Ed25519
  • Modular architecture with jam-core, jam-crypto, jam-pvm, and jam-protocol
JAMForge.scala
import io.forge.jam.core.types.*
import io.forge.jam.protocol.*

// Decode and import a block
val result = for
  block <- Block.codec.decode(bytes)
  state <- BlockImport.importBlock(
    currentState, block, config
  )
yield state

// Pattern match on result
result match
  case Right(newState) => // success
  case Left(error)    => // handle