Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (scale-decode) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
SCALE Compact Encoder / Decoder (Node.js)
A simple and accurate SCALE Compact Integer decoder implementation in Node.js — built from scratch to help understand and work with SCALE encoding used in Substrate-based blockchains (like Polkadot, Kusama, etc.).
- A set of interactive CLI tools to encode and decode SCALE compact integers — used in blockchains.
🚀 Features
- Encodes / Decodes SCALE compact-encoded integers (all 4 modes: single-byte, two-byte, four-byte, big-integer).
- Fully little-endian aware.
- Helpful debug logs for educational purposes.
- Interactive CLI tool for learners
- Designed for manual testing and prototyping.
📦 Installation
Clone the repository:
git clone https://github.com/pallasite99/scale-nodejs.git
cd scale-nodejs
Usage (basic example)
node scale.js
Example Output (Decoding)
Parsed bytes: <Buffer 04>
Decoded 0x04 => 1
Parsed bytes: <Buffer 08>
Decoded 0x08 => 2
Parsed bytes: <Buffer fc>
Decoded 0xfc => 63
Parsed bytes: <Buffer fc 01>
Decoded 0xfc01 => 127
Supported SCALE Compact modes
| Mode Bits | Bytes Used | Max Value | Description |
|-----------|------------|-----------|--------------------|
| `00` | 1 byte | up to 63 | Single-byte mode |
| `01` | 2 bytes | up to 16K | Two-byte mode |
| `10` | 4 bytes | up to 1B | Four-byte mode |
| `11` | N+5 bytes | BigInt | Big-integer mode |
Local CLI usage
node ./bin/scale-decode.js
node ./bin/scale-encode.js
CLI support (Global npm link)
Running local WebApp
- Navigate to scale-web directory
- Run
npm run dev
command after installing all dependencies vianpm install
inscale-web
directory - Visit 'localhost:5173' to interact with
React + Vite
WebApp
Web UI