Shared kernel for the BlockRun product family. One wallet, one output contract, one config — so every BlockRun tool (blockrun CLI, ClawRouter, Franklin, MCP, the SDKs, clawrouter-codex) reads the same ~/.blockrun wallet and speaks the same machine-readable envelope.
npm install @blockrun/coreAgent-native by construction — every command returns the same envelope:
import { ok, err, emit, render } from "@blockrun/core";
emit(ok({ address: "0x…" }, { cost: 0.003, chain: "base" })); // stdout, exit 0
emit(err("payment", "insufficient balance", 402)); // stderr, exit 1
// render(env, "json" | "pretty" | "table" | "ndjson" | "csv"){"ok":true,"data":…,"meta":{…}} / {"ok":false,"error":{"type","code","message"}}
Single source of truth. Resolution order matches @blockrun/llm:
env BLOCKRUN_WALLET_KEY | BASE_CHAIN_WALLET_KEY → ~/.blockrun/.session → legacy wallet.key.
import { loadWallet, resolvePrivateKey } from "@blockrun/core";
const w = loadWallet(); // { address, privateKey, source } | null — key never leaves the machine~/.blockrun path resolution (override with BLOCKRUN_HOME) and chain selection (resolveChain).
MIT