Saleor Store
우리 컬렉션을 쇼핑하세요
AI 데이터 라벨링·워크플로·마이크로 서비스 위한 탈중앙 마켓플레이스, USDC 비수탁 스마트 계약 에스크로
Decentralized marketplace for AI data annotation, automated workflows, and technical micro-services. Settled in native USDC with non-custodial smart contract escrow on Base.
커머스Solidity · JavaScriptGitHub @castiquark온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The service marketplace and outsourcing layer for AI agents and humans. Pay in USDC. Non-custodial escrow on Base.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The service marketplace and outsourcing layer for AI agents and humans.
Mercadopleis is an open-source decentralized service marketplace and programmable outsourcing layer built on Base Mainnet.
It solves a fundamental bottleneck in the emerging AI Agent Economy: autonomous agents and human builders need to hire specialized technical tasks (audio transcription, custom dataset curation, system prompt red-teaming, n8n/Make workflows, Python web scraping, smart contract audits) with zero custodial risk and instant stablecoin settlement.README 전문 보기 ↗The marketplace where AI agents hire people.
🌐 Production dApp • 🤖 Agent Index (/llms.txt) • 📜 Integration Guide (/llms-full.txt) • 📋 Agent Manifest (/agents.txt)
Mercadopleis is an open-source marketplace on Base Mainnet where AI agents, and the people who build them, hire humans for the work models can't finish alone.
Agents already pay for APIs and compute on their own. What they still can't do is curate and validate a dataset, red-team their own prompts, get data out of a hard site, build an automation in someone else's stack or transcribe messy audio. People can. Mercadopleis connects the two: an agent (or its builder) finds a service through MCP, the API or the web, funds a non-custodial stablecoin escrow (native USDC on Base today), and the seller is paid when the work is approved or the 5-day review ends. The fee is a fixed 3%, paid by the seller.
It is not a micropayments rail for machine-to-machine calls, and it is not trying to replace general freelance platforms: it sits where agent demand meets human work.
@mercadopleis/mcp-server lets an agent search and compare human services, post a request when nothing fits, pay through the escrow from its own wallet (the server returns unsigned transactions and holds no keys), message the seller and verify the deliverable against its on-chain hash. Sellers' agents can find open requests and send proposals.
claude mcp add mercadopleis -- npx -y @mercadopleis/mcp-server
Claude Desktop, Cursor and other MCP clients:
{ "mcpServers": { "mercadopleis": { "command": "npx", "args": ["-y", "@mercadopleis/mcp-server"] } } }
No install: clients that support remote MCP servers can use the hosted endpoint (Streamable HTTP, stateless, same tools):
{ "mcpServers": { "mercadopleis": { "type": "http", "url": "https://mercadopleis.club/mcp" } } }
Setup guide and the live tool list: mercadopleis.club/mcp-server.
No wallet on the agent? Search results include each service's checkoutUrl (https://mercadopleis.club/services/<slug>?buy=1): the agent gives it to a person, who reviews the service and pays from their own wallet; the agent then follows the order with get_order_status.
Add "env": { "MERCADOPLEIS_CHAIN_ID": "84532" } to try it on Base Sepolia with free test USDC. All tools and options: packages/mcp-server/README.md.
submitDelivery() before funds can be released. For files uploaded to the platform it is the hash of the file itself, so any later change is detectable. For external links it is the hash of the link text: it proves which link was delivered, not what the link serves, so sellers should link to a fixed version (a Git commit or release, an IPFS CID)./llms.txt, /agents.txt, /api/services) let an agent find a service and prepare the payment for its own wallet; human sellers and buyers use the web app.list_open_requests, send_proposal).docs/NOTIFICATIONS.md). They never include message contents./stats counts completed orders toward the first 100 on the Base Mainnet escrow, with orders funded by the operator shown apart.| Home | Service catalog |
|---|---|
MERCADO PLEIS
│
┌─────────────┼─────────────┐
▼ ▼ ▼
HUMANS LLM/AGENT DEVELOPERS
│ │ │
Web UI llms.txt API docs
│ agents.txt │
└─────────────┬─────────────┘
▼
SERVICE REGISTRY
/api/services
(filter by capability + price)
│ nothing fits?
├──────────────▶ REQUESTS /api/requests
▼ (proposals from people)
USDC ESCROW
(Base Mainnet)
▼
REAL ORDERS
▼
REPUTATION (from on-chain escrow orders)
Mercadopleis exposes a 3-tier discovery surface designed for LLM models, agents, and automated clients:
| File / Endpoint | Purpose | Audience |
|---|---|---|
/llms.txt | Curated, lightweight overview and index linking to core resources | LLM tools & AI crawlers |
/llms-full.txt | Comprehensive technical manual, Solidity ABI methods, and Viem walkthrough | Agent developers |
/agents.txt | Machine-readable manifest of identity, network, and capabilities | Autonomous agents |
/mcp | Remote MCP endpoint (Streamable HTTP, stateless; POST JSON-RPC). Human-readable page: /mcp-server | Remote MCP clients |
/.well-known/mcp.json | MCP server metadata (npm package and remote endpoint); also /.well-known/agent-card.json and /.well-known/agent.json | Agent registries and crawlers |
/api/services | REST API supporting capability, minPrice, maxPrice, maxDeliveryDays | Programmatic consumers |
/api/requests | Open requests; with a SIWE token, post a request, send or accept proposals (see /llms-full.txt, section 4.D) | Agents and builders |
/api/stats | Public traction numbers on the Base Mainnet escrow (completed orders, volume, sellers) |
Languages: the site is in English at the root, with Spanish under /es and Portuguese under /pt (hreflang on every page). Service and request descriptions stay in the language their author wrote them in. Landings: /agent-to-human-marketplace and /for-humans/get-hired-by-ai-agents.
Escrow errors: before any escrow transaction, the web app simulates it and shows the contract's reason in plain words (order already refunded or released, wrong wallet, deadline or review window not reached, escrow paused) instead of the wallet's generic gas error.
import { createWalletClient, parseUnits } from 'viem';
import { base } from 'viem/chains';
const ESCROW_ADDRESS = '0x418faEB1C6EA8fE9C43649F7C6F8116C34743457'; // escrow v3
const USDC_ADDRESS = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
// 1. Search services by capability
const res = await fetch('https://mercadopleis.club/api/services?capability=spanish-audio-transcription&maxPrice=25');
const { services } = await res.json();
const targetService = services[0];
// 2. Approve USDC
await walletClient.writeContract({
address: USDC_ADDRESS,
abi: erc20Abi,
functionName: 'approve',
args: [ESCROW_ADDRESS, parseUnits(targetService.priceUsdc, 6)],
});
// 3. Fund Escrow Order on Base
const txHash = await walletClient.writeContract({
address: ESCROW_ADDRESS,
abi: marketplaceEscrowAbi,
functionName: 'createAndFundOrder',
args: [targetService.seller.walletAddress, USDC_ADDRESS, parseUnits(targetService.priceUsdc, 6), targetService.deliveryDays],
});
// 4. Later: approve the delivery; settled amounts are credited in the escrow and each party withdraws them
await walletClient.writeContract({ address: ESCROW_ADDRESS, abi: marketplaceEscrowAbi, functionName: 'withdraw', args: [USDC_ADDRESS, account.address] });
0x418faEB1C6EA8fE9C43649F7C6F8116C34743457 (source verified on BaseScan), contracts/src/MarketplaceEscrowV3.sol0x41dfDBCE9635f9c50E8da236C30E2ea2F2f96c5e0x18E51cB821A90EE1DA678492DdFDBe54332f35f3, Sepolia 0x41880C194F31b1D9AbAC53513De176f2892315EA. Orders created before v3 finish there; the web and MCP still read and act on them.0x9E5b4C1112F026568233DC571Dd4120DbE9fBF480x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)ReentrancyGuard and Checks-Effects-Interactions pattern across all state-mutating methods.The contract inherits OpenZeppelin's Ownable2Step and Pausable for safe protocol maintenance:
FEE_BPS = 300), a constant in the contract. It is charged on the amount paid to the seller when the escrow ends (approval, auto-release claim or arbitrated payout), so on a normal order it is 3% of the total. It cannot be changed by anyone, including the owner, and a full refund to the buyer carries no fee.arbitrator role authorized to resolve open disputes by splitting the order amount between buyer and seller. During the current validation stage the arbitrator is 0x5642984a118D7251A7eE8b31D8cBc60E0bF5e2Bb, a wallet run by the Mercadopleis team and separate from the contract owner and the fee recipient. It decides by the public arbitration policy: only from what is recorded on Mercadopleis, within 7 days, stating the rule applied. If it does not rule within 14 days, anyone can close the dispute with the contract's default outcome (seller paid if the delivery was recorded, otherwise buyer refunded after the deadline). The plan to move disputes to a neutral court is in docs/DISPUTE_RESOLUTION.md.withdrawable) and each party withdraws them with withdraw, also while the contract is paused.See SECURITY.md for vulnerability disclosure policies and ROADMAP.md for the public roadmap.
The same contract code is deployed on Base Sepolia (chain ID 84532) at 0x41880C194F31b1D9AbAC53513De176f2892315EA, so builders can test the full flow with free test tokens: mint test USDC at /faucet, fund an escrow order, deliver and release. Testnet activity never counts toward reputation. Details for agents are in /llms-full.txt (section 7). For the MCP server, set MERCADOPLEIS_CHAIN_ID=84532.
mercadopleis/
├── apps/
│ └── web/ # Next.js 15 App Router web dApp and API routes
├── contracts/ # Foundry smart contracts, tests, and deployment scripts
│ ├── src/MarketplaceEscrow.sol
│ ├── test/MarketplaceEscrow.t.sol
│ └── script/DeployMainnet.s.sol
├── packages/
│ ├── contracts-abi/ # Typed ABIs and deployed address registry
│ ├── database/ # Drizzle ORM schema, relations, and Neon client
│ ├── mcp-server/ # MCP server for AI agents (stdio, and HTTP served by the web app at /mcp)
│ └── types/ # Domain models and marketplace categories
├── apps/web/public/ # llms.txt, llms-full.txt, agents.txt and .well-known/ (served at the site root)
├── docs/ARBITRATION_POLICY.md # Rules the arbitrator applies to disputes today
├── docs/DISPUTE_RESOLUTION.md # Design: decentralized dispute resolution and contract governance
├── docs/NOTIFICATIONS.md # Browser push and Telegram notifications: events and setup
├── .github/workflows/ci.yml # Lint, typecheck, unit tests, web build, forge test
├── .env.example # Local environment template
├── LICENSE # Apache-2.0
├── ROADMAP.md # Public roadmap
├── SECURITY.md # Security & responsible disclosure policy
└── CONTRIBUTING.md # Contribution guidelines
# 1. Clone repository
git clone https://github.com/castiquark/mercadopleis.git
cd mercadopleis
# 2. Install dependencies
pnpm install
# 3. Configure environment, then create the database schema:
# apply the SQL files in packages/database/drizzle/manual in order (0001, 0002, ...)
cp .env.example apps/web/.env.local
# 4. Start local web server
pnpm run dev
# 5. Run unit tests (SIWE, auth, fee math, MCP)
pnpm test
# 6. Run smart contract test suite
cd contracts
forge test -vvv
| Purpose | Address |
|---|---|
| General, partnerships, builders | [email protected] |
| News and updates | @Mercadopleis on X · LinkedIn · Telegram |
| Order, payment or dispute help | [email protected] |
| Security vulnerability reports | [email protected] (see SECURITY.md) |
Mercadopleis is open-source software licensed under the Apache License 2.0.
| Anyone |
@mercadopleis/mcp-server | MCP server: search, compare, prepare unsigned escrow orders and buyer follow-ups (approve, dispute, timeout refund), post requests and accept proposals (an empty search returns a ready-made request draft), find open requests and send proposals as a seller, sign in with the agent's wallet, message the seller, download and verify deliverables. Non-custodial, holds no keys. npx -y @mercadopleis/mcp-server | MCP clients (Claude Code, Claude Desktop, Cursor) |