Soho

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

This payment skill is mostly purpose-aligned, but it needs careful review because it can authorize or broadcast wallet payments while its invocation, credential, and provenance metadata are inconsistent.

Install only if you understand that this skill can initiate wallet payment flows. Before use, confirm the publisher/version, fix the missing config import, ensure model/autonomous invocation is disabled or always confirmed, and use a trusted remote signer with strict spending limits instead of a raw private key.

Findings (5)

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.

ConcernMedium Confidence
ASI02: Tool Misuse and Exploitation
What this means

An agent may have a path to invoke a high-impact payment workflow unless the platform separately enforces confirmation every time.

Why it was flagged

The skill performs a financial/payment action, but the registry flag does not disable autonomous model invocation, which conflicts with the manual-only safety posture described in the skill.

Skill content
Description: Initiate payments on the SOHO Pay credit layer using EIP-712 signatures. ... disable-model-invocation: false (default — agent can invoke autonomously, this is normal)
Recommendation

Disable model/autonomous invocation for this skill at the registry level, or require an explicit human confirmation prompt immediately before any signing or transaction broadcast.

What this means

Providing these credentials could allow the skill or configured signer service to authorize payment-related signatures and, in some modes, broadcast transactions.

Why it was flagged

The skill can use a wallet-signer bearer token or raw private key, but the registry requirements list no env vars and no primary credential, under-declaring sensitive delegated wallet authority.

Skill content
"SIGNER_SERVICE_AUTH_TOKEN": { "description": "Bearer auth token for the wallet signing service. Optional but recommended.", "required": false, "sensitive": true }, ... "SOHO_DEV_PRIVATE_KEY": { "description": "Raw private key for local signing...", "required": false, "sensitive": true }
Recommendation

Declare these credentials in registry metadata, prefer a scoped remote signer with spending limits, and avoid raw private keys except in isolated testnet/dev environments.

What this means

Users may not be able to confidently verify which publisher or version they are installing.

Why it was flagged

These embedded metadata values differ from the registry metadata shown for owner, slug, and version, creating a provenance/version mismatch for a payment-capable skill.

Skill content
"ownerId": "kn781e5mn4ekr955d0205f8tt581e7sx", "slug": "soho", "version": "1.0.1"
Recommendation

Reconcile registry metadata, _meta.json, skill.json, and package.json before installation, especially because the skill handles payment authority.

What this means

The skill may fail at runtime or may not be the exact package the documentation expects.

Why it was flagged

The manifest includes src/signer/config.js but not src/config.js, so the runnable package appears inconsistent or incomplete.

Skill content
const { loadConfig } = require("../src/config");
Recommendation

Fix the require paths or include the missing file, then re-review the complete runnable package.

What this means

The remote signer can see payment authorization details such as payer, merchant, asset, amount, and nonce, and the bearer token may grant access to signing services.

Why it was flagged

The skill sends EIP-712 payment details and an optional bearer token to a user-configured remote wallet signer, which is expected for this design but sensitive.

Skill content
const url = `${config.walletSignerServiceUrl}/sign-eip712`; ... h["Authorization"] = `Bearer ${config.signerServiceAuthToken}`; ... body: JSON.stringify({ domain, types, message })
Recommendation

Use only a trusted wallet-signing endpoint, scope its token and signing policies tightly, and verify the typed data before approving signatures.