Skip to Content
DocsCompilerProgrammatic API

Programmatic API

All LODE operations are available as TypeScript functions.

loadLode(pathOrObj)

Load and validate a LODE schema.

import { loadLode } from "@stacknet/lode"; // From file path const schema = loadLode("./model-layer-v1.lode"); // From object const schema = loadLode({ schema: "lode", version: 1, name: "Example", fields: [{ id: 1, name: "value", type: "string", required: true }], });

Returns: LodeSchema Throws: On invalid schema (see Error Reference)


compile(source, schema)

Encode a source object into Vein binary.

import { compile } from "@stacknet/lode"; const vein: Uint8Array = compile( { name: "preview", isDefault: true, models: ["gpt-oss:20b"], defaultModel: "gpt-oss:20b" }, schema );

Parameters:

  • source: Record<string, any> — The object to encode
  • schema: LodeSchema — A validated schema

Returns: Uint8Array — The Vein binary payload Throws: On missing required fields or type mismatches


decode(vein, schema)

Decode a Vein binary back into a plain object.

import { decode } from "@stacknet/lode"; const obj: Record<string, any> = decode(veinBytes, schema);

Parameters:

  • vein: Uint8Array — Vein binary payload
  • schema: LodeSchema — A validated schema

Returns: Record<string, any> — The decoded object Throws: On invalid magic, version mismatch, truncated data, or missing required fields


fingerprint(obj)

Compute a deterministic SHA-256 hash.

import { fingerprint } from "@stacknet/lode"; const hash: string = fingerprint({ name: "preview", isDefault: true }); // → "a3f8c2e9..." (64-char hex)

Parameters:

  • obj: unknown — Any JavaScript value

Returns: string — Lowercase hex SHA-256 digest


verify(vein, expectedHash, schema)

Verify a Vein binary against a fingerprint.

import { verify } from "@stacknet/lode"; const ok: boolean = verify(veinBytes, "a3f8c2e9...", schema);

Parameters:

  • vein: Uint8Array — Vein binary payload
  • expectedHash: string — Expected SHA-256 hex digest
  • schema: LodeSchema — A validated schema

Returns: booleantrue if the decoded object’s fingerprint matches Never throws — Returns false on any error


Type Exports

import type { LodeSchema, LodeField, VeinHeader } from "@stacknet/lode"; import { TypeTag, TYPE_TAG_MAP } from "@stacknet/lode";
Last updated on