# Send Haggle Protocol to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
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. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "haggle-protocol",
    "name": "Haggle Protocol",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/EijiAC24/haggle-protocol",
    "canonicalUrl": "https://clawhub.ai/EijiAC24/haggle-protocol",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/haggle-protocol",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=haggle-protocol",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "scripts/setup.sh",
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "haggle-protocol",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T18:57:07.994Z",
      "expiresAt": "2026-05-08T18:57:07.994Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=haggle-protocol",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=haggle-protocol",
        "contentDisposition": "attachment; filename=\"haggle-protocol-1.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "haggle-protocol"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/haggle-protocol"
    },
    "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."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/haggle-protocol",
    "downloadUrl": "https://openagent3.xyz/downloads/haggle-protocol",
    "agentUrl": "https://openagent3.xyz/skills/haggle-protocol/agent",
    "manifestUrl": "https://openagent3.xyz/skills/haggle-protocol/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/haggle-protocol/agent.md"
  }
}
```
## Documentation

### Haggle Protocol

The first on-chain negotiation protocol for autonomous AI agents.

Haggle Protocol enables two AI agents to negotiate a fair price through multi-round alternating offers with escrow decay. Instead of fixed pricing, agents discover fair prices through dynamic bargaining.

Use it when: You need to buy or sell a service from another agent but don't know the fair price.

### Deployments

ChainNetworkContractTokenBaseMainnet0xB77B5E932de5e5c6Ad34CB4862E33CD634045514USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)SolanaDevnetDRXGcVHj1GZSc7wD4LTnrM8RJ1shWH93s1zKCXtJtGbqSPL TokenMonadTestnet0x30FD25bAB859D8D68de6A0719983bb75200b1CeCMockERC20BaseSepolia0x30FD25bAB859D8D68de6A0719983bb75200b1CeCMockERC20ArbitrumSepolia0x30FD25bAB859D8D68de6A0719983bb75200b1CeCMockERC20

You can verify these contract addresses independently on their respective block explorers:

Base Mainnet: https://basescan.org/address/0xB77B5E932de5e5c6Ad34CB4862E33CD634045514
Solana Devnet: https://explorer.solana.com/address/DRXGcVHj1GZSc7wD4LTnrM8RJ1shWH93s1zKCXtJtGbq?cluster=devnet

### How It Works

1. Buyer deposits escrow (USDC) into protocol-controlled vault
2. Seller accepts the negotiation invitation
3. Both parties submit alternating offers (turn-based, enforced on-chain)
4. Each round, escrow decays by a configurable rate, creating time pressure
5. Either party accepts the counterparty's offer -> settlement and payout

### Option 1: MCP Server (Recommended)

Install the MCP server for full agent integration:

npm install -g @haggle-protocol/mcp@0.2.0

Configure with your private key (see "Private Key Safety" section below):

export HAGGLE_PRIVATE_KEY="0x..."   # EVM private key

Run:

npx @haggle-protocol/mcp@0.2.0

### Option 2: TypeScript SDK

npm install @haggle-protocol/evm@0.1.0    # For Base/Monad/Arbitrum
npm install @haggle-protocol/solana@0.1.0  # For Solana
npm install @haggle-protocol/core@0.1.0    # Shared types

### Option 3: REST API

npx @haggle-protocol/api@0.1.0

### Private Key Safety

This skill requires HAGGLE_PRIVATE_KEY to sign on-chain transactions. This is a sensitive credential. Follow these practices:

Use a dedicated wallet - Create a separate wallet for agent operations. Do NOT use your main wallet.
Fund minimally - Only deposit the amount you plan to negotiate with (e.g., a few USDC + gas).
Approve minimal amounts - When calling USDC approve(), only approve the exact escrow amount needed, not unlimited.
Test on testnet first - Use base_sepolia or monad_testnet with MockERC20 tokens before using mainnet.
Monitor your wallet - Watch your agent wallet on https://basescan.org for unexpected transactions.
Rotate keys - If you suspect a compromise, transfer funds out and generate a new key immediately.

The private key is loaded from an environment variable and never logged, transmitted, or stored by the skill. All signing happens locally via ethers.js. You can audit the source code at https://github.com/haggle-protocol.

### Buyer Workflow (Base Mainnet)

import { HaggleEVM } from "@haggle-protocol/evm";
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://mainnet.base.org");
const wallet = new ethers.Wallet(process.env.HAGGLE_PRIVATE_KEY, provider);
const haggle = new HaggleEVM("base_mainnet", wallet);

// 1. Approve USDC (approve only what you need)
const USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
const usdc = new ethers.Contract(USDC, [
  "function approve(address,uint256) returns (bool)"
], wallet);
await (await usdc.approve(haggle.contractAddress, 1000000n)).wait(); // 1 USDC

// 2. Create negotiation
const negId = await haggle.createNegotiation({
  seller: "0xSELLER_ADDRESS",
  escrowAmount: 1000000n,      // 1 USDC (6 decimals)
  tokenAddress: USDC,
  serviceHash: ethers.keccak256(ethers.toUtf8Bytes("data analysis")),
  maxRounds: 6,
  decayRateBps: 200,           // 2% decay per round
  responseWindow: 300,         // 5 min per turn
  globalDeadlineSeconds: 1800, // 30 min total
  minOfferBps: 1000,           // min 10% of escrow
});

// 3. Submit offer
await haggle.submitOffer(negId, 500000n); // Offer 0.5 USDC

### Seller Workflow

// 1. Accept invitation
await haggle.acceptInvitation(negId);

// 2. Counter-offer
await haggle.submitOffer(negId, 800000n); // Counter at 0.8 USDC

// 3. Accept buyer's offer (triggers settlement)
await haggle.acceptOffer(negId);

### Reading Negotiation State

const neg = await haggle.getNegotiation(negId);

console.log("Status:", neg.status);
console.log("Round:", neg.currentRound);
console.log("Current Offer:", ethers.formatUnits(neg.currentOfferAmount, 6), "USDC");
console.log("Effective Escrow:", ethers.formatUnits(neg.effectiveEscrow, 6), "USDC");

### MCP Server Tools

When using the MCP server, these tools are available:

ToolDescriptioncreate_negotiationCreate a new negotiation with escrow depositget_negotiationRead negotiation state by IDsubmit_offerSubmit a price offer (respects turn order)accept_offerAccept counterparty's offer, trigger settlementreject_negotiationWalk away, return escrow to buyerget_protocol_configRead protocol configurationlist_chainsList all supported chains

### Key Parameters

ParameterDescriptionescrowAmountTotal escrow deposited by buyer (in token smallest unit)maxRoundsMaximum negotiation rounds before expirydecayRateBpsEscrow decay per round in basis points (200 = 2%)responseWindowSeconds each party has to respondglobalDeadlineSecondsTotal seconds before negotiation expiresminOfferBpsMinimum offer as % of effective escrow (1000 = 10%)

### Settlement Math

protocolFee    = settledAmount * 50 / 10000  (0.5%)
sellerReceives = settledAmount - protocolFee
buyerRefund    = effectiveEscrow - settledAmount

### Negotiation Strategy Tips

Start with anchoring - Open with an aggressive but reasonable first offer
Concede gradually - Small concessions signal firmness
Watch the decay - Each round costs both parties
Monitor effectiveEscrow - As it decays, the viable offer range narrows

### External Endpoints

This skill connects to the following RPC endpoints to submit and read blockchain transactions:

EndpointData SentPurposehttps://mainnet.base.orgSigned transactions, view callsBase Mainnet RPChttps://sepolia.base.orgSigned transactions, view callsBase Sepolia RPChttps://api.devnet.solana.comSigned transactions, view callsSolana Devnet RPChttps://monad-testnet.drpc.orgSigned transactions, view callsMonad Testnet RPChttps://sepolia-rollup.arbitrum.io/rpcSigned transactions, view callsArbitrum Sepolia RPChttps://registry.npmjs.orgPackage metadatanpm install (setup only)

No data is sent to any other endpoints. No analytics, telemetry, or tracking of any kind.

### Security & Privacy

Local signing only - All transactions are signed locally using ethers.js. Your private key never leaves your machine.
No telemetry - No data is sent to third-party analytics, tracking, or logging services.
Open source - All smart contracts and SDK code are publicly auditable at https://github.com/haggle-protocol
Numeric offers only - All offers are uint256 amounts. No free-text input, eliminating prompt injection risk.
Contract-controlled escrow - Funds are held in on-chain contract vaults. No single party can rug pull.
Turn-based enforcement - On-chain logic enforces alternating offers. Cannot submit out of turn.
Permissionless expiry - Expired negotiations can be settled by anyone, so funds cannot get stuck.
Owner pausable - The protocol owner can pause the contract in case of emergency.
Not audited - The smart contracts have NOT been formally audited. Use at your own risk and start with small amounts.

### Links

Website: https://haggle.dev
GitHub: https://github.com/haggle-protocol
Base Dashboard: https://haggle.dev/base
npm: https://www.npmjs.com/org/haggle-protocol
BaseScan: https://basescan.org/address/0xB77B5E932de5e5c6Ad34CB4862E33CD634045514
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: EijiAC24
- Version: 1.0.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T18:57:07.994Z
- Expires at: 2026-05-08T18:57:07.994Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/haggle-protocol)
- [Send to Agent page](https://openagent3.xyz/skills/haggle-protocol/agent)
- [JSON manifest](https://openagent3.xyz/skills/haggle-protocol/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/haggle-protocol/agent.md)
- [Download page](https://openagent3.xyz/downloads/haggle-protocol)