SNAP Private Payments

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The skill matches its payment purpose, but it can move Solana funds and use private withdrawal/balance secrets through unreviewed helper code and without clear confirmation safeguards.

Treat this as a real-money Solana payment integration. Before installing, review the full SNAP client source and npm package version, use a limited wallet and small test amounts first, require explicit confirmation for every deposit or withdrawal, and avoid giving the agent persistent access to withdrawal notes or viewing keys.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

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

If an agent misinterprets a request or is prompted indirectly, it could deposit or withdraw funds without an in-skill safety check.

Why it was flagged

The skill directly invokes fund-moving deposit and withdrawal methods after command matching, but the artifacts do not show a confirmation gate, amount limit, or recipient verification step.

Skill content
const deposit = await context.snapClient.deposit(pool, amount); ... const signature = await context.snapClient.withdraw(pool, context.note, parseRecipientAddress(recipientAddress));
Recommendation

Use only with explicit user confirmation for every transaction, verify amount and recipient address, and prefer a wallet or runtime policy with spending limits.

What this means

Exposing a note or viewing key could reveal private balances or enable withdrawal of shielded funds depending on how the underlying SNAP client handles them.

Why it was flagged

The code requires a withdrawal note and viewing key, which are sensitive shielded-fund secrets, but the registry metadata lists no primary credential and the artifacts do not describe how these secrets are scoped or protected.

Skill content
"SNAP OpenClaw withdraw requires a note in context.note before funds can be claimed" ... "SNAP OpenClaw balance check requires context.viewingKey to inspect shielded funds"
Recommendation

Provide notes and viewing keys only for the specific task, avoid storing them in persistent agent context, and review the underlying client before using real funds.

What this means

Important payment, proof, relayer, or key-handling behavior may occur in code that is not available for review here.

Why it was flagged

The included code imports core SNAP client and pool helpers from relative shared files that are not present in the supplied two-file manifest, so the reviewed artifacts omit the implementation that would handle transactions and secrets.

Skill content
from "../shared/snap-client"; ... from "../shared/pools";
Recommendation

Do not use with real funds until the full source, exact package versions, and helper implementations are reviewed or pinned.

What this means

A relayer may see transaction metadata, and the safety depends on the unreviewed SDK implementation and the trustworthiness of the relayer URL.

Why it was flagged

When a relayer URL is configured, withdrawals are routed through a relayer path while the withdrawal note is passed into that SDK call; the artifacts do not show the relayer data boundary.

Skill content
if (context.relayerUrl) { const result = await context.snapClient.withdrawViaRelayer(pool, context.note, parseRecipientAddress(recipientAddress), context.relayerUrl); }
Recommendation

Use a trusted relayer only when needed, or withdraw directly when privacy and secret-handling requirements are unclear.