AWP Wallet Skill
Analysis
This is a coherent crypto wallet skill, but it gives an agent live authority to unlock, sign, approve, and transfer wallet funds, so it needs careful review before use.
Findings (5)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
awp-wallet approve --token $T --asset usdc --spender 0xRouter --amount 1000 --chain base ... awp-wallet sign-message --token $T --message "Hello World" ... awp-wallet batch --token $T --chain base
The skill documents token approvals, message signing, and batch transfers, all of which can have financial or account-control impact, but these sections do not include the explicit confirmation template shown for ordinary sends.
git clone "$REPO_URL" "$INSTALL_DIR" ... npm install --no-audit --no-fund ... elif sudo npm link 2>/dev/null && command -v awp-wallet &>/dev/null; then ... printf '\n# Added by awp-wallet installer\n%s\n' "$RC_LINE" >> "$RC_FILE"
The installer can fetch code, install npm dependencies, register a global command, potentially invoke sudo for npm linking, and modify shell startup files.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
No password needed — encryption is auto-managed. ... TOKEN=$(awp-wallet unlock --duration 3600 | jq -r '.sessionToken')
The documented workflow says the wallet can be unlocked without a user password and obtains a session token for on-chain operations; for a wallet, that token represents authority over funds and signatures.
.option("--duration <seconds>", "Session duration in seconds", "3600")
.option("--scope <scope>", "Session scope (read|transfer|full)", "full")The unlock command defaults to a one-hour session with full scope, which is broader than needed for read-only actions such as balance checks.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
throw new Error("No bundler API key set. Export PIMLICO_API_KEY, ALCHEMY_API_KEY, or STACKUP_API_KEY.")
...
createBundlerClient({ chain, transport: bundlerTransport }),
createPaymasterClient({ chain, transport: fallback(paymasterTransports) })Gasless transactions are routed through external bundler/paymaster providers using provider API keys, which is expected for ERC-4337-style gasless operation.
