Repository navigation
Release v0.16.0
v0.16.0 - Leaner, safer, easier to watch
v0.16 makes the stack lighter and easier to trust. Agents carry half the built-in skills, so every turn is cheaper and faster. Paid offers are locked down so a payment buys exactly one answer from the model you chose, and never an empty one. The stack now tells you how it's doing: obol doctor finds what's wrong and prints the fix, obol network status shows whether your nodes are synced, and Grafana comes built in, with dashboards for the stack, your Ethereum nodes, Charon and LLM performance.
Start with obol doctor after upgrading.
Warning
This software is early alpha, you could lose what you put in. Please use caution when it comes to non-testnet assets. Back up before upgrading: obol stack export --file backup.tar.gz. If you still run an OpenClaw agent, back up its wallet with v0.15 first (see Breaking changes).
Note
Testnets have reached Gloas. Sepolia forked on 2026-10-06 and Hoodi forks on 2026-10-26 at 17:42 UTC. The stable releases of Lighthouse (the default) and Grandine don't support Gloas yet, so on Sepolia and Hoodi install with --consensus-client teku, lodestar, nimbus or prysm. Every execution client in this release is Gloas-ready.
Install / Upgrade
# Fresh install
curl -fsSL https://stack.obol.org/v0.16.0 | bash
obol stack init && obol stack up
# Upgrade an existing stack
curl -fsSL https://stack.obol.org/v0.16.0 | bash
obol upgrade
obol network sync --all # bring existing nodes onto the new clients, metrics and permissions
# Check everything
obol doctorRelease Highlights
Leaner agents
Hermes used to load 22 built-in skills on every turn. It now loads 11, which means a smaller system prompt, quicker responses and lower token cost for every agent on the stack:
- agent-factory, buy-x402, discovery, ethereum-local-wallet, ethereum-networks, inspect, obol-stack, sell, sub-agent-business and swap;
ethereum-reference, which merges the ten former reference skills (addresses, gas, L2s, standards, wallets and so on) into one, with a guide per topic.
Everything else is opt-in from ObolNetwork/skills, pinned to a release and checked by content digest. Syncing skills only ever removes ones obol installed, so skills you added by hand stay put.
obol agent skills list --available
obol agent skills add distributed-validators
obol agent skills add dv-steward # Hermes watches a DV node running on the stackSub-agents take them through obol agent new … --skills or obol agent update <name> --skills +<skill>.
OpenClaw is gone too: Hermes is the one agent runtime (see Breaking changes for wallet migration).
Paid offers you can trust
Selling access through the stack is safer for both sides:
- The seller picks the model.
obol sell http --upstream litellmrequires--model, and the gateway enforces it: buyers can't switch models through the request body, query string or headers. Change it withobol sell update <name> --model <model>. - A payment reaches only what's for sale. LiteLLM offers reach chat, completions and embeddings, never the admin API. Agent offers reach only
POST /v1/chat/completions, and every paid request gets its own Hermes session, so buyers never see each other's conversations. - No charge for an empty reply. A request is settled only if the reply delivered content, reasoning or tool calls. Unsettled replies carry
X-Payment-Settled: false. - One completion per payment.
nandbest_ofare removed from paid requests.
LiteLLM also moves to v1.105.0 (from v1.87), which fixes two upstream security advisories.
Find and fix problems: obol doctor
One command checks the things that usually go wrong, and prints the exact fix for each:
- Host: Docker memory, disk space, the
obol.stackname and the ingress ports. - Versions: obol and its pinned tools.
- Cluster: the cluster and its kubeconfig, node pressure, unhealthy pods and Helm releases.
- Services: models, LiteLLM drift, Ollama, the x402 CA bundle, the tunnel and wallet addresses.
obol doctor
obol doctor --fix # safe repairs only: missing tools, stale kubeconfig, empty CA bundle--offline skips network checks, --strict fails on warnings too, and -o json gives machine-readable output.
Know your nodes are synced
obol network list shows your installed nodes (network, clients, mode), straight from disk, so it works with the cluster down. obol network status adds a section per local Ethereum node: pod health, execution and consensus sync, peers, versions, and a one-line verdict (synced, syncing, waiting, degraded, el_offline, unreachable or not_deployed). Problems are spelled out plainly, such as a pod that ran out of memory; --verbose shows the full detail.
Local nodes also stay wired into the RPC gateway: obol stack up keeps every healthy node registered with eRPC, so http://obol.stack:8080/rpc/<network> keeps using your own node first.
obol network list
obol network status ethereum/hoodi
obol -o json network status ethereum/hoodiThe default Hermes agent can now read pods, logs, events and workloads across the cluster, so you can ask it "is my node synced?" or "why is this pod restarting?". Secrets and ConfigMaps stay out of reach.
Grafana, built in
Grafana is at http://obol.stack:8080/grafana, with no login and read-only access. Like the dashboard, it's only reachable on obol.stack, never through the tunnel. It comes with four dashboards:
- Stack overview;
- Ethereum node, for every supported client (
/grafana/d/obol-eth-node?var-namespace=ethereum-<id>); - Charon;
- LLM performance: time to first token, tokens per second, latency and errors per model, so you can compare models and providers on your own hardware.
flows/llm-bench.shsends the same load to each model for a fair comparison.
Prometheus now keeps 8 days of metrics on disk (it kept 2 days in memory), and collects eRPC, Traefik, cloudflared and Ethereum client metrics as well.
Nodes that stay current
obol network sync now renders each node from the templates built into the binary, not the copy made at install, so client updates and fixes reach existing nodes. Your values.yaml is kept, and a failed sync leaves the deployment as it was.
This release ships geth v1.17.8, Nethermind 2.1.0, Teku 26.10.0, Nimbus v26.10.0 and Lodestar v1.50.0.
Smaller wins
- Quieter model commands -
obol model setup,remove,syncandpreferprint one line instead of the full agent install banner and raw kubectl output, so "Primary model is now …" stands out. - Add models without re-entering keys -
obol model setup --provider openrouter --model openrouter/autoreuses the key already configured (or the provider's env var, such asOPENROUTER_API_KEY), andobol model setup <provider>works as a positional. - Grandine installs - its image is pinned; installing it used to fail.
- Old nodes sync - Ethereum nodes installed before v0.10 get a default
modeon sync.
Breaking changes / Migration notes
- OpenClaw is removed:
obol openclaw …and--runtime openclawnow fail with a migration hint.- Before upgrading, back up an OpenClaw wallet with v0.15:
obol agent wallet backup --runtime openclaw <id> --file w.json. - That backup restores into Hermes on v0.16:
obol agent wallet restore --runtime hermes --input w.json --force. Back up the Hermes wallet first. obol stack uplists any leftoveropenclaw-*namespaces, with their keystore paths.
- Before upgrading, back up an OpenClaw wallet with v0.15:
- LiteLLM offers need a model: existing
sell http --upstream litellmoffers stay not-ready until you runobol sell update <name> -n <ns> --model <model>.obol sell statusshows the exact command. - Agent offers: clients calling any Hermes path other than
POST /v1/chat/completionsnow get a 404. obol domainandobol tunnel loginare removed, along withtunnel setup --management local. An existing locally managed tunnel keeps running, but you can't add hostnames to it. Move to a dashboard-managed tunnel withobol tunnel setup <connector-token>.- ethereumjs is removed as an execution client (nightly images only, not Gloas-ready). Syncing an existing ethereumjs node stops with a message; reinstall with
--execution-client reth,geth,nethermind,besuorerigon. - Skills: the ten reference skills are now the single
ethereum-referenceskill.distributed-validatorsis opt-in:obol agent skills add distributed-validators. - Nethermind 1.39 → 2.1: the next
obol network syncmoves Nethermind nodes to a new major version. - Prometheus moves onto a volume, which recreates it once, so up to 2 days of earlier metrics are lost.
- Per-request prices don't limit
max_tokens; price your offers with that in mind.
Known issues
- Gloas on testnets: see the note at the top. Lighthouse and Grandine move to Gloas-ready versions once their stable releases ship.
- dv-pod 0.22 isn't published yet: the opt-in
dv-stewardskill, and the DV pod flow it watches, depend on the dv-pod 0.22 chart.
What's Changed
- fix(network): sync renders the built-in network files by @OisinKyne in #885
Full Changelog: v0.15.0...v0.16.0
