SaaS productAgent commerce · market intelligence2025–2026

One of six team leads chosen to pioneer agent-to-agent commerce on Virtuals Protocol — AI agents that sell analysis to other agents and get paid on-chain.

An AI agent that finds work, delivers it, and gets paid. No human in the loop.

ACP Virtuals ProtocolView source
Stack
  • Python
  • TypeScript
  • Node
  • Virtuals ACP
  • Socket.IO + polling
  • JSON Schema
  • Hyperliquid API
  • USDC escrow
  • Deterministic analysis
  • LLM synthesis
  • tmux · watchdog
open source
ACP Virtuals Protocol homepage
ACP Virtuals Protocol mobile homepage
Snapshot

What shipped

One of six team leads chosen to pioneer agent-to-agent commerce on Virtuals Protocol — AI agents that sell analysis to other agents and get paid on-chain.

Timeline
2025–2026 · shipped; public reference build 2026
Systems delivered
  • Seller runtime
  • Typed offering manifests
  • Seven-route resource API
  • Deterministic analysis backend
  • On-chain delivery
  • Socket/poll failover
  • Process supervisor
Problem

The problem

When the customer is another piece of software, the product has to be a protocol.

Virtuals Protocol — then a roughly two-billion-dollar ecosystem — was launching its Agent Commerce Protocol: a way for AI agents to hire each other, with a buyer posting a job, funding escrow, and a seller delivering and getting paid. Six teams were asked to lead the launch and prove the protocol with real products. I led one of them.

Market intelligence is a natural first product for agents — other agents need it constantly and can evaluate it instantly.

The seller side had to be discoverable by machines, accept typed requests, produce a deliverable inside a time-boxed SLA, prove the work, and settle — around the clock, unattended.

Research

What's in the open

Two public repositories: a seller agent and a standalone analysis backend. Together they show the full shape of an agent that earns — discovery, intake, work, delivery, settlement — without any private strategy, credentials, or user data.

The public seller contains three paid offering definitions and seven resource routes. The backend contributes four focused analysis scripts that turn local market records into a single-symbol setup, ranked picks, a dashboard, or reusable context.

UX

Designing for a buyer that reads JSON

Discovery metadata is the storefront.

Each offering ships as a manifest: name, plain-language description, a JSON-schema requirement, a deliverable schema, an SLA with a refund policy, and a fixed USDC price. Three services are defined — a single-symbol trade setup, a best-signals scan across every monitored market, and a plain-English market dashboard.

A free-tier resource API lets a prospective buyer check supported symbols, market pulse, context freshness, and current load before paying — the agent equivalent of a shop window.

Key decisions
  • Fixed prices in USDC (0.25–0.50)because agents negotiate badly; a clear price with an SLA clears jobs faster than a haggle.
  • Refund written into the manifestbecause a buyer agent needs a machine-readable promise, not a support address.
Architecture

Runtime, backend, supervisor

A TypeScript CLI registers offerings on the ACP network and manages the seven-route resource server. The Python seller listens over Socket.IO, falls back to 30-second polling, validates each request, enforces minimum prices, routes the named service, and posts the finished deliverable on-chain.

The runtime prevents socket and poll workers from processing the same job, serializes chain calls to avoid nonce collisions, limits expensive scripts to three concurrent slots, and caches shared scans for five or ten minutes. Script execution gets bounded timeouts, three attempts, and jittered backoff.

The analysis backend reads per-symbol records—open interest, liquidation heatmap, smart/dumb divergence, cohort flow, funding, volatility, and indicator votes—and produces setups, ranked picks, or a dashboard. An LLM writes the reasoning; if it is unreachable, deterministic scoring and formatting still produce a deliverable.

A watchdog adds crash detection, exponential restart delay, health-file monitoring, stale-process termination, and a tmux daemon mode.

Job lifecycleFrom a buyer agent's request to settled payment, with no human step.
Buyer agentposts job, funds escrow
ACP networkSocket.IO / polling
Seller runtimevalidate → run → deliver
Analysis backenddeterministic + LLM
Hyperliquidlive pricing
On-chain deliverableproof of service, settlement
  • ACP networkSeller runtime: job
  • Seller runtimeAnalysis backend: request
  • Analysis backendHyperliquid: prices
  • Seller runtimeOn-chain deliverable: deliverable
  • On-chain deliverableBuyer agent: USDC released
Results

What's on the record

0 of 6Launch team leadsSelected by Virtuals Protocol for the ACP launch.Reported
~$2BEcosystem valuation at the timeReported
0Paid offerings definedTrade setup, best signals, market dashboard.Delivered
0Discovery & resource pathsTwo index aliases plus token list, symbol support, agent status, context status, and market pulse.Delivered
0Analysis scriptsSetup, ranked signals, dashboard, and reusable context.Delivered
0Concurrent analysis slotsBounded with a runtime semaphore.Delivered
0Script retry attemptsTimeouts plus jittered backoff.Delivered
0–3 minDelivery SLAPer offering manifest, with refund policy.Delivered
Delivered = shipped · Measured = instrumented · Reported = platform figure · Target = engineering budget · Early signal = first weeks
How results are reported

The launch engagement is finished and its client work stays private. Repository numbers come from the public reference build; the launch-role and valuation figures are reported context, not audited results. No revenue or job-volume figures are given.

Connects

Same pipelines, two customers

The analysis the seller agent sells is the same structured output that fills the signal feed in the AutoTrade Terminal. One data platform serves a human trader on a screen and an autonomous agent on a protocol.

For a local business the lesson is simpler: I build systems that run without babysitting, fail honestly, and get paid — whether the customer is a person or a program.

Have a problem that looks like this?

That's the kind of gap I close. Tell me what's breaking and I'll show you the system that fixes it.