agent-guard
Skill delegates core functionality to an uninspectable external npm package with wallet-selling authority and version-only pinning, creating significant supply chain and credential handling risks not fully transparent in documentation.
Why this conclusion was reached
2/4 dimensions flagged1 undeclared or violating capabilities were inferred.
4 lower-risk artifacts were extracted and still need context.
The report includes 5 attack-chain steps and 2 severe findings.
1 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
preparation · scripts/package.json:8
preparation · NAUTILUS-SIDECAR.md:10
Execution · scripts/start-watcher.mjs:7
Impact · node_modules/@hypelens/hypelens-agent-guard/:1
What drove the risk score up
SKILL.md describes 'setup' and 'watcher' commands but the actual execution logic is hidden in external npm package @hypelens/hypelens-agent-guard
Package only version-pinned (0.1.18), not hash-pinned; npm can serve different content for same version
Skill can execute protective SELLs against a funded wallet via AGENT_GUARD_EXIT_PK but this is buried in docs rather than declared upfront
Private keys passed via AGENT_GUARD_EXIT_PK environment variable, documented as having live authority
npx/npm execution paths present in documentation though reasonable for CLI tools
Most important evidence
External npm package with uninspectable code
Core functionality (setup, watcher, MCP) exists entirely in @hypelens/[email protected] which cannot be audited. Scripts are thin wrappers that import and execute this external package. Any malicious code in the npm package would execute with wallet-selling authority.
scripts/setup.mjs, scripts/start-mcp.mjs, scripts/start-watcher.mjs:1 Version-only pinning without hash verification
package.json only specifies '@hypelens/hypelens-agent-guard': '0.1.18' without a commit hash or file hash. npm can serve different content for the same version number.
scripts/package.json:8 Undeclared wallet-selling capability
SKILL.md focuses on 'stop loss' and 'risk management' framing but the skill can execute protective SELLs on Polymarket/Hyperliquid via AGENT_GUARD_EXIT_PK. This is documented in detail docs but not in SKILL.md frontmatter resource declarations.
SKILL.md:50 Private key via environment variable with live authority
AGENT_GUARD_EXIT_PK environment variable grants the skill ability to SELL from the user's wallet. While skill-card.md mentions this, it's not declared as a capability.
NAUTILUS-SIDECAR.md:10 Private key potentially in shell history
Documentation suggests using export AGENT_GUARD_EXIT_PK=... which may leak to shell history. skill-card.md mentions this as a known risk.
NAUTILUS-SIDECAR.md:10 Declared capability vs actual capability
SKILL.md: writes state/heartbeat.json, config files via setup External npm package likely makes API calls; not declared in SKILL.md npm/npx commands documented; requires node, npm binaries AGENT_GUARD_EXIT_PK and AGENT_GUARD_HL_PK env vars with wallet authority; not declared in SKILL.md resource section MCP heartbeat/guard_status documented Suspicious artifacts and egress
https://nautilustrader.io/docs/latest/integrations/polymarket/ NAUTILUS-SIDECAR.md:36
0x9548B8E9554a1968843B3C380431b10996247c88 SKILL.md:95
https://clawhub.ai/user/polyparlay skill-card.md:9
https://clawhub.ai/polyparlay/skills/agent-guard skill-card.md:39
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| @hypelens/hypelens-agent-guard | 0.1.18 | npm | No | Version-only pinned; code cannot be audited in skill scope; has wallet-selling authority |
File composition
SKILL.md NAUTILUS-SIDECAR.md skill-card.md scripts/package.json