JS compiler for Ride – the smart-contract language for DecentralChain
JavaScript wrapper around the Ride smart-contract compiler for the DecentralChain blockchain. Provides compile, decompile, REPL, and script-info utilities for Ride v1–v6 contracts.
Part of the DecentralChain SDK.
npm install @decentralchain/ride-jsRequires Node.js >= 24 and an ESM environment (
"type": "module").
import { compile, decompile, contractLimits } from '@decentralchain/ride-js';
// Compile a Ride script
const result = compile('{-# STDLIB_VERSION 6 #-}\ntrue');
console.log(result); // { result: { bytes: '...', ast: {...}, ... } }
// Decompile a base64-encoded script
const source = await decompile(
'AAIFAAAAAAAAAAIIAhIAAAAAAAAAAAEAAAABaQEAAAAEY2FsbAAAAAAJAQAAAAV0aHJvdwAAAAAAAAAA',
);
console.log(source);
// Get contract limits for a given stdlib version
const limits = contractLimits(6);
console.log(limits);Compile Ride source code to binary.
| Parameter | Type | Description |
|---|---|---|
code |
string |
Ride source code |
estimator |
number |
Estimator version (default: latest) |
Returns a compilation result object with result.bytes (base64 binary) or error message.
Decompile a base64-encoded compiled script back to Ride source code.
| Parameter | Type | Description |
|---|---|---|
base64Script |
string |
Base64-encoded compiled script |
Returns Promise<string> — the decompiled Ride source code.
Create an interactive REPL session for evaluating Ride expressions.
Get the compilation limits for a given standard library version.
Get metadata about a compiled script (version, type, public keys, etc.).
Get available types for a given stdlib version.
Get function documentation for a given stdlib version.
Get variable documentation for a given stdlib version.
Flatten a nested compilation result into a flat structure.
Parse and compile with additional AST information.
| Package | Description |
|---|---|
@decentralchain/transactions |
Transaction building, signing, broadcasting |
@decentralchain/ts-lib-crypto |
Cryptographic primitives |
@decentralchain/ts-types |
Core TypeScript type definitions |
@decentralchain/node-api-js |
Node REST API client |
git clone https://github.com/Decentral-America/ride-js.git
cd ride-js
npm install| Script | Description |
|---|---|
npm test |
Run tests (Vitest) |
npm run test:coverage |
Coverage report |
npm run build |
Build ESM bundle |
npm run typecheck |
TypeScript type checking |
npm run lint |
Lint with auto-fix |
npm run lint:check |
Lint (check only, no fix) |
npm run format |
Format with Biome |
npm run bulletproof |
Format → lint → typecheck → test |
npm run bulletproof:check |
CI-safe check (no auto-fix) |
npm run validate |
Full CI validation pipeline |
This package retains @waves/ride-lang, @waves/ride-repl, and @waves/ts-lib-crypto as runtime dependencies. These are the Scala.js-compiled Ride compiler binaries — no @decentralchain equivalents exist because the Ride language implementation is identical between Waves and DecentralChain. This is a documented acceptable exception per the DCC SDK migration policy.
See CONTRIBUTING.md.
To report a vulnerability, see SECURITY.md.
MIT — Copyright (c) DecentralChain