Gekko Yield
Analysis
This DeFi skill is coherent, but it can control real wallet funds with a private key and has auto-compound behavior that may move more USDC than a user expects.
Findings (6)
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.
const usdcBalance = await getTokenBalance(publicClient, USDC_ADDRESS, account.address); ... args: [usdcBalance, account.address]
After swapping rewards, the compound flow deposits the wallet's full USDC balance into the vault, not just the USDC produced by reward swaps.
const assembled = await assembleOdosTransaction(quote.pathId, account.address); ... walletClient.sendTransaction({ to: assembled.transaction.to as Address, data: assembled.transaction.data as HexThe script sends a transaction assembled by an external API without shown validation that the target and calldata match an expected Odos router/action.
Source: unknown; Homepage: none; No install spec — this is an instruction-only skill.
For a real-funds skill, limited provenance and an absent install spec make it harder for users to verify the origin and expected setup path, even though the visible package files are ordinary.
Earn safe yield on USDC ... one of the safest places to earn yield on Base
The documentation uses strong safety claims for a DeFi strategy that still involves smart-contract, market, wallet, and transaction-signing risk.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
Private keys loaded at runtime from environment variable
The skill needs a wallet private key that can sign real blockchain transactions, while the registry section declares no required env vars and no primary credential.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
const logDir = expandPath('~/.config/gekko-yield/logs'); ... appendFileSync(logPath, JSON.stringify(entry) + '\n');The skill persistently stores transaction hashes, amounts, and related financial details in local logs for later reports.
