Golden Claw

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

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.

What this means

Running the skill can fetch and execute npm dependency installation behavior on the user's machine before the requested wallet command proceeds.

Why it was flagged

The skill runs a shell/package-manager command automatically when loaded if dependencies are missing, rather than relying only on an explicit user-approved install step.

Skill content
if (!fs_1.default.existsSync(path_1.default.join(skillRoot, 'node_modules'))) { ... (0, child_process_1.execSync)('npm install', { cwd: skillRoot, stdio: 'inherit' }); }
Recommendation

Move dependency installation to an explicit install spec or user-approved setup step, pin dependencies, and avoid automatic runtime npm install.

What this means

A future dependency update or compromised dependency could affect wallet creation, encryption, or transaction signing.

Why it was flagged

Caret version ranges allow newer dependency versions to be resolved during npm install, which is especially sensitive for a wallet skill that handles private keys and signing.

Skill content
"dependencies": { "@solana/spl-token": "^0.4.0", "@solana/web3.js": "^1.98.4", "argon2": "^0.41.0", "bip39": "^3.1.0", "bs58": "^6.0.0", "ed25519-hd-key": "^1.3.0" }
Recommendation

Use exact dependency versions with a lockfile and reproducible install process; review dependency provenance before using real funds.

What this means

If the agent is given the wallet password and invokes donation with an amount, real SOL can be irreversibly transferred.

Why it was flagged

The donation function sends native SOL from the user's wallet to the configured treasury address. The shown code checks amount and balance, but does not show the GCLAW spending-limit or confirmation-threshold controls used for token sends.

Skill content
const toPubkey = new web3_js_1.PublicKey(config_js_1.GCLAW_DONATE_ADDRESS); ... SystemProgram.transfer({ fromPubkey: keypair.publicKey, toPubkey, lamports: lamportsToSend })
Recommendation

Require explicit user confirmation for every SOL transfer, display the exact destination and amount, and apply per-transaction and daily limits to native SOL donations.

What this means

Anyone or any agent workflow with the wallet password can potentially sign transactions from this wallet.

Why it was flagged

The skill uses a wallet password to load a signing keypair and authorize blockchain transactions, which is expected for a wallet but grants high-impact authority.

Skill content
const keypair = await (0, wallet_js_1.loadWallet)(password); ... sendAndConfirmTransaction(connection, transaction, [keypair])
Recommendation

Use a dedicated low-balance wallet, provide the password only when needed, and do not reuse passwords or seed phrases from other wallets.

What this means

If the transcript or agent context is exposed, the wallet recovery phrase could be exposed and funds could be stolen.

Why it was flagged

Wallet setup returns the recovery mnemonic in the agent-visible response. This is normal for wallet backup, but the phrase may enter chat history, logs, or agent context.

Skill content
`🔑 BACKUP SEED PHRASE (SAVE THIS!)` ... `${result.mnemonic}`
Recommendation

Capture the seed phrase securely, avoid asking the agent to repeat it, and do not store it in shared chats or persistent agent memory.