Agentic Commerce - Buy IRL Items With USDC
Analysis
The skill is coherent for shopping and crypto checkout, but it handles real shipping details and raw wallet private keys and can automatically sign and submit payments.
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.
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.
console.log("🔐 Signing and submitting transaction..."); const txResult = await signAndSendTransaction(orderResult.serializedTransaction, options.privateKey, options.rpcUrl || clusterApiUrl("mainnet-beta"));The script directly signs and broadcasts the serialized transaction returned by the remote purchase API after creating an order, without an artifact-shown transaction-detail review or separate confirmation step.
pip install solana solders base58 ... bun add @solana/web3.js bs58 ... bun add viem
The documented helper-script dependencies are installed without pinned versions. These packages are relevant to the stated blockchain signing purpose, but users should install them intentionally and from trusted package registries.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
--private-key <key> Base58 private key for signing (required) ... keypair = Keypair.fromSecretKey(keyBytes); ... transaction.sign([keypair]);
The helper requires a raw wallet private key and uses it to sign transactions. That is expected for the crypto checkout purpose, but it is high-impact wallet authority and is not scoped to a spend limit or safer signing interface.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
const BASE_URL = "https://api.purch.xyz"; ... email: string; walletAddress: string; shippingAddress: ShippingAddress; ... body: JSON.stringify(params)
The order-creation flow sends buyer email, wallet address, and shipping address to the Purch API. This is necessary for checkout and shipping, but it is sensitive personal data going to an external service.
