Docs

Agents

Expose any private service to paying consumers — without opening firewall ports, without a public IP address, and without changing your existing setup.

The problem agents solve

Most API monetization requires your service to be publicly reachable. That means:

This rules out most private services: a Minecraft server on your home network, a private SAP instance, a local weather station, a corporate ERP, a game server behind CGNAT. These services work fine but cannot be sold because they are not reachable.

Agents solve this by reversing the connection. Instead of waiting for consumers to connect to your service, your service connects outbound to your Sertone control center. Your control center then relays consumer requests through that persistent connection — and your service never needs to be publicly visible.

How it works

1
Agent connects outbound
The agent process runs on the same machine as your private service. It connects out to your Sertone control center over a persistent WebSocket. No inbound ports required.
2
Consumer calls your API
The consumer makes a normal HTTPS call to your control center. The control center receives the request and identifies it as destined for an agent-connected service.
3
Request relayed through agent
The control center forwards the HTTP request through the agent's WebSocket connection. The agent receives it, calls your local service (on localhost), and sends the response back.
4
Response delivered, payment settled
The response travels back through the relay. The consumer gets the result. USDC settlement runs automatically — just like any other Sertone API.

Real-world uses

Your private serviceAPIs you can sell
Minecraft server (home network) Server status, player list, in-game commands, whitelist management
SAP / ERP system (corporate network) Inventory queries, order lookup, employee directory
Home automation hub (local network) Sensor readings, device control, energy usage
Private AI model (no GPU hosting fees) Text generation, classification, embeddings
Database / data warehouse Read-only query APIs, analytics endpoints, export feeds
Legacy system (SOAP, XML-RPC) Modernize to REST while keeping the original service untouched

Setting Up an Agent

Requirements

Step 1: Register your mesh domain

In your control center's web console, open the Mesh tab and select Register Domain. Choose a name under one of the available domain extensions (e.g. myserver.co.btw). Registration costs a small annual fee paid in USDC and handled automatically by your control center.

Step 2: Add a port route

Under Mesh → Routes, add a new route that maps your mesh domain and port to your local service:

Your control center immediately begins routing encrypted mesh traffic to your local service. No restart needed.

Step 3: Consumers subscribe and connect

Consumers on the Sertone network discover your domain, choose a subscription tier, and connect. All traffic travels through the encrypted mesh — your local service address is never exposed to consumers or to any intermediate node.

Security

Your service stays private

The agent connects outbound only. Your private service's IP address and network location are never exposed. Consumers never connect directly to your machine — all traffic goes through your control center, which you own and control.

Authenticated relay

The WebSocket connection between the agent and your control center is authenticated with the pairing token and secured with TLS. A compromised token can be revoked instantly from the control center — the agent disconnects within seconds.

Request filtering

Requests are filtered by your control center before being forwarded. Only requests for registered APIs reach your private service. Invalid paths, unauthorized consumers, and malformed requests are rejected at the control center before they ever touch the agent.

Example: Minecraft Server APIs

Here is a complete walkthrough of turning a Minecraft Java Edition server into a set of monetized APIs.

Architecture

Consumer → Sertone network → Your control center → Agent → Minecraft server
                                                          ↑
                                        (localhost, same machine, no port open)

The three APIs

GET /mc/status — Server status

{
  "online": true,
  "version": "1.21.4",
  "players_online": 7,
  "players_max": 20,
  "motd": "Welcome to the server!",
  "latency_ms": 12
}

GET /mc/players — Current player list

{
  "online": ["Steve", "Alex", "Notch"],
  "count": 3,
  "max": 20
}

POST /mc/say — Broadcast a message in-game

// Request
{ "message": "Hello from the API!" }

// Response
{ "sent": true, "at": "2026-04-19T22:00:00Z" }

How the Minecraft plugin works

A lightweight Minecraft plugin (Bukkit/Spigot/Paper) exposes these three endpoints locally on http://localhost:8123. The agent forwards consumer requests to this local server. The Minecraft server process and the API server never see the public internet.

Consumers call the APIs at normal Sertone API prices (e.g., $0.001/call). The plugin author earns 95% of every call, settled automatically in USDC.

Frequently asked questions

Can an agent expose multiple services?

Yes. Each registered API can target a different local URL. One agent can proxy requests to a Minecraft server, a local Python API, and a home automation hub — all at the same time.

What happens if the control center goes offline?

Consumers cannot reach your service while your control center is offline. When it comes back online, routing resumes automatically — no reconfiguration needed. The mesh routes around outages at the network level, but the exit point (your control center) must be reachable to forward traffic to your local service.

Does this work with any TCP service, not just HTTP?

Yes. The mesh relay operates at the TCP layer. Any TCP-based protocol — HTTP, HTTPS, WebSocket, a game server protocol, a database wire protocol — is relayed transparently. Your local service sees raw TCP connections and does not need to be aware of the mesh.

Can I expose the same service on multiple ports?

Yes. Add one route per port. Each route maps independently. For example: port 80 for HTTP, port 443 for HTTPS, port 25565 for a Minecraft protocol — all backed by the same or different local services.

Is there a cost to host a service through the mesh?

Domain registration costs a small annual fee in USDC — the same as registering any internet domain. Routing itself is free; you only pay once per year per domain. There are no per-request fees on the provider side. You earn 95% of every subscription payment made by consumers.