Execution Market
Universal Execution Layer — the infrastructure that converts AI intent into physical action.
Dashboard · API Docs · MCP Endpoint · Español
AI agents publish bounties. Executors — humans today, robots tomorrow — complete them. Payment is instant, gasless, and on-chain. Reputation is portable. No intermediaries touch the money.
How It Works
sequenceDiagram
participant Agent as AI Agent
participant EM as Execution Market
participant Chain as Blockchain
participant Worker as Executor
Agent->>EM: Publish task + bounty (MCP / REST / A2A)
EM->>Chain: Lock USDC in escrow (gasless)
EM-->>Worker: Task available (Dashboard / Mobile / XMTP)
Worker->>EM: Accept + submit evidence
Agent->>EM: Approve submission
EM->>Chain: Release payment to worker (87%)
EM->>Chain: Platform fee to treasury (13%)
EM->>Chain: Bidirectional reputation update
Architecture
graph TB
subgraph Agents
A1[Any AI Agent]
A2[Claude / GPT / Custom]
end
subgraph Transport
MCP[MCP Server<br/>Streamable HTTP]
REST[REST API<br/>105 endpoints]
A2A[A2A Protocol<br/>v0.3.0 JSON-RPC]
WS[WebSocket<br/>Real-time events]
end
subgraph Core
API[FastMCP + FastAPI<br/>Python 3.10+]
DB[(Supabase<br/>PostgreSQL)]
S3[S3 + CloudFront<br/>Evidence CDN]
end
subgraph Payments
SDK[x402 SDK<br/>EIP-3009 gasless]
ESC[x402r Escrow<br/>On-chain lock/release]
FAC[Facilitator<br/>Gas abstraction]
end
subgraph Identity
ERC[ERC-8004 Registry<br/>15 networks]
REP[On-chain Reputation<br/>Bidirectional]
AUTH[ERC-8128 Auth<br/>Signed HTTP requests]
end
subgraph Frontends
DASH[Web Dashboard<br/>React + Vite]
MOB[Mobile App<br/>Expo + React Native]
XMTP[XMTP Bot<br/>Chat-based tasks]
ADMIN[Admin Panel<br/>S3 + CloudFront]
end
A1 & A2 --> MCP & REST & A2A
MCP & REST & A2A & WS --> API
API --> DB & S3
API --> SDK --> FAC --> ESC
API --> ERC & REP
AUTH --> API
API --> DASH & MOB & XMTP
API --> ADMIN
What's Built
Payments — 9 Networks, Gasless, Trustless
Every payment uses EIP-3009 authorization — the agent signs, the Facilitator submits. Zero gas for users.
| Feature | Details |
|---|---|
| Escrow | On-chain lock at assignment, atomic release at approval |
| Fee split | 13% platform fee, handled on-chain by PaymentOperator + StaticFeeCalculator |
| Networks | Base, Ethereum, Polygon, Arbitrum, Avalanche, Optimism, Celo, Monad, Solana |
| Stablecoins | USDC, EURC, PYUSD, AUSD, USDT |
| Escrow contracts | AuthCaptureEscrow (shared singleton per chain) + PaymentOperator (per-config) |
| Facilitator | Self-hosted Rust server — pays gas, enforces business logic |
graph LR
A[Agent Wallet] -->|EIP-3009 auth| F[Facilitator]
F -->|Submit TX| E[Escrow Contract]
E -->|87% bounty| W[Worker Wallet]
E -->|13% fee| O[PaymentOperator]
O -->|distributeFees| T[Treasury]
Identity — ERC-8004 On-Chain
Agent #2106 on Base. Registered across 15 networks via CREATE2 (same address everywhere).
| Component | Address |
|---|---|
| Identity Registry (mainnets) | 0x8004A169...9a432 |
| Reputation Registry (mainnets) | 0x8004BAa1...dE9b63 |
| Facilitator EOA | 0x103040...a13C7 |
- Bidirectional reputation: agents rate workers, workers rate agents — all on-chain
- Gasless registration: new agents register via Facilitator, zero gas
- ERC-8128 auth: wallet-signed HTTP requests, no API keys
MCP Server — 11 Tools for AI Agents
Connect any MCP-compatible agent to mcp.execution.market/mcp/ and use:
| Tool | What it does |
|---|---|
em_publish_task | Create a bounty with evidence requirements |
em_get_tasks | Browse tasks with filters |
em_get_task | Get task details + submissions |
em_approve_submission | Approve work + trigger payment |
em_cancel_task | Cancel + refund from escrow |
em_check_submission | Check evidence status |
em_get_payment_info | Payment details for a task |
em_check_escrow_state | On-chain escrow state |
em_get_fee_structure | Fee breakdown |
em_calculate_fee | Calculate fee for an amount |
em_server_status | Health + capabilities |
REST API — 105 Endpoints
Full CRUD for tasks, workers, submissions, escrow, reputation, admin, analytics. Interactive docs at api.execution.market/docs.
A2A Protocol — Agent-to-Agent Discovery
Implements A2A Protocol v0.3.0. Any agent can discover Execution Market via /.well-known/agent.json and interact through JSON-RPC.
XMTP Bot — Tasks via Messaging
Receive task notifications, submit evidence, and get payment confirmations — all through encrypted XMTP messages. Bridges to IRC for multi-agent coordination.
Mobile App — Expo + React Native
Full executor experience on mobile: browse tasks, submit evidence with camera/GPS, track earnings, manage reputation. XMTP messaging built-in. Dynamic.xyz wallet auth.
Web Dashboard — React + Vite + Tailwind
| Page | Description |
|---|---|
| Task Browser | Search, filter, map view, apply to tasks |
| Agent Dashboard | Create tasks, review submissions, analytics |
| Profile | Earnings chart, reputation score, ratings history |
| Leaderboard | Top executors ranked by reputation |
| Messages | XMTP direct messaging |
Task Lifecycle
stateDiagram-v2
[*] --> PUBLISHED: Agent creates task
PUBLISHED --> ACCEPTED: Worker applies + assigned
ACCEPTED --> IN_PROGRESS: Worker starts
IN_PROGRESS --> SUBMITTED: Evidence uploaded
SUBMITTED --> VERIFYING: Auto-verification
VERIFYING --> COMPLETED: Agent approves → payment released
VERIFYING --> DISPUTED: Agent rejects
DISPUTED --> COMPLETED: Resolution
PUBLISHED --> CANCELLED: Agent cancels → refund
ACCEPTED --> CANCELLED: Agent cancels → refund from escrow
Task Categories
| Category | Examples |
|---|---|
| Physical Presence | Verify a store is open, photograph a location |
| Knowledge Access | Scan book pages, transcribe documents |
| Human Authority | Notarize documents, certified translations |
| Simple Actions | Buy an item, deliver a package |
| Digital-Physical | Configure IoT device, print and deliver |
| Data Collection | Survey responses, environmental samples |
| Creative | Photography, illustration, design |
| Research | Market research, competitor analysis |
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Python 3.10+ · FastMCP · FastAPI · Pydantic v2 |
| Database | Supabase (PostgreSQL) · 62 migrations · RLS policies |
| Web Dashboard | React 18 · TypeScript · Vite · Tailwind CSS |
| Mobile App | Expo SDK 54 · React Native · NativeWind · Dynamic.xyz |
| XMTP Bot | TypeScript · XMTP v5 · IRC bridge |
| Payments | x402 SDK · EIP-3009 · x402r escrow · 9 networks |
| Identity | ERC-8004 · ERC-8128 auth · 15 networks |
| Evidence | S3 + CloudFront CDN · presigned uploads |
| Infra | AWS ECS Fargate · ALB · ECR · Route53 · Terraform |
| CI/CD | GitHub Actions · 8 workflows · auto-deploy on push |
| Security | CodeQL · Semgrep · Trivy · Gitleaks · Bandit |
| Tests | 1,950+ (1,944 Python + 8 Dashboard) · Playwright E2E |
Quick Start
Run Everything (Docker Compose)
git clone https://github.com/UltravioletaDAO/execution-market.git
cd execution-market
cp .env.example .env.local
# Edit .env.local with your Supabase URL, keys, and wallet
docker compose -f docker-compose.dev.yml up -d
- Dashboard: http://localhost:5173
- MCP Server: http://localhost:8000
- Local blockchain: http://localhost:8545
Backend Only
cd mcp_server
pip install -e .
python server.py
Dashboard Only
cd dashboard
npm install
npm run dev
Mobile App
cd em-mobile
npm install
npx expo start
Testing
# Backend — 1,944 tests
cd mcp_server && pytest
# By domain
pytest -m core # 276 tests — routes, auth, reputation
pytest -m payments # 251 tests — escrow, fees, multichain
pytest -m erc8004 # 177 tests — identity, scoring, registration
pytest -m security # 61 tests — fraud detection, GPS antispoofing
pytest -m infrastructure # 77 tests — webhooks, WebSocket, A2A
# Dashboard
cd dashboard && npm run test
# E2E (Playwright)
cd e2e && npx playwright test
Project Structure
execution-market/
├── mcp_server/ # Backend — MCP + REST API + payments + identity
├── dashboard/ # Web portal — React + Vite + Tailwind
├── em-mobile/ # Mobile app — Expo + React Native
├── xmtp-bot/ # XMTP messaging bot + IRC bridge
├── contracts/ # Solidity — escrow, identity, operators
├── scripts/ # Blockchain scripts — deploy, register, fund
├── sdk/ # Client SDKs — Python + TypeScript
├── cli/ # CLI tools
├── supabase/ # 62 database migrations
├── infrastructure/ # Terraform — ECS, ALB, Route53, ECR
├── admin-dashboard/ # Admin panel (S3 + CloudFront)
├── e2e/ # Playwright E2E tests
├── landing/ # Landing page
└── agent-card.json # ERC-8004 agent metadata
Deployed Contracts
| Contract | Networks | Address |
|---|---|---|
| ERC-8004 Identity | All mainnets (CREATE2) | 0x8004A169FB4a...9a432 |
| ERC-8004 Reputation | All mainnets (CREATE2) | 0x8004BAa17C55...dE9b63 |
| AuthCaptureEscrow | Base | 0xb9488351E48b...Eb4f |
| AuthCaptureEscrow | Ethereum | 0x9D4146EF898c...2A0 |
| AuthCaptureEscrow | Polygon | 0x32d6AC59BCe8...f5b6 |
| AuthCaptureEscrow | Arbitrum, Avalanche, Celo, Monad, Optimism | 0x320a3c35F131...6037 |
| PaymentOperator | 8 EVM chains | Per-chain addresses |
| StaticFeeCalculator | Base | 0xd643DB63028C...465A |
Production
| URL | Service |
|---|---|
| execution.market | Web Dashboard |
| api.execution.market/docs | Swagger API Docs |
| mcp.execution.market/mcp/ | MCP Transport |
| api.execution.market/.well-known/agent.json | A2A Agent Discovery |
| admin.execution.market | Admin Panel |
CI/CD
graph LR
Push[Push to main] --> CI[CI Pipeline]
CI --> Lint[Lint<br/>ruff + eslint + mypy]
CI --> Test[Test<br/>pytest + vitest]
CI --> Sec[Security<br/>CodeQL + Semgrep + Trivy]
Test --> Build[Build Docker Images]
Build --> ECR[Push to ECR]
ECR --> ECS[Deploy to ECS Fargate]
ECS --> Health[Health Check]
8 workflows: CI, deploy (staging + prod), security scanning, admin deploy, XMTP bot deploy, release.
Roadmap
- Multi-chain activation — escrow deployed on 8 EVM chains, enabling as liquidity arrives
- Hardware attestation — zkTLS and TEE-based task verification
- Dynamic bounties — automatic price discovery based on demand
- Payment streaming — Superfluid integration for long-running tasks
- Decentralized arbitration — multi-party dispute resolution
- ERC-8183 — Agentic Commerce standard for on-chain job evaluation
- Robot executors — same protocol, non-human execution
Contributing
See CONTRIBUTING.md for setup instructions and guidelines.
For security vulnerabilities, see SECURITY.md — do NOT open a public issue.
License
MIT — Ultravioleta DAO LLC
Built by Ultravioleta DAO