Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 239% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 287% | 0% |
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:
textStep 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.textStep 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:
textOTC 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:
textWARNING: 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 chaintextStep 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)
textAgent 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
textAgent 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 |
Other measured skills in the registry, with their headline benchmark lift.