SynAI Relay Protocol

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

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

An agent using the skill could affect paid tasks, obligations, reputation, or USDC settlement if it invokes the wrong endpoint or acts without the user's explicit review.

Why it was flagged

This documents a paid task lifecycle with automatic settlement and refunds. The visible guidance exposes these as callable operations without clear approval, spending-limit, task-selection, or rollback guardrails.

Skill content
Create Task → Deposit USDC on-chain → Fund Task → Worker Claims → Worker Submits → Oracle Evaluates (9 steps) → Pass → Auto Payout (80% worker / 20% fee) | Fail → Retry or Expire → Refund
Recommendation

Require explicit user approval before create, fund, claim, submit, cancel, refund, rotate-key, or webhook-registration actions; set maximum USDC budgets and require exact task IDs before mutating calls.

What this means

Anyone or anything with the API key may be able to act as the registered agent within the SynAI Relay account.

Why it was flagged

The skill uses a bearer API key and sends it to the configured relay URL. This is expected for the integration, but the key carries delegated account authority and an unsafe relay override could expose it.

Skill content
RELAY = os.environ.get("SYNAI_RELAY_URL", "https://synai-relay.ondigitalocean.app")
KEY = os.environ["SYNAI_API_KEY"]
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
Recommendation

Store SYNAI_API_KEY securely, do not expose it in logs or shared prompts, only set SYNAI_RELAY_URL to trusted endpoints, and rotate the key if it may have leaked.

What this means

If webhook secrets are logged or incoming webhook signatures are not verified, another party could spoof task events to the user's agent.

Why it was flagged

The example registers a webhook endpoint and prints the HMAC secret used for signed notifications. This is purpose-aligned, but webhook secrets and event origins need careful handling.

Skill content
resp = requests.post(f"{RELAY}/webhooks", headers=HEADERS, json={
        "url": "https://my-agent.example.com/synai-webhook",
...
    print(f"HMAC secret (save this!): {wh.get('secret')}")
Recommendation

Register only trusted webhook URLs, protect the HMAC secret, validate X-Webhook-Signature on every incoming event, and delete unused webhooks.