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:
- A static public IP address
- Firewall rules allowing inbound traffic
- A domain name and TLS certificate
- Exposure of your server's location to the public internet
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
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.
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.
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.
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 service | APIs 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
- Your Sertone control center already installed and running
- A service running locally on the same machine as your control center (on any port)
- No public IP, no firewall changes, no TLS configuration needed
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:
- Domain — your registered mesh name (e.g.
myserver.co.btw) - Port — the port consumers connect on (e.g.
80) - Backend — where your service actually runs (e.g.
localhost:8080) - Billing model — subscription tiers you offer (free / hourly / daily / monthly)
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.