thetanuts@1.5.4
CAUTION· static onlyPublisher claims: "Trade crypto options on Thetanuts Finance - orderbook fills, RFQ lifecycle, multi-strike structures, real-time WebSocket, wallet management, early settlement..." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-14 and scored it 58/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
# Check if .env exists and preserve itFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Updates NEVER modify wallet secrets (`.env`, `WDK_SEED`).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'No seed available. Set WDK_SEED in the environment (or in .env) before running this script.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."updateUrl": "https://raw.githubusercontent.com/Thetanuts-Finance/thetanuts-openclaw/v1.5.4/scripts/update.sh",Fix: Pin versions and sources; vendor anything fetched at install time.- `node scripts/wallet-create.js` - Create wallet (must have no existing WDK_SEED in .env)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.ENV_FILE="$WDK_MCP_DIR/.env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- `npx tsx scripts/fill-order.ts --order-index 0 --collateral 10 --execute --wait` - Fill order (reads `WDK_SEED` env from `.env`)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.3. Fill the order you want: `npx tsx scripts/fill-order.ts --order-index 0 --collateral 10 --execute` (reads `WDK_SEED` from `.env`)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Step 5: Execute fill (reads WDK_SEED from .env — never pass seed on CLI)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Step 5: Send RFQ transaction (reads WDK_SEED from .env)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…hell history, and agent logs. Set the WDK_SEED environment variable (e.g., from .env) or pass --seed-file <path> instead.', { howToFix: [ 'O…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.howToFix: 'echo \'WDK_SEED="word1 word2 ... word12"\' >> .env (then re-run)',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Parse .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ENV_FILE = join(WDK_MCP_DIR, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Parse .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Write .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'Option 2: write the seed to a chmod 600 file and pass --seed-file <path>',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.// Write to .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ENV_FILE = join(WDK_MCP_DIR, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.message: 'Invalid WDK_SEED in .env.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Create template .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Write new context to .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo -e "${GREEN}✓ Created .env template${NC}"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ENV_FILE = join(WDK_MCP_DIR, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Write .env file preserving comments and structureFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo -e "${GREEN}✓ Existing .env file preserved${NC}"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Write .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# CRITICAL: Never modify .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ENV_FILE = join(WDK_MCP_DIR, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Parse .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.error: 'Invalid WDK_SEED in .env. Must be a valid BIP-39 mnemonic.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.message: 'Wallet already exists. Use wallet-import.js to replace or manually delete WDK_SEED from .env.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Parse existing .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Write to .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Check if .env existsFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ENV_FILE = join(WDK_MCP_DIR, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.message: 'Invalid WDK_SEED in .env.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.message: 'WDK_SEED not set in .env. Run wallet-create.js or wallet-import.js.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo -e "${YELLOW}Note: Wallet secrets (.env, WDK_SEED) are NEVER modified by updates.${NC}"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
22 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim goheesheng: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Direct script execution from GitHub raw URL≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.