Potato Tipper

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

The skill’s purpose is coherent, but its setup path uses a raw private key to broadcast profile- and token-changing transactions while relying on unpinned external code, so it needs careful review before use.

Only run this if you understand the LUKSO transactions it will sign. Use testnet first, avoid pasting a main wallet private key, prefer a low-privilege controller key, verify the contract addresses and tipping budget, pin or review the external repo/script, and make sure you know how to disconnect the delegate and revoke the token allowance afterward.

Findings (4)

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 setup gives the script signing authority for the provided controller key and can change the user’s Universal Profile and token approvals.

Why it was flagged

The setup path requires a raw controller private key and uses it to sign and broadcast on-chain transactions. This is high-impact authority, especially because registry metadata says no primary credential or required env vars are needed.

Skill content
: "${PRIVATE_KEY:?Missing PRIVATE_KEY}"
...
forge script "$SCRIPT_DIR/SetupPotatoTipper.s.sol:SetupPotatoTipper" \
  --rpc-url "$RPC_URL" \
  --broadcast \
  --private-key "$PRIVATE_KEY"
Recommendation

Use a narrowly scoped controller key, prefer wallet or hardware-wallet signing where possible, test with a dry run or on testnet first, and declare PRIVATE_KEY and required permissions in metadata.

What this means

If the external repo or missing setup script differs from what the user expects, the private key could sign unintended transactions.

Why it was flagged

The wrapper clones a mutable external repository at runtime and uses Foundry from that execution context while broadcasting with a private key. The invoked SetupPotatoTipper.s.sol file is also not included in the provided file manifest, leaving the executable setup path only partially reviewable.

Skill content
REPO_URL="https://github.com/CJ42/potato-tipper-contracts.git"
...
git clone "$REPO_URL" "$REPO_DIR"
...
forge script "$SCRIPT_DIR/SetupPotatoTipper.s.sol:SetupPotatoTipper" ... --broadcast --private-key "$PRIVATE_KEY"
Recommendation

Pin the external repository to a reviewed commit, include the referenced Solidity setup script in the skill package, and require users to inspect or simulate the exact transaction before broadcasting.

What this means

A single command can permanently change profile configuration and authorize the PotatoTipper contract to spend the selected token budget.

Why it was flagged

The documented workflow batches Universal Profile storage changes and token operator authorization into one raw on-chain transaction. This is aligned with the skill purpose but is a high-impact action.

Skill content
The script:
1. Encodes LSP1 delegate keys + PotatoTipper:Settings key
2. Builds two batchCalls payloads:
   - `UP.setDataBatch(...)` — connect delegates + configure settings
   - `UP.execute(POTATO.authorizeOperator(...))` — authorize tipping budget
3. Calls `UP.batchCalls([0, 0], [payload1, payload2])`
Recommendation

Review the target addresses, tip amount, minimums, and budget before broadcasting; run a simulation or testnet setup first.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

The profile may keep tipping future followers until the configured budget is exhausted or the delegate/allowance is removed.

Why it was flagged

The setup creates persistent on-chain automation that continues acting after the initial setup command by sending tokens on future follow events.

Skill content
When someone follows a Universal Profile that has Potato Tipper installed, the follow event triggers an LSP1 notification which automatically sends $POTATO tokens from the followed user's UP to the new follower's UP.
Recommendation

Make sure the ongoing tipping behavior is intended, set a conservative budget, and document how to disconnect the delegate and revoke or reduce token allowance.