moltspay-skill
The skill is a crypto payment tool that downloads and installs an undeclared external `moltspay` npm package, auto-creates a wallet with private keys in ~/.moltspay/, and can spend real funds — the `moltspay` package is not on npm, not pinned, and its code is uninspectable, creating a significant supply-chain risk.
Why this conclusion was reached
2/4 dimensions flagged4 undeclared or violating capabilities were inferred.
7 lower-risk artifacts were extracted and still need context.
The report includes 5 attack-chain steps and 6 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · package.json:8
supply_chain · scripts/setup.js:36
credential_creation · scripts/setup.js:45
exposure · scripts/setup.js:36
Impact · package.json:12
What drove the risk score up
SKILL.md describes moltspay CLI commands but never mentions that moltspay is a separately published npm package. Both setup scripts do 'npm install -g moltspay' — this external dependency is the entire execution engine and is completely undeclared in documentation.
The 'moltspay' package cannot be verified on the public npm registry. There is no package.json dependency declaration, no lock file, and no version pin. Any update to the package silently changes the skill's behavior.
package.json has 'postinstall': 'node scripts/setup.js', which means setup runs automatically on npm install without user consent. This auto-initializes a wallet and attempts to install the external moltspay package.
Wallet creation stores private keys/seed phrases in a file outside the skill directory. If the moltspay package is compromised or malicious, it can read and exfiltrate these credentials silently.
Triggers include 'pay', 'buy', 'purchase', 'video', 'generate', 'wallet', 'balance' — common phrases that could cause unintended activation. Combined with the external package risk, this expands the attack surface.
Most important evidence
Undeclared external npm dependency
SKILL.md describes moltspay as a set of CLI commands but never discloses that moltspay is a separately published npm package installed via 'npm install -g moltspay'. This external dependency — not contained in this repository — is the entire execution engine. Its code is entirely uninspectable from this skill's files.
scripts/setup.sh:12 moltspay package not verifiable on npm
The 'moltspay' package does not appear in the public npm registry under that name. This means: (1) the install commands will fail, making the skill non-functional, or (2) the package exists under a different name or from a private registry that is also undisclosed. Either way, the supply chain is opaque.
scripts/setup.js:36 No version pinning on external package
Both setup scripts use 'npm install -g moltspay' without any version specifier. The package can be updated at any time, silently changing the skill's behavior — including the payment logic, network calls, and credential handling.
scripts/setup.sh:12 Documentation presents moltspay as native capability
SKILL.md lists commands like 'moltspay init', 'moltspay fund', 'moltspay pay' as if they are native to the skill. No mention is made that these require a separately-installed external package. Users reading SKILL.md have no way to know the skill downloads and executes undeclared code at setup time.
SKILL.md:1 Private keys stored in ~/.moltspay/wallet.json
The skill creates a wallet storing private keys/seed phrases at ${HOME}/.moltspay/wallet.json. This file is created and accessed by the external 'moltspay' package at runtime. If that package is compromised, it can silently read and exfiltrate these credentials.
scripts/setup.sh:15 Auto-run setup via postinstall hook
package.json contains 'postinstall': 'node scripts/setup.js', which runs automatically when the skill is installed via npm. This silently executes wallet initialization and an npm global install without any user interaction or consent.
package.json:8 Undeclared network access for payment operations
SKILL.md does not declare that moltspay pay/services/fund make outbound network requests to provider URLs and external payment infrastructure. The 'moltspay fund' command contacts a QR code/payment server. This network behavior is entirely undeclared.
SKILL.md:29 Undeclared filesystem WRITE to user home directory
SKILL.md declares no filesystem access. In practice, setup.sh and setup.js write wallet state to ${HOME}/.moltspay/wallet.json in the user's home directory — a sensitive user-owned path. This is a doc-to-code capability mismatch.
scripts/setup.sh:15 1 more findings are not expanded here
Declared capability vs actual capability
setup.sh:12, setup.js:36 — npm install -g moltspay; setup.sh:22, setup.js:45 — moltspay init; pay-zen7-video.sh:20 — moltspay pay setup.sh:15, setup.js:14 — writes to ${HOME}/.moltspay/wallet.json SKILL.md:moltspay services fetches from provider URLs; moltspay pay contacts external service endpoints; moltspay fund contacts QR code server package.json:openclaw:triggers — ['pay','buy','purchase','video','generate','wallet','balance']; postinstall hook auto-executes setup.js on npm install wallet.json at ~/.moltspay/ stores private keys; accessed by external moltspay package at runtime Wallet creation and x402 protocol likely read RPC URLs and auth tokens from environment; moltspay fund may read payment credentials Suspicious artifacts and egress
https://juai8.com/zen7 README.md:51
https://moltspay.com README.md:58
https://moltspay.com/docs README.md:78
https://moltspay.com/services README.md:79
https://discord.gg/QwCJgVBxVK README.md:80
https://clawhub.ai/user/yaqing2023 skill-card.md:7
https://clawhub.ai/yaqing2023/moltspay-skill skill-card.md:29
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| moltspay | unpinned | npm (global) | No | Package not found on public npm registry. No version specified. Entire execution engine is this external, unauditable package. |
File composition
SKILL.md README.md skill-card.md scripts/setup.js scripts/setup.sh package.json