JamScript hides the low-level JAM/PVM plumbing behind a small language, a deterministic build pipeline, and the jams CLI. You write services; JamScript handles the compiler toolchain, PVM artifacts, deployment flow, and local backend.
curl -fsSL https://install.minijam.xyz/jamscript | bashThe installer automatically selects the latest published JamScript release and installs:
jams— the JamScript CLI- the managed compiler/toolchain
- the matching native
jamscript-service-backend
Supported today: Linux x86_64 and macOS Apple Silicon.
To pin an exact release:
curl -fsSL https://install.minijam.xyz/jamscript \
| bash -s -- --version v0.1.0-rc.8import { action, wallet, u64 } from "jam";
export const increment = action({
auth: wallet(),
input: { value: u64 },
execute(ctx, input) {
return input.value + 1;
},
});Build and deploy:
jams build
jams deploy --network localRun the local backend when the application needs it:
jams backend start --network localFor a configured testnet profile, select it at the CLI layer:
jams backend start --network testnetThe CLI resolves the named profile and passes concrete Node and Formal RPC endpoints to the backend. The backend process itself is network-name agnostic.
- deterministic JamScript → PVM builds
- managed compiler and toolchain installation
- JAM-compatible typed ABI and managed state
- Ownership-based authorization
- MiniJAM deployment
- local backend lifecycle through the
jamsCLI
You do not need to work directly with Refine/Accumulate internals for normal application development.
For guides, architecture, language details, deployment, and examples:
JamScript v0.1 is currently an RC/testnet developer preview.
- The current implementation builds on the mature PolkaVM toolchain. This gives JamScript a reliable execution foundation, but also introduces efficiency overhead that we intend to reduce as the toolchain becomes more JamScript-specific.
- In the current ScriptC execution path, ordinary numeric computation still uses floating-point
numberrepresentation by default in some paths. Fixed-width ABI types such asu64andu128remain explicit at service boundaries, but the internal numeric lowering is not yet fully optimized. This will be improved before the stable release. - Windows is not supported in the current release.
- Generic JAM mainnet deployment remains future work.
Apache-2.0