ASP源码
PHP源码
.NET源码
JSP源码
Agent OTC Trade 技能为代理进行点对点代币交换提供了一个强大的框架,无需手动协调或临时通信渠道。通过利用 Uniswap 作为去信任结算层,它有效地消除了托管风险和交易对手违约,确保交易是原子性的并由池流动性保证。对于希望构建复杂代理间商业系统的开发人员来说,该技能是一个至关重要的组件。
该工具旨在与 Openclaw Skills 无缝集成,通过合并 ERC-8004 身份验证将安全性放在首位。这确保了每笔交易都是与经过验证的交易对手进行的,其声誉和信任等级在任何资产投入之前都会在链上进行检查。无论是执行单链上的直接交换还是使用跨链意图,该技能都为专业的代理操作提供了透明度和安全性。
下载入口:https://github.com/openclaw/skills/tree/main/skills/wpank/agent-otc-trade
从源直接安装技能的最快方式。
npx clawhub@latest install agent-otc-trade
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 agent-otc-trade。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
要在 Openclaw Skills 生态系统中使用此技能,您必须运行 Agentic Uniswap MCP 服务器并配置钱包。
# 安装所需的 MCP 服务器
npm install @agentic-uniswap/mcp-server
确保您的代理具有调用身份验证器(identity-verifier)和交易执行器(trade-executor)子代理的必要权限,以完成端到端的工作流程。
| 属性 | 类型 | 描述 |
|---|---|---|
| counterpartyAgent | 字符串 | 交易对手代理的 ERC-8004 身份或 0x 地址。 |
| tokenSell / tokenBuy | 字符串 | 正在交换的资产的符号或合约地址。 |
| settlementMethod | 字符串 | 在直接交换(direct-swap)或 ERC-7683 意图之间选择。 |
| trustTier | 字符串 | 验证级别(受信、已验证、基础或未验证)。 |
| maxPremium | 百分比 | 允许偏离 Uniswap 池价格的最大幅度。 |
name: agent-otc-trade
description: >-
Facilitate over-the-counter trades between agents using Uniswap as the
settlement layer. Use when user wants to trade tokens directly with another
agent, settle an agent-to-agent trade through Uniswap, or execute an OTC
swap with a specific counterparty agent. Verifies counterparty identity via
ERC-8004, negotiates terms, and settles through Uniswap pools.
model: opus
allowed-tools:
- Task(subagent_type:trade-executor)
- Task(subagent_type:identity-verifier)
- mcp__uniswap__get_quote
- mcp__uniswap__get_token_price
- mcp__uniswap__get_pool_info
- mcp__uniswap__get_agent_balance
- mcp__uniswap__execute_swap
- mcp__uniswap__submit_cross_chain_intent
- mcp__uniswap__check_safety_status
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.
Why this is 10x better than manual agent-to-agent trading:
Activate when the user says anything like:
Do 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).
| Parameter | Required | Default | How to Extract |
|---|---|---|---|
| counterpartyAgent | Yes | -- | Counterparty address (0x...) or ERC-8004 identity |
| tokenSell | Yes | -- | Token you are selling: "USDC", "UNI", or 0x address |
| tokenBuy | Yes | -- | Token you are buying: "ETH", "UNI", or 0x address |
| amount | Yes | -- | Amount to sell: "1000 USDC", "50 UNI", "$5,000 worth" |
| chain | No | ethereum | Settlement chain: "ethereum", "base", "arbitrum" |
| settlementMethod | No | direct-swap | "direct-swap", "intent" (ERC-7683 cross-chain) |
| maxPremium | No | 1% | Max acceptable premium/discount vs pool price |
| requireVerified | No | true | Require ERC-8004 verified counterparty (true/false) |
If the user doesn't provide counterpartyAgent, tokenSell/tokenBuy, or amount, ask for them -- never guess OTC trade parameters.
AGENT OTC TRADE PIPELINE
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ Step 1: VERIFY COUNTERPARTY │
│ ├── Check ERC-8004 identity registry │
│ ├── Query reputation score │
│ ├── Determine trust tier (unverified/basic/verified/trusted) │
│ └── Output: Identity report + trust decision │
│ │ │
│ ▼ IDENTITY GATE │
│ ┌───────────────────────────────────────────┐ │
│ │ trusted/verified -> Proceed │ │
│ │ basic -> Warn, ask user │ │
│ │ unverified -> STOP (if required) │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ │
│ Step 2: PRICE DISCOVERY │
│ ├── Get current Uniswap pool price for the token pair │
│ ├── Get quote at the OTC trade size │
│ ├── Calculate fair OTC price (pool price + spread) │
│ └── Output: Reference price + OTC terms │
│ │ │
│ ▼ │
│ │
│ Step 3: TERMS AGREEMENT │
│ ├── Present terms to user: price, amounts, fees, settlement method │
│ ├── Compare OTC price vs pool price (premium/discount) │
│ ├── Show total cost including gas and slippage │
│ └── User must explicitly confirm │
│ │ │
│ ▼ │
│ │
│ Step 4: SETTLEMENT │
│ ├── Check wallet balance and approvals │
│ ├── Execute swap via trade-executor (or cross-chain intent) │
│ ├── Verify settlement on-chain │
│ └── Output: Settlement confirmation + tx hash │
│ │ │
│ ▼ │
│ │
│ Step 5: RECORD & REPORT │
│ ├── Record trade in OTC history │
│ ├── Log counterparty, terms, settlement tx │
│ └── Output: Full OTC trade report │
│ │
└──────────────────────────────────────────────────────────────────────┘
Delegate to Task(subagent_type:identity-verifier):
Verify the identity and reputation of this agent:
- Agent address: {counterpartyAgent}
- Chain: {chain}
Check the ERC-8004 Identity Registry, Reputation Registry, and Validation
Registry. Return the trust tier (unverified/basic/verified/trusted),
reputation score, registration date, and any flags.
Present to user:
Step 1/5: Counterparty Verification
Agent: 0x1234...abcd
ERC-8004: Registered (verified tier)
Reputation: 78/100 (good)
Registered: 2025-11-15 (87 days ago)
Trades: 142 completed, 0 disputes
Trust Tier: VERIFIED
Proceeding to price discovery...
Identity gate logic:
| Trust Tier | Action |
|---|---|
| trusted | Proceed to Step 2 automatically |
| verified | Proceed to Step 2 automatically |
| basic | Warn user: "Counterparty has basic verification only. Proceed?" Ask to confirm. |
| unverified | If requireVerified=true: STOP. Show reason. Suggest verifying first. |
If requireVerified=false: Warn strongly, ask for explicit confirmation. |
mcp__uniswap__get_token_price for both tokens to establish USD values.mcp__uniswap__get_pool_info for the token pair to get the current pool price.mcp__uniswap__get_quote at the OTC trade size to determine actual execution price including slippage.Step 2/5: Price Discovery
Token Pair: USDC / UNI
Pool Price: 1 UNI = $7.10 (USDC/UNI 0.3% V3)
Pool TVL: $42M
Quote at Size: 1000 USDC -> 140.65 UNI (impact: 0.08%)
OTC Reference Rate: $7.10 per UNI
Your Trade: 1000 USDC -> ~140.85 UNI
Proceeding to terms agreement...
Present the complete trade terms for user confirmation:
OTC Trade Terms
You Sell: 1,000 USDC
You Receive: ~140.85 UNI ($999.90)
Counterparty: 0x1234...abcd (VERIFIED, rep: 78/100)
Pricing:
Pool Rate: $7.10 per UNI
OTC Rate: $7.10 per UNI (0.00% premium)
Slippage: ~0.08%
Gas Est: ~$5.00
Settlement:
Method: Direct swap via Uniswap V3
Chain: Ethereum
Pool: USDC/UNI 0.3%
Proceed with this OTC trade? (yes/no)
Only proceed to Step 4 if the user explicitly confirms.
If the OTC price deviates from the pool price by more than maxPremium, warn the user:
WARNING: OTC rate ($7.25/UNI) is 2.1% above pool rate ($7.10/UNI).
This exceeds your max premium of 1%. Proceed anyway? (yes/no)
Delegate to Task(subagent_type:trade-executor):
For direct-swap settlement:
Execute this OTC trade settlement:
- Sell: {amount} {tokenSell}
- Buy: {tokenBuy}
- Chain: {chain}
- Slippage tolerance: based on OTC terms
- Context: This is an OTC trade with counterparty {counterpartyAgent}
(ERC-8004 verified, reputation {score}/100). Settle through the
{fee}% pool.
For cross-chain intent settlement:
Use mcp__uniswap__submit_cross_chain_intent with:
tokenIn: tokenSell on source chaintokenOut: tokenBuy on destination chainsourceChain: your chaindestinationChain: counterparty's chainStep 5/5: OTC Trade Complete
Settlement:
Sold: 1,000 USDC
Received: 140.85 UNI ($999.90)
Slippage: 0.07%
Gas: $4.80
Tx: https://etherscan.io/tx/0x...
Counterparty:
Agent: 0x1234...abcd
Trust: VERIFIED (78/100)
OTC Terms vs Market:
Pool Rate: $7.10/UNI
Actual: $7.10/UNI (0.00% premium)
Agent OTC Trade Complete
Trade:
Sold: 1,000 USDC
Received: 140.85 UNI ($999.90)
Counterparty: 0x1234...abcd (VERIFIED)
Settlement: Direct swap via USDC/UNI 0.3% (V3)
Chain: Ethereum
Tx: https://etherscan.io/tx/0x...
Pricing:
Pool Rate: $7.10/UNI
Actual Rate: $7.10/UNI
Premium: 0.00%
Slippage: 0.07%
Gas: $4.80
Counterparty Verification:
ERC-8004: Registered, VERIFIED tier
Reputation: 78/100
Trade History: 142 completed, 0 disputes
Agent OTC Trade -- Blocked
Counterparty: 0x5678...efgh
ERC-8004: NOT REGISTERED
Trust Tier: UNVERIFIED
Trade blocked: Counterparty is not ERC-8004 verified.
Your policy requires verified counterparties (requireVerified=true).
Suggestions:
- Ask the counterparty to register on ERC-8004
- Use /verify-agent to check their status
- Set requireVerified=false to trade with unverified agents (not recommended)
requireVerified=true is strongly recommended.maxPremium parameter (default 1%) prevents accepting trades at significantly worse-than-market rates.submit_cross_chain_intent for settlement. This adds bridge latency but enables cross-chain agent commerce.This 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:
Agentic-Uniswap MCP server@agentic-uniswap/mcp-server| Error | User-Facing Message | Suggested Action |
|---|---|---|
| Counterparty unverified | "Counterparty agent is not ERC-8004 verified." | Ask counterparty to register, or disable check |
| Counterparty not found | "Could not find agent at address {addr}." | Verify the address is correct |
| No pool for pair | "No Uniswap pool found for {tokenSell}/{tokenBuy} on {chain}." | Try a different chain or intermediate token |
| Premium too high | "OTC rate deviates {X}% from pool rate, exceeding {maxPremium}% limit." | Renegotiate terms or increase maxPremium |
| Insufficient balance | "Insufficient {tokenSell} balance: have {X}, need {Y}." | Fund wallet or reduce trade amount |
| Settlement failed | "OTC settlement via Uniswap failed: {reason}." | Check liquidity, gas, and retry |
| Cross-chain intent failed | "Cross-chain settlement failed: {reason}." | Check bridge status and retry |
| Safety check failed | "Trade exceeds safety limits." | Check spending limits with check-safety |
| Wallet not configured | "No wallet configured. Cannot execute OTC trades." | Set up wallet with setup-agent-wallet |
| Identity service down | "ERC-8004 registry unreachable. Cannot verify counterparty." | Retry later or proceed with caution |