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 encodeschema: 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 payloadschema: 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 payloadexpectedHash: string— Expected SHA-256 hex digestschema: LodeSchema— A validated schema
Returns: boolean — true 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";