Install
openclaw skills install coc-nodeOperate COC (ChainOfClaw) blockchain nodes — install, start, stop, monitor, and remove validator, fullnode, archive, gateway, and dev nodes. Use when the user wants to run a COC node, inspect the status of a running node (block height, peer count, BFT state), view node logs, edit node-config.json, or probe RPC endpoints. Also covers preparing a machine to provide ≥ 256 MiB of P2P storage to the COC network. **Smooth out-of-box experience (1.2.0+):** read-only commands (list / status / coc-rpc-query against an installed node) work immediately after `openclaw plugins install` with zero config; the activation banner reports `data dir`, `storage quota`, `tracked nodes`, and `coc repo` status so the operator sees at a glance what works now and what (if anything) needs config to unlock install/start. Data dir auto-resolves to a writable path along the same chain @chainofclaw/claw-mem and @chainofclaw/soul use (`config.dataDir → $COC_NODE_DATA_DIR → $CLAW_MEM_DATA_DIR/coc-node → $OPENCLAW_STATE_DIR/coc-node → ~/.claw-mem/coc-node`); legacy `~/.chainofclaw/nodes.json` from pre-1.2.0 installs is detected as a fallback. Fail-fast actionable EACCES at activation rather than silent breakage mid-command. Starting / installing a node additionally requires a local clone of the COC source repo (set $COC_REPO_PATH or `bootstrap.cocRepoPath`); the activation banner tells you whether one was auto-detected.
openclaw skills install coc-nodeOperate a COC node on this machine. The skill is backed by the npm package @chainofclaw/node which ships both a standalone coc-node CLI and an OpenClaw plugin (skill id coc-node).
validator, fullnode, archive, gateway, or devnode-config.json in $EDITOReth_blockNumber, eth_getBlockByNumber, net_peerCount, coc_chainStats, coc_getBftStatus, eth_syncing, eth_chainId, …)Everything you can do without a COC source repo works immediately after openclaw plugins install — no further setup. The activation banner makes it explicit:
[coc-node] data dir: /home/<you>/.claw-mem/coc-node
[coc-node] storage quota: advertised=256 MiB, reserved=256 MiB, enforce=true
[coc-node] tracked nodes: 0
[coc-node] coc repo: detected at /home/<you>/COC — install/start commands enabled
[coc-node] Loaded — no nodes yet, run `openclaw coc-node node install <name>` to add one
[coc-node] CLI is mounted at `openclaw coc-node ...`. ...
Or, if no COC repo is on this machine:
[coc-node] coc repo: not detected — read-only mode (list / status / coc-rpc-query work; install / start need bootstrap.cocRepoPath or $COC_REPO_PATH pointing at a COC source clone)
That second line is the only thing you need to read to know whether node install / node start will work. Everything else (list, status, log inspection, RPC probes against an already-running node) is unconditionally available.
Auto-resolves to a writable path along a chain that's intentionally aligned with @chainofclaw/claw-mem and @chainofclaw/soul so the three plugins share one operator-managed root. Priority (highest first):
config.dataDir (per-instance plugin config)$COC_NODE_DATA_DIR (coc-node-specific operator override)$CLAW_MEM_DATA_DIR/coc-node (shared with claw-mem + soul — set this once and all three move together)$OPENCLAW_STATE_DIR/coc-node (sandbox-managed state dir)~/.claw-mem/coc-node (default — shared root with claw-mem + soul)~/.chainofclaw (legacy pre-1.2.0 fallback; only picked when nodes.json already exists there)Fails fast at activation with an actionable EACCES error naming each tried path, rather than silently breaking mid-command. /tmp is intentionally not a fallback.
Actually starting a node process requires the COC source repository (it spawns node/src/index.ts from there). Tell the skill where the repo is via one of:
COC_REPO_PATH environment variable (simplest)bootstrap.cocRepoPath in plugin config~/COC — also auto-discoveredPlus ≥ 256 MiB free disk for the P2P storage reservation (mandatory COC network entry requirement).
The activation banner tells you whether the auto-detection succeeded. If COC_REPO_PATH is unset and no clone is at ~/COC, node install and node start fail with a clear error pointing here — list / status / log / RPC commands keep working.
The three @chainofclaw/* skills are fully decoupled at the npm-dependency level. Each can be installed independently. They cooperate through shared on-disk conventions, not through code coupling:
| Skill | Owns | What it adds when paired |
|---|---|---|
| coc-node | Local node lifecycle (install / start / stop / status / RPC probe) | Independent of the other two. |
| claw-mem2db | Persistent agent memory (chat + tool capture, FTS5 search, hybrid recall) | Pure agent-side; doesn't touch the chain. coc-node doesn't read or write to its DB. |
| coc-soul | On-chain DID, IPFS backup, guardian recovery, carrier resurrection | Reads claw-mem's SQLite DB (when present) for semantic snapshots. Also independent of coc-node. |
Shared dataDir convention. All three default to writing under ~/.claw-mem (or under $CLAW_MEM_DATA_DIR / $OPENCLAW_STATE_DIR), each in a scoped subdirectory:
~/.claw-mem/{claw-mem.db, config.json, ...}~/.claw-mem/keys/agent.key~/.claw-mem/coc-node/{nodes.json, <node>/...}So one CLAW_MEM_DATA_DIR=/somewhere/writable env var moves all three. Operators in sandboxed Docker hosts (where ~/.claw-mem is read-only) only have one knob to turn.
Inside OpenClaw (recommended — works automatically after plugins install):
openclaw coc-node node install --type fullnode --network testnet
openclaw coc-node node list
openclaw coc-node node status
openclaw coc-node node logs <name> --follow --all
Standalone bin (only if you ran npm i -g @chainofclaw/node separately):
coc-node node install --type dev --network local --name dev-1 --rpc-port 28780
coc-node node list
openclaw plugins installdoes NOT install the standalonecoc-nodebinary into your PATH. Useopenclaw coc-node ...(with theopenclawprefix), or install the bin globally via npm if you want the bare command.
coc-node node install --type dev --network local then coc-node node start dev-1.coc-node node install --type fullnode --network testnet --rpc-port 28780 then coc-node node start.coc-node node install --type validator --network testnet --advertised-bytes 1073741824 (1 GiB storage contribution).coc-node node status (snapshot) → coc-node node logs --follow (tail) → coc-node node config show (inspect config) → coc-node node restart if needed.coc-node node stop NAME then coc-node node remove NAME --yes (delete data) or coc-node node remove NAME --yes --keep-data.contracts/ hardhat / script task, not node lifecycle.Detailed references live alongside this file:
references/cli.md — every coc-node subcommand with flags and examplesreferences/config.md — complete ~/.claw-mem/coc-node/config.json schemareferences/node-types.md — validator vs fullnode vs archive vs gateway vs dev tradeoffsreferences/troubleshooting.md — common failure modes and fixesSource and issue tracker: https://github.com/NGPlateform/claw-mem/tree/main/packages/node.