{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agent-otc-trade",
    "name": "Uniswap Agent Otc Trade",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/wpank/agent-otc-trade",
    "canonicalUrl": "https://clawhub.ai/wpank/agent-otc-trade",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agent-otc-trade",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-otc-trade",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agent-otc-trade"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agent-otc-trade",
    "agentPageUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "Facilitates over-the-counter trades between agents using Uniswap as the trustless settlement layer. Instead of agents manually coordinating trades through ad-hoc channels, verifying each other's identity, agreeing on prices, and handling settlement independently, this skill provides a structured pipeline: verify counterparty identity via ERC-8004, agree on terms using Uniswap pool prices as the reference rate, and settle atomically through Uniswap pools.\n\nWhy this is 10x better than manual agent-to-agent trading:\n\nCounterparty verification: Before any trade, the counterparty agent's identity is verified via ERC-8004 on-chain registries. Without this, agents trade blindly -- trusting addresses they've never interacted with. The skill checks identity, reputation score, and trust tier, refusing to trade with unverified agents.\nFair pricing via Uniswap oracle: OTC trades use Uniswap pool prices as the reference rate, preventing either party from proposing unfair terms. The skill shows the current pool price, the proposed OTC price, and the premium/discount so both parties have full transparency.\nAtomic settlement: Trades settle through Uniswap pools in a single transaction. No escrow risk, no counterparty default risk, no partial fills. The pool provides guaranteed liquidity at the agreed price.\nCross-chain support: For agents on different chains, settlement uses ERC-7683 cross-chain intents. Without this skill, cross-chain OTC trades require manual bridge coordination -- a multi-step process prone to stuck transactions and timing mismatches.\nAudit trail: Every OTC trade is recorded with counterparty identity, agreed terms, settlement transaction, and fees. This creates a verifiable history for reputation building and dispute resolution."
      },
      {
        "title": "When to Use",
        "body": "Activate when the user says anything like:\n\n\"Trade tokens directly with another agent\"\n\"Settle an agent-to-agent trade through Uniswap\"\n\"Execute an OTC swap with agent 0x...\"\n\"Buy tokens from agent 0x... using Uniswap\"\n\"Set up a direct trade with a counterparty agent\"\n\"OTC trade 1000 USDC for UNI with agent 0x...\"\n\"Settle a service payment with another agent via Uniswap\"\n\nDo NOT use when the user wants a regular swap without a specific counterparty (use execute-swap instead), wants to provide liquidity (use manage-liquidity instead), or wants to find trading opportunities (use scan-opportunities instead)."
      },
      {
        "title": "Parameters",
        "body": "ParameterRequiredDefaultHow to ExtractcounterpartyAgentYes--Counterparty address (0x...) or ERC-8004 identitytokenSellYes--Token you are selling: \"USDC\", \"UNI\", or 0x addresstokenBuyYes--Token you are buying: \"ETH\", \"UNI\", or 0x addressamountYes--Amount to sell: \"1000 USDC\", \"50 UNI\", \"$5,000 worth\"chainNoethereumSettlement chain: \"ethereum\", \"base\", \"arbitrum\"settlementMethodNodirect-swap\"direct-swap\", \"intent\" (ERC-7683 cross-chain)maxPremiumNo1%Max acceptable premium/discount vs pool pricerequireVerifiedNotrueRequire ERC-8004 verified counterparty (true/false)\n\nIf the user doesn't provide counterpartyAgent, tokenSell/tokenBuy, or amount, ask for them -- never guess OTC trade parameters."
      },
      {
        "title": "Workflow",
        "body": "AGENT OTC TRADE PIPELINE\n  ┌──────────────────────────────────────────────────────────────────────┐\n  │                                                                      │\n  │  Step 1: VERIFY COUNTERPARTY                                         │\n  │  ├── Check ERC-8004 identity registry                                │\n  │  ├── Query reputation score                                          │\n  │  ├── Determine trust tier (unverified/basic/verified/trusted)        │\n  │  └── Output: Identity report + trust decision                        │\n  │          │                                                           │\n  │          ▼ IDENTITY GATE                                             │\n  │  ┌───────────────────────────────────────────┐                       │\n  │  │  trusted/verified  -> Proceed              │                       │\n  │  │  basic             -> Warn, ask user       │                       │\n  │  │  unverified        -> STOP (if required)   │                       │\n  │  └───────────────────────────────────────────┘                       │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 2: PRICE DISCOVERY                                             │\n  │  ├── Get current Uniswap pool price for the token pair               │\n  │  ├── Get quote at the OTC trade size                                 │\n  │  ├── Calculate fair OTC price (pool price + spread)                  │\n  │  └── Output: Reference price + OTC terms                             │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 3: TERMS AGREEMENT                                             │\n  │  ├── Present terms to user: price, amounts, fees, settlement method  │\n  │  ├── Compare OTC price vs pool price (premium/discount)              │\n  │  ├── Show total cost including gas and slippage                      │\n  │  └── User must explicitly confirm                                    │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 4: SETTLEMENT                                                  │\n  │  ├── Check wallet balance and approvals                              │\n  │  ├── Execute swap via trade-executor (or cross-chain intent)         │\n  │  ├── Verify settlement on-chain                                      │\n  │  └── Output: Settlement confirmation + tx hash                       │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 5: RECORD & REPORT                                             │\n  │  ├── Record trade in OTC history                                     │\n  │  ├── Log counterparty, terms, settlement tx                          │\n  │  └── Output: Full OTC trade report                                   │\n  │                                                                      │\n  └──────────────────────────────────────────────────────────────────────┘"
      },
      {
        "title": "Step 1: Verify Counterparty",
        "body": "Delegate to Task(subagent_type:identity-verifier):\n\nVerify the identity and reputation of this agent:\n- Agent address: {counterpartyAgent}\n- Chain: {chain}\n\nCheck the ERC-8004 Identity Registry, Reputation Registry, and Validation\nRegistry. Return the trust tier (unverified/basic/verified/trusted),\nreputation score, registration date, and any flags.\n\nPresent to user:\n\nStep 1/5: Counterparty Verification\n\n  Agent:       0x1234...abcd\n  ERC-8004:    Registered (verified tier)\n  Reputation:  78/100 (good)\n  Registered:  2025-11-15 (87 days ago)\n  Trades:      142 completed, 0 disputes\n  Trust Tier:  VERIFIED\n\n  Proceeding to price discovery...\n\nIdentity gate logic:\n\nTrust TierActiontrustedProceed to Step 2 automaticallyverifiedProceed to Step 2 automaticallybasicWarn user: \"Counterparty has basic verification only. Proceed?\" Ask to confirm.unverifiedIf requireVerified=true: STOP. Show reason. Suggest verifying first.If requireVerified=false: Warn strongly, ask for explicit confirmation."
      },
      {
        "title": "Step 2: Price Discovery",
        "body": "Call mcp__uniswap__get_token_price for both tokens to establish USD values.\nCall mcp__uniswap__get_pool_info for the token pair to get the current pool price.\nCall mcp__uniswap__get_quote at the OTC trade size to determine actual execution price including slippage.\n\nStep 2/5: Price Discovery\n\n  Token Pair:    USDC / UNI\n  Pool Price:    1 UNI = $7.10 (USDC/UNI 0.3% V3)\n  Pool TVL:      $42M\n  Quote at Size: 1000 USDC -> 140.65 UNI (impact: 0.08%)\n\n  OTC Reference Rate: $7.10 per UNI\n  Your Trade:         1000 USDC -> ~140.85 UNI\n\n  Proceeding to terms agreement..."
      },
      {
        "title": "Step 3: Terms Agreement",
        "body": "Present the complete trade terms for user confirmation:\n\nOTC Trade Terms\n\n  You Sell:     1,000 USDC\n  You Receive:  ~140.85 UNI ($999.90)\n  Counterparty: 0x1234...abcd (VERIFIED, rep: 78/100)\n\n  Pricing:\n    Pool Rate:  $7.10 per UNI\n    OTC Rate:   $7.10 per UNI (0.00% premium)\n    Slippage:   ~0.08%\n    Gas Est:    ~$5.00\n\n  Settlement:\n    Method:     Direct swap via Uniswap V3\n    Chain:      Ethereum\n    Pool:       USDC/UNI 0.3%\n\n  Proceed with this OTC trade? (yes/no)\n\nOnly proceed to Step 4 if the user explicitly confirms.\n\nIf the OTC price deviates from the pool price by more than maxPremium, warn the user:\n\nWARNING: OTC rate ($7.25/UNI) is 2.1% above pool rate ($7.10/UNI).\n  This exceeds your max premium of 1%. Proceed anyway? (yes/no)"
      },
      {
        "title": "Step 4: Settlement",
        "body": "Delegate to Task(subagent_type:trade-executor):\n\nFor direct-swap settlement:\n\nExecute this OTC trade settlement:\n- Sell: {amount} {tokenSell}\n- Buy: {tokenBuy}\n- Chain: {chain}\n- Slippage tolerance: based on OTC terms\n- Context: This is an OTC trade with counterparty {counterpartyAgent}\n  (ERC-8004 verified, reputation {score}/100). Settle through the\n  {fee}% pool.\n\nFor cross-chain intent settlement:\n\nUse mcp__uniswap__submit_cross_chain_intent with:\n\ntokenIn: tokenSell on source chain\ntokenOut: tokenBuy on destination chain\nsourceChain: your chain\ndestinationChain: counterparty's chain"
      },
      {
        "title": "Step 5: Record & Report",
        "body": "Step 5/5: OTC Trade Complete\n\n  Settlement:\n    Sold:       1,000 USDC\n    Received:   140.85 UNI ($999.90)\n    Slippage:   0.07%\n    Gas:        $4.80\n    Tx:         https://etherscan.io/tx/0x...\n\n  Counterparty:\n    Agent:      0x1234...abcd\n    Trust:      VERIFIED (78/100)\n\n  OTC Terms vs Market:\n    Pool Rate:  $7.10/UNI\n    Actual:     $7.10/UNI (0.00% premium)"
      },
      {
        "title": "Successful OTC Trade",
        "body": "Agent OTC Trade Complete\n\n  Trade:\n    Sold:         1,000 USDC\n    Received:     140.85 UNI ($999.90)\n    Counterparty: 0x1234...abcd (VERIFIED)\n    Settlement:   Direct swap via USDC/UNI 0.3% (V3)\n    Chain:        Ethereum\n    Tx:           https://etherscan.io/tx/0x...\n\n  Pricing:\n    Pool Rate:    $7.10/UNI\n    Actual Rate:  $7.10/UNI\n    Premium:      0.00%\n    Slippage:     0.07%\n    Gas:          $4.80\n\n  Counterparty Verification:\n    ERC-8004:     Registered, VERIFIED tier\n    Reputation:   78/100\n    Trade History: 142 completed, 0 disputes"
      },
      {
        "title": "Blocked by Identity Check",
        "body": "Agent OTC Trade -- Blocked\n\n  Counterparty: 0x5678...efgh\n  ERC-8004:     NOT REGISTERED\n  Trust Tier:   UNVERIFIED\n\n  Trade blocked: Counterparty is not ERC-8004 verified.\n  Your policy requires verified counterparties (requireVerified=true).\n\n  Suggestions:\n    - Ask the counterparty to register on ERC-8004\n    - Use /verify-agent to check their status\n    - Set requireVerified=false to trade with unverified agents (not recommended)"
      },
      {
        "title": "Important Notes",
        "body": "Counterparty verification is the key safety feature. ERC-8004 identity checks prevent trading with malicious or unknown agents. The default requireVerified=true is strongly recommended.\nSettlement happens through Uniswap pools, not peer-to-peer. Both agents interact with the Uniswap pool independently. This means the trade is atomic and trustless -- neither party can default.\nThe counterparty does not need to be online simultaneously. Since settlement is through a pool, your agent executes its side of the trade independently. The \"OTC\" aspect is the agreed-upon terms and counterparty verification, not a literal peer-to-peer atomic swap.\nPrice reference prevents unfair terms. The Uniswap pool price serves as an objective reference rate. The maxPremium parameter (default 1%) prevents accepting trades at significantly worse-than-market rates.\nCross-chain OTC trades use ERC-7683 intents. For agents on different chains, the skill uses submit_cross_chain_intent for settlement. This adds bridge latency but enables cross-chain agent commerce.\nAll OTC trades are logged. Trade details (counterparty, terms, settlement tx) are recorded for reputation building and audit purposes.\nThis skill settles YOUR side of the trade. The counterparty agent is responsible for their own execution. In practice, both agents use this skill independently to settle their respective sides through the same Uniswap pool."
      },
      {
        "title": "MCP server dependency",
        "body": "This skill relies on Uniswap MCP tools for pricing, pool data, quotes, balances, and cross-chain intents.\nWhen used in isolation (for example, from a skills catalog), ensure the Agentic Uniswap MCP server is running:\n\nRepo: Agentic-Uniswap MCP server\nPackage: @agentic-uniswap/mcp-server"
      },
      {
        "title": "Error Handling",
        "body": "ErrorUser-Facing MessageSuggested ActionCounterparty unverified\"Counterparty agent is not ERC-8004 verified.\"Ask counterparty to register, or disable checkCounterparty not found\"Could not find agent at address {addr}.\"Verify the address is correctNo pool for pair\"No Uniswap pool found for {tokenSell}/{tokenBuy} on {chain}.\"Try a different chain or intermediate tokenPremium too high\"OTC rate deviates {X}% from pool rate, exceeding {maxPremium}% limit.\"Renegotiate terms or increase maxPremiumInsufficient balance\"Insufficient {tokenSell} balance: have {X}, need {Y}.\"Fund wallet or reduce trade amountSettlement failed\"OTC settlement via Uniswap failed: {reason}.\"Check liquidity, gas, and retryCross-chain intent failed\"Cross-chain settlement failed: {reason}.\"Check bridge status and retrySafety check failed\"Trade exceeds safety limits.\"Check spending limits with check-safetyWallet not configured\"No wallet configured. Cannot execute OTC trades.\"Set up wallet with setup-agent-walletIdentity service down\"ERC-8004 registry unreachable. Cannot verify counterparty.\"Retry later or proceed with caution"
      }
    ],
    "body": "Agent OTC Trade\nOverview\n\nFacilitates over-the-counter trades between agents using Uniswap as the trustless settlement layer. Instead of agents manually coordinating trades through ad-hoc channels, verifying each other's identity, agreeing on prices, and handling settlement independently, this skill provides a structured pipeline: verify counterparty identity via ERC-8004, agree on terms using Uniswap pool prices as the reference rate, and settle atomically through Uniswap pools.\n\nWhy this is 10x better than manual agent-to-agent trading:\n\nCounterparty verification: Before any trade, the counterparty agent's identity is verified via ERC-8004 on-chain registries. Without this, agents trade blindly -- trusting addresses they've never interacted with. The skill checks identity, reputation score, and trust tier, refusing to trade with unverified agents.\nFair pricing via Uniswap oracle: OTC trades use Uniswap pool prices as the reference rate, preventing either party from proposing unfair terms. The skill shows the current pool price, the proposed OTC price, and the premium/discount so both parties have full transparency.\nAtomic settlement: Trades settle through Uniswap pools in a single transaction. No escrow risk, no counterparty default risk, no partial fills. The pool provides guaranteed liquidity at the agreed price.\nCross-chain support: For agents on different chains, settlement uses ERC-7683 cross-chain intents. Without this skill, cross-chain OTC trades require manual bridge coordination -- a multi-step process prone to stuck transactions and timing mismatches.\nAudit trail: Every OTC trade is recorded with counterparty identity, agreed terms, settlement transaction, and fees. This creates a verifiable history for reputation building and dispute resolution.\nWhen to Use\n\nActivate when the user says anything like:\n\n\"Trade tokens directly with another agent\"\n\"Settle an agent-to-agent trade through Uniswap\"\n\"Execute an OTC swap with agent 0x...\"\n\"Buy tokens from agent 0x... using Uniswap\"\n\"Set up a direct trade with a counterparty agent\"\n\"OTC trade 1000 USDC for UNI with agent 0x...\"\n\"Settle a service payment with another agent via Uniswap\"\n\nDo NOT use when the user wants a regular swap without a specific counterparty (use execute-swap instead), wants to provide liquidity (use manage-liquidity instead), or wants to find trading opportunities (use scan-opportunities instead).\n\nParameters\nParameter\tRequired\tDefault\tHow to Extract\ncounterpartyAgent\tYes\t--\tCounterparty address (0x...) or ERC-8004 identity\ntokenSell\tYes\t--\tToken you are selling: \"USDC\", \"UNI\", or 0x address\ntokenBuy\tYes\t--\tToken you are buying: \"ETH\", \"UNI\", or 0x address\namount\tYes\t--\tAmount to sell: \"1000 USDC\", \"50 UNI\", \"$5,000 worth\"\nchain\tNo\tethereum\tSettlement chain: \"ethereum\", \"base\", \"arbitrum\"\nsettlementMethod\tNo\tdirect-swap\t\"direct-swap\", \"intent\" (ERC-7683 cross-chain)\nmaxPremium\tNo\t1%\tMax acceptable premium/discount vs pool price\nrequireVerified\tNo\ttrue\tRequire ERC-8004 verified counterparty (true/false)\n\nIf the user doesn't provide counterpartyAgent, tokenSell/tokenBuy, or amount, ask for them -- never guess OTC trade parameters.\n\nWorkflow\n                        AGENT OTC TRADE PIPELINE\n  ┌──────────────────────────────────────────────────────────────────────┐\n  │                                                                      │\n  │  Step 1: VERIFY COUNTERPARTY                                         │\n  │  ├── Check ERC-8004 identity registry                                │\n  │  ├── Query reputation score                                          │\n  │  ├── Determine trust tier (unverified/basic/verified/trusted)        │\n  │  └── Output: Identity report + trust decision                        │\n  │          │                                                           │\n  │          ▼ IDENTITY GATE                                             │\n  │  ┌───────────────────────────────────────────┐                       │\n  │  │  trusted/verified  -> Proceed              │                       │\n  │  │  basic             -> Warn, ask user       │                       │\n  │  │  unverified        -> STOP (if required)   │                       │\n  │  └───────────────────────────────────────────┘                       │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 2: PRICE DISCOVERY                                             │\n  │  ├── Get current Uniswap pool price for the token pair               │\n  │  ├── Get quote at the OTC trade size                                 │\n  │  ├── Calculate fair OTC price (pool price + spread)                  │\n  │  └── Output: Reference price + OTC terms                             │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 3: TERMS AGREEMENT                                             │\n  │  ├── Present terms to user: price, amounts, fees, settlement method  │\n  │  ├── Compare OTC price vs pool price (premium/discount)              │\n  │  ├── Show total cost including gas and slippage                      │\n  │  └── User must explicitly confirm                                    │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 4: SETTLEMENT                                                  │\n  │  ├── Check wallet balance and approvals                              │\n  │  ├── Execute swap via trade-executor (or cross-chain intent)         │\n  │  ├── Verify settlement on-chain                                      │\n  │  └── Output: Settlement confirmation + tx hash                       │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 5: RECORD & REPORT                                             │\n  │  ├── Record trade in OTC history                                     │\n  │  ├── Log counterparty, terms, settlement tx                          │\n  │  └── Output: Full OTC trade report                                   │\n  │                                                                      │\n  └──────────────────────────────────────────────────────────────────────┘\n\nStep 1: Verify Counterparty\n\nDelegate to Task(subagent_type:identity-verifier):\n\nVerify the identity and reputation of this agent:\n- Agent address: {counterpartyAgent}\n- Chain: {chain}\n\nCheck the ERC-8004 Identity Registry, Reputation Registry, and Validation\nRegistry. Return the trust tier (unverified/basic/verified/trusted),\nreputation score, registration date, and any flags.\n\n\nPresent to user:\n\nStep 1/5: Counterparty Verification\n\n  Agent:       0x1234...abcd\n  ERC-8004:    Registered (verified tier)\n  Reputation:  78/100 (good)\n  Registered:  2025-11-15 (87 days ago)\n  Trades:      142 completed, 0 disputes\n  Trust Tier:  VERIFIED\n\n  Proceeding to price discovery...\n\n\nIdentity gate logic:\n\nTrust Tier\tAction\ntrusted\tProceed to Step 2 automatically\nverified\tProceed to Step 2 automatically\nbasic\tWarn user: \"Counterparty has basic verification only. Proceed?\" Ask to confirm.\nunverified\tIf requireVerified=true: STOP. Show reason. Suggest verifying first.\n\tIf requireVerified=false: Warn strongly, ask for explicit confirmation.\nStep 2: Price Discovery\nCall mcp__uniswap__get_token_price for both tokens to establish USD values.\nCall mcp__uniswap__get_pool_info for the token pair to get the current pool price.\nCall mcp__uniswap__get_quote at the OTC trade size to determine actual execution price including slippage.\nStep 2/5: Price Discovery\n\n  Token Pair:    USDC / UNI\n  Pool Price:    1 UNI = $7.10 (USDC/UNI 0.3% V3)\n  Pool TVL:      $42M\n  Quote at Size: 1000 USDC -> 140.65 UNI (impact: 0.08%)\n\n  OTC Reference Rate: $7.10 per UNI\n  Your Trade:         1000 USDC -> ~140.85 UNI\n\n  Proceeding to terms agreement...\n\nStep 3: Terms Agreement\n\nPresent the complete trade terms for user confirmation:\n\nOTC Trade Terms\n\n  You Sell:     1,000 USDC\n  You Receive:  ~140.85 UNI ($999.90)\n  Counterparty: 0x1234...abcd (VERIFIED, rep: 78/100)\n\n  Pricing:\n    Pool Rate:  $7.10 per UNI\n    OTC Rate:   $7.10 per UNI (0.00% premium)\n    Slippage:   ~0.08%\n    Gas Est:    ~$5.00\n\n  Settlement:\n    Method:     Direct swap via Uniswap V3\n    Chain:      Ethereum\n    Pool:       USDC/UNI 0.3%\n\n  Proceed with this OTC trade? (yes/no)\n\n\nOnly proceed to Step 4 if the user explicitly confirms.\n\nIf the OTC price deviates from the pool price by more than maxPremium, warn the user:\n\n  WARNING: OTC rate ($7.25/UNI) is 2.1% above pool rate ($7.10/UNI).\n  This exceeds your max premium of 1%. Proceed anyway? (yes/no)\n\nStep 4: Settlement\n\nDelegate to Task(subagent_type:trade-executor):\n\nFor direct-swap settlement:\n\nExecute this OTC trade settlement:\n- Sell: {amount} {tokenSell}\n- Buy: {tokenBuy}\n- Chain: {chain}\n- Slippage tolerance: based on OTC terms\n- Context: This is an OTC trade with counterparty {counterpartyAgent}\n  (ERC-8004 verified, reputation {score}/100). Settle through the\n  {fee}% pool.\n\n\nFor cross-chain intent settlement:\n\nUse mcp__uniswap__submit_cross_chain_intent with:\n\ntokenIn: tokenSell on source chain\ntokenOut: tokenBuy on destination chain\nsourceChain: your chain\ndestinationChain: counterparty's chain\nStep 5: Record & Report\nStep 5/5: OTC Trade Complete\n\n  Settlement:\n    Sold:       1,000 USDC\n    Received:   140.85 UNI ($999.90)\n    Slippage:   0.07%\n    Gas:        $4.80\n    Tx:         https://etherscan.io/tx/0x...\n\n  Counterparty:\n    Agent:      0x1234...abcd\n    Trust:      VERIFIED (78/100)\n\n  OTC Terms vs Market:\n    Pool Rate:  $7.10/UNI\n    Actual:     $7.10/UNI (0.00% premium)\n\nOutput Format\nSuccessful OTC Trade\nAgent OTC Trade Complete\n\n  Trade:\n    Sold:         1,000 USDC\n    Received:     140.85 UNI ($999.90)\n    Counterparty: 0x1234...abcd (VERIFIED)\n    Settlement:   Direct swap via USDC/UNI 0.3% (V3)\n    Chain:        Ethereum\n    Tx:           https://etherscan.io/tx/0x...\n\n  Pricing:\n    Pool Rate:    $7.10/UNI\n    Actual Rate:  $7.10/UNI\n    Premium:      0.00%\n    Slippage:     0.07%\n    Gas:          $4.80\n\n  Counterparty Verification:\n    ERC-8004:     Registered, VERIFIED tier\n    Reputation:   78/100\n    Trade History: 142 completed, 0 disputes\n\nBlocked by Identity Check\nAgent OTC Trade -- Blocked\n\n  Counterparty: 0x5678...efgh\n  ERC-8004:     NOT REGISTERED\n  Trust Tier:   UNVERIFIED\n\n  Trade blocked: Counterparty is not ERC-8004 verified.\n  Your policy requires verified counterparties (requireVerified=true).\n\n  Suggestions:\n    - Ask the counterparty to register on ERC-8004\n    - Use /verify-agent to check their status\n    - Set requireVerified=false to trade with unverified agents (not recommended)\n\nImportant Notes\nCounterparty verification is the key safety feature. ERC-8004 identity checks prevent trading with malicious or unknown agents. The default requireVerified=true is strongly recommended.\nSettlement happens through Uniswap pools, not peer-to-peer. Both agents interact with the Uniswap pool independently. This means the trade is atomic and trustless -- neither party can default.\nThe counterparty does not need to be online simultaneously. Since settlement is through a pool, your agent executes its side of the trade independently. The \"OTC\" aspect is the agreed-upon terms and counterparty verification, not a literal peer-to-peer atomic swap.\nPrice reference prevents unfair terms. The Uniswap pool price serves as an objective reference rate. The maxPremium parameter (default 1%) prevents accepting trades at significantly worse-than-market rates.\nCross-chain OTC trades use ERC-7683 intents. For agents on different chains, the skill uses submit_cross_chain_intent for settlement. This adds bridge latency but enables cross-chain agent commerce.\nAll OTC trades are logged. Trade details (counterparty, terms, settlement tx) are recorded for reputation building and audit purposes.\nThis skill settles YOUR side of the trade. The counterparty agent is responsible for their own execution. In practice, both agents use this skill independently to settle their respective sides through the same Uniswap pool.\nMCP server dependency\n\nThis skill relies on Uniswap MCP tools for pricing, pool data, quotes, balances, and cross-chain intents. When used in isolation (for example, from a skills catalog), ensure the Agentic Uniswap MCP server is running:\n\nRepo: Agentic-Uniswap MCP server\nPackage: @agentic-uniswap/mcp-server\nError Handling\nError\tUser-Facing Message\tSuggested Action\nCounterparty unverified\t\"Counterparty agent is not ERC-8004 verified.\"\tAsk counterparty to register, or disable check\nCounterparty not found\t\"Could not find agent at address {addr}.\"\tVerify the address is correct\nNo pool for pair\t\"No Uniswap pool found for {tokenSell}/{tokenBuy} on {chain}.\"\tTry a different chain or intermediate token\nPremium too high\t\"OTC rate deviates {X}% from pool rate, exceeding {maxPremium}% limit.\"\tRenegotiate terms or increase maxPremium\nInsufficient balance\t\"Insufficient {tokenSell} balance: have {X}, need {Y}.\"\tFund wallet or reduce trade amount\nSettlement failed\t\"OTC settlement via Uniswap failed: {reason}.\"\tCheck liquidity, gas, and retry\nCross-chain intent failed\t\"Cross-chain settlement failed: {reason}.\"\tCheck bridge status and retry\nSafety check failed\t\"Trade exceeds safety limits.\"\tCheck spending limits with check-safety\nWallet not configured\t\"No wallet configured. Cannot execute OTC trades.\"\tSet up wallet with setup-agent-wallet\nIdentity service down\t\"ERC-8004 registry unreachable. Cannot verify counterparty.\"\tRetry later or proceed with caution"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/agent-otc-trade",
    "publisherUrl": "https://clawhub.ai/wpank/agent-otc-trade",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agent-otc-trade",
    "downloadUrl": "https://openagent3.xyz/downloads/agent-otc-trade",
    "agentUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-otc-trade/agent.md"
  }
}