Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Bridge

v2.0.0

Agent-to-Human (A2H) verification and escrow platform. Request physical-world tasks, define verification criteria (GPS, photos, timestamps, signatures, multi...

0· 88·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for mirni/a2h-bridge.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Bridge" (mirni/a2h-bridge) from ClawHub.
Skill page: https://clawhub.ai/mirni/a2h-bridge
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: python
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install a2h-bridge

ClawHub CLI

Package manager switcher

npx clawhub@latest install a2h-bridge
Security Scan
Capability signals
CryptoCan make purchases
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The skill is an A2H verification/escrow platform in description, and the API endpoints, verification engine, and in-memory task/worker state are present — that part is coherent. However, the package does not integrate with any payment system or external escrow provider: 'escrow' is only an in-memory task field (locked/released/frozen) with no wallet, payment API, or credential requirements. A user expecting real money-holding escrow or blockchain/fiat integrations would be misled.
Instruction Scope
SKILL.md instructs running a local uvicorn server and shows curl examples for the API — this matches the included FastAPI implementation. The runtime instructions do not ask for unrelated files or credentials. Note: running the server will expose an HTTP API on the host; the doc shows binding to --port 8015 but does not warn about network exposure or require authentication.
Install Mechanism
The SKILL.md metadata requests installing Python packages (fastapi, uvicorn, pydantic), which is appropriate for the code. The registry install entry shows a single install spec 'uv' (and the metadata contains an object with id:'pip' and kind:'uv'), which is unusual/ambiguous — it's not a standard URL or well-known release host and may be a packaging artifact. Installing via pip for these packages is expected; clarify the intended install mechanism before running automated installs.
!
Credentials
Registry metadata declares no required env vars, but bridge/state.py reads BRIDGE_FEE_RATE, BRIDGE_SURGE_URGENT, and BRIDGE_SURGE_CRITICAL from the environment for fee/surge configuration. Those are reasonable optional configuration values, but they are not documented as configurable env vars in the SKILL.md metadata. More importantly: no credentials are requested even though the description implies escrow/payment — if you plan to connect real payments you will need to modify the code and supply payment credentials (which are not currently requested).
Persistence & Privilege
The skill does not request persistent system privileges, does not set always:true, and does not modify other skill/system configs. State is entirely in-memory; there is no file I/O persistence or background service registration beyond running the local server.
What to consider before installing
This package implements a local FastAPI server that simulates an escrow/verification platform: it verifies proofs (GPS, photo-hash counts, timestamps, signatures (only checks non-empty), multi-witness attestations) and keeps tasks and worker reputations in memory. Before installing or running: 1) Understand this is a prototype: 'escrow' is only an in-memory state flag — there is no real payment or wallet integration. Do not rely on it to hold or release real funds. 2) The install metadata includes pip packages (fastapi, uvicorn, pydantic) which is expected, but the registry's install kind 'uv' is ambiguous — confirm the install command the platform will perform. 3) The code reads optional env vars BRIDGE_FEE_RATE, BRIDGE_SURGE_URGENT, and BRIDGE_SURGE_CRITICAL but they are not documented as required; set them only if you want to override defaults. 4) Running the server starts an HTTP API — avoid exposing the port to the public internet without adding authentication and TLS. 5) If you intend to use this for real payments or production escrow, require additional work: add persistent storage, authenticated endpoints, audit logging, and integrate with a payment/escrow provider; and review/strengthen verification mechanisms (photo hash only checks hashes supplied by the client, signature check is only non-empty, GPS/timestamps are client-submitted and may be spoofed). If anything here is unclear, ask the author for: (a) exact install instructions, (b) how real escrow/payment is intended to be connected and what credentials are required, and (c) whether the server is expected to be bound only to localhost and how authentication should be configured.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🌉 Clawdis
Binspython

Install

uv
latestvk9745z296v3q8hbqywvpjf872x84tar1
88downloads
0stars
3versions
Updated 2w ago
v2.0.0
MIT-0

Bridge

Request human help for physical-world tasks. Bridge verifies the work was done before releasing payment.

Start the server

uvicorn bridge.app:app --port 8015

Create a task with verification criteria

curl -s -X POST http://localhost:8015/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Pick up package at 123 Main St, photograph it",
    "budget_usdc": "25.00",
    "verification_criteria": [
      {"type": "gps_proof", "description": "At pickup location", "params": {"latitude": 37.7749, "longitude": -122.4194, "radius_m": 100}},
      {"type": "photo_proof", "description": "Photo of package", "params": {"min_photos": 1}}
    ]
  }' | jq

Escrow is locked automatically. Fee is 5% of budget.

Submit proof and verify

curl -s -X POST http://localhost:8015/v1/tasks/TASK_ID/verify \
  -H "Content-Type: application/json" \
  -d '{
    "worker_id": "worker-1",
    "proofs": [
      {"type": "gps_proof", "data": {"latitude": 37.7749, "longitude": -122.4194}},
      {"type": "photo_proof", "data": {"photo_hashes": ["sha256:abc123"]}}
    ]
  }' | jq

If ALL criteria pass → escrow released. If any fail → escrow held.

Dispute a task

curl -s -X POST http://localhost:8015/v1/tasks/TASK_ID/dispute \
  -H "Content-Type: application/json" \
  -d '{"reason": "GPS proof appears faked"}' | jq

Freezes escrow. No verification possible while disputed.

Milestone-based tasks (partial payment)

curl -s -X POST http://localhost:8015/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Two-step delivery",
    "budget_usdc": "100.00",
    "milestones": [
      {"description": "Pick up", "budget_pct": 40, "criteria": [{"type": "gps_proof", "description": "At pickup", "params": {"latitude": 37.77, "longitude": -122.42, "radius_m": 100}}]},
      {"description": "Deliver", "budget_pct": 60, "criteria": [{"type": "photo_proof", "description": "Photo", "params": {"min_photos": 1}}]}
    ]
  }' | jq

Verify milestones individually — each releases its share of the budget:

curl -s -X POST http://localhost:8015/v1/tasks/TASK_ID/verify-milestone \
  -H "Content-Type: application/json" \
  -d '{"worker_id": "w", "milestone_index": 0, "proofs": [{"type": "gps_proof", "data": {"latitude": 37.77, "longitude": -122.42}}]}' | jq

Worker reputation

curl -s http://localhost:8015/v1/workers | jq           # Leaderboard (sorted by score)
curl -s http://localhost:8015/v1/workers/worker-1 | jq  # Individual profile

Other endpoints

curl -s http://localhost:8015/v1/tasks | jq                     # List all tasks
curl -s http://localhost:8015/v1/tasks?status=posted | jq       # Filter by status
curl -s http://localhost:8015/v1/tasks/TASK_ID/accept?worker_id=w -X POST  # Accept task
curl -s http://localhost:8015/v1/platforms | jq                  # Available platforms
curl -s http://localhost:8015/v1/stats | jq                     # Platform statistics

Verification types

TypeWhat it provesHow
gps_proofWorker was at locationHaversine distance < radius
photo_proofPhotos submittedUnique hash count >= min
timestamp_proofDone within deadlineElapsed hours < max
signature_proofCryptographic signatureNon-empty signature present
multi_witnessN agents confirm completionUnique attesting witness count >= threshold

Surge pricing

  • Standard: 5% base fee
  • Urgent: +15% (total 20%)
  • Critical: +40% (total 45%)

Escrow model

  • Locked at task creation (budget held)
  • Released only if ALL criteria pass (or per-milestone for milestone tasks)
  • Frozen on dispute
  • Refunded if deadline expires with no proof

Comments

Loading comments...