The Synthesis Hackathon • Targets: Ship Something Real with OpenServ ($3.75K), Best OpenServ Build Story ($500)
OpenServ is a platform for multi-agent behavior, agentic economy products, and x402-native services. This project implements a multi-agent coordinator that discovers agents, decomposes tasks, assigns work, and aggregates results—with x402 payment integration for paid agent services.
- OpenServ Integration — Register agents, discover by capability, request tasks, publish results, browse marketplace
- Multi-Agent Coordination — Decompose complex objectives into subtasks, assign to discovered agents, monitor and aggregate
- x402 Payments — Create paid services, handle payments, consume services with payment
- Mock Mode — All external calls use realistic mock data when API keys are not set
npm install
npm run demoDry run (planning only, no execution):
npm run demo:dry06-openserv-agent/
├── src/
│ ├── openserv.ts # OpenServClient — platform integration
│ ├── coordinator.ts # AgentCoordinator — task decomposition & orchestration
│ ├── x402.ts # X402ServiceProvider — agent-to-agent payments
│ ├── agent.ts # OpenServAgent — main orchestrator
│ └── build-story.ts # Build story for hackathon track
├── scripts/
│ └── demo.ts # Demo script
├── package.json
├── tsconfig.json
└── README.md
Create a .env file (optional):
OPENSERV_API_KEY=your_openserv_api_key
OPENSERV_API_URL=https://api.openserv.org/v1
# For x402 (optional, uses mock otherwise)
RPC_URL=https://eth-mainnet.g.alchemy.com/v2/...
PRIVATE_KEY=0x...
PAYMENT_RECIPIENT=0x...Without these, the project runs in mock mode with realistic simulated data.
registerAgent(name, capabilities)— Register on OpenServdiscoverAgents(capability)— Find agents with specific skillsrequestTask(agentId, task)— Delegate a taskpublishResult(taskId, result)— Publish completed taskgetMarketplace()— Browse available services
decompose(task)— Break task into subtasksassign(subtasks)— Assign to discovered agentsmonitor(taskIds)— Monitor progressaggregate(results)— Combine resultscoordinatePipeline(task, dryRun)— Full pipeline
createService(name, price)— Expose a paid servicehandlePayment(request)— Process x402 paymentconsumeService(url, payment)— Pay for and consume a service
launchSwarm(objective, dryRun)— Launch multi-agent swarmrunDemoScenario()— Run complete demo
For the "Best OpenServ Build Story" track, run the demo and use generateBuildStory() from src/build-story.ts to get the full narrative. The build story covers our experience, OpenServ's role, and lessons learned.
MIT