Is arunnadarasa/usdckrump safe?
https://github.com/openclaw/skills/tree/main/skills/arunnadarasa/usdckrump
This skill is a legitimate blockchain payment integration for USDC Krump (USDC.k) via the x402 protocol on the Story Aeneid testnet. The source code is well-structured with no prompt injection attacks, install-time execution hooks, or active data exfiltration attempts; SKILL.md includes appropriate consent gates and security warnings. The primary concerns are inherent to its payment capability: PRIVY_APP_SECRET egresses to the Privy API on every operation, the autonomous payment functions lack hard per-transaction confirmation, and a referenced external repository (github.com/arunnadarasa/usdckrump) is outside the audited boundary. Testnet-only scope (chain ID 1315) materially limits immediate financial risk.
Category Scores
Findings (8)
HIGH PRIVY_APP_SECRET transmitted to Privy API on every signing operation -15 ▶
privy-signer.ts constructs a Basic auth header by base64-encoding PRIVY_APP_ID:PRIVY_APP_SECRET and sends it to https://auth.privy.io/api/v1/wallets/{walletId}/sign_transaction (and sign_message, sign_typed_data, and the wallet lookup endpoint) on every payment. This is the standard Privy server-wallet integration pattern, but it means the application secret credential egresses the agent environment on every single payment. If Privy's endpoint were ever spoofed or the skill's rpcUrl parameter were manipulated, the secret would be delivered to the attacker.
MEDIUM Autonomous payment capability lacks hard per-transaction confirmation -20 ▶
The skill's exported functions payViaEVVM and payViaEVVMWithPrivy sign and submit blockchain transactions without requiring any cryptographic or out-of-band user confirmation per transaction. SKILL.md includes a soft natural-language gate ('only when the user has explicitly requested a payment') but this relies entirely on the agent correctly interpreting user intent. A prompt-injected task description or ambiguous phrasing could cause unauthorized fund transfers. The testnet scope (chain 1315) limits immediate real-money risk, but the architecture is directly portable to mainnet by changing rpcUrl and chainId.
MEDIUM Honeypot credential files read twice during audit window -5 ▶
Six sensitive honeypot files (.env, .ssh/id_rsa, .aws/credentials, .npmrc, .docker/config.json, .config/gcloud/application_default_credentials.json) were OPEN/ACCESS syscalled at both 13:20:43 (before git clone) and 13:20:63 (after install). The same six files in the same order both times, and the canary integrity check confirms all files are unmodified. Pre-install access at 13:20:43 is contemporaneous with auditctl setup (event 258: ss -tunap) and is strongly attributed to the oathe monitoring infrastructure's baseline canary check. Post-install access at 13:20:63 matches a second monitoring sweep. Skill source code contains no filesystem credential scanning; it only reads process.env variables. Reported for transparency and because absolute certainty cannot be established from audit logs alone.
LOW Debug console.log statements leak transaction signing details -10 ▶
Both src/evvm-signer.ts and the Privy path in src/index.ts contain production console.log calls that emit the EVVM core address, hashPayload hex string, full signing message content, and message byte length. This information would appear in agent stdout/logs and could be captured by log aggregation or another skill reading process output.
LOW Executable scripts referenced from external unaudited repository -8 ▶
SKILL.md repeatedly directs users and agents to clone github.com/arunnadarasa/usdckrump to run scripts (EVVM deposit, two-agent flows). This repository is outside the audited openclaw/skills monorepo boundary and its contents were not reviewed. An agent instructed to 'run the EVVM deposit script' could be induced to clone and execute arbitrary code from that repo.
LOW Signed transaction payload sent to third-party RPC endpoint -10 ▶
All payment operations construct and submit signed EVVM and EIP-712 payloads to https://aeneid.storyrpc.io. This is expected blockchain behavior, but it means transaction metadata (payer/payee addresses, amounts, receipt IDs, timestamps, nonces) is transmitted to a third-party RPC provider. If the RPC endpoint were compromised or replaced via a skill-injected rpcUrl override, signed transaction data and replay opportunities would be exposed.
INFO Installation network access limited to GitHub 0 ▶
The only outbound connection during skill installation was a TLS connection to 140.82.121.3:443 (github.com) for the git sparse-checkout. No connections to Privy, blockchain RPC endpoints, or any other services were initiated during install.
INFO No install-time execution vectors present 0 ▶
package.json contains only 'build' (tsc) and 'test' (node --test) scripts with no preinstall, postinstall, prepare, or other lifecycle hooks. No .githooks directory, .gitattributes filter drivers, .gitmodules, or symlinks were found.