New York to London in Under 100ms

Sertone works globally. No central server in the data path — direct encrypted connections between consumer and API owner.

Live Demo — This demo runs on a testnet using test USDC. When you install your own Sertone, it connects to the production blockchain with real USDC.

How Cross-Geography Routing Works

Consumer Premises
Your Sertone
Control Center
New York
▼ Request ▲ Response
Sertone Global Network
🔒 Encrypted 🔗 Automatic Payment 💰 USDC & USDT
Proprietary fully encrypted protocol with automatic settlement in USDC or USDT
▼ Request ▲ Response
Owner Premises
Their Sertone
Control Center
Paris

New York to Paris in under 100ms. No central server — routed through the Sertone Global Network, paid automatically.

What is the Sertone control center? A single Docker container you run on your own machine — a laptop, a Raspberry Pi, a cloud server. It connects you to the Sertone Global Network. Through its built-in web console, you browse services, register your own, manage your wallet, and monitor your earnings. Installation takes minutes. It is completely free, forever.

docker run -d --name my-sertone -p 3000:3000 -p 3002:3002 sertone/wrapper:latest

Why Cross-Geography Matters

Traditional API marketplaces route every call through a central server. That server becomes a bottleneck, a single point of failure, and a data surveillance point. Sertone eliminates the middleman: consumer and owner establish a direct encrypted connection, regardless of where they are in the world.

In this demo, the API owner's Sertone runs in New York, US, and the consumer's Sertone runs in London, UK. Despite crossing international borders, API calls complete in under 100ms — because there's no third-party server adding latency in the middle.

This architecture is ideal for latency-sensitive applications (trading, IoT, gaming), data sovereignty requirements (data never touches a third country), and enterprise deployments where compliance mandates direct data flows between known endpoints.

Live Demo — Run All 6 Protocols Across Borders

Multi-Protocol Latency Test

Run all 6 protocol APIs simultaneously from London to New York. See real latencies for each protocol on the map.

Live call through the Sertone Global Network. Install your own Sertone to make unlimited calls.
REST
GraphQL
SOAP
XML-RPC
SSE
JSON-RPC

Code Samples

# Call REST API via your local Sertone wrapper
$ curl -w "\nLatency: %{time_total}s\n" \
  -X POST https://localhost:3000/internal/call \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \
  -d '{"api_id_public": "bb-webhook-receiver", "method": "GET", "path": "/status"}'

# Run all 6 protocols in parallel
$ for api in bb-webhook-receiver bb-graphql bb-soap bb-xmlrpc bb-sse-ticker bb-jsonrpc; do
  curl -s -o /dev/null -w "$api: %{time_total}s\n" \
    -X POST https://localhost:3000/internal/call \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \
    -d "{\"api_id_public\": \"$api\", \"method\": \"GET\", \"path\": \"/\"}" &
done
wait
// JavaScript — parallel cross-geography calls
const protocols = [
  { name: 'REST',     api_id_public: 'bb-webhook-receiver', path: '/status' },
  { name: 'GraphQL',  api_id_public: 'bb-graphql',          path: '/',       params: { query: '{ users { id } }' } },
  { name: 'SOAP',     api_id_public: 'bb-soap',             path: '/balance' },
  { name: 'XML-RPC',  api_id_public: 'bb-xmlrpc',           path: '/' },
  { name: 'SSE',      api_id_public: 'bb-sse-ticker',       path: '/quote/AAPL' },
  { name: 'JSON-RPC', api_id_public: 'bb-jsonrpc',          path: '/' }
];

const results = await Promise.all(
  protocols.map(async (p) => {
    const start = performance.now();
    const res = await fetch('https://localhost:3000/internal/call', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_CONSUMER_SECRET'
      },
      body: JSON.stringify({ api_id_public: p.api_id_public, method: 'GET', path: p.path, params: p.params })
    });
    return { name: p.name, latency: Math.round(performance.now() - start), status: res.status };
  })
);

results.forEach(r => console.log(`${r.name}: ${r.latency}ms (HTTP ${r.status})`));
# Python — parallel cross-geography latency test
import asyncio
import aiohttp
import time

protocols = [
    ("REST",     "bb-webhook-receiver", "/status",     {}),
    ("GraphQL",  "bb-graphql",          "/",           {"query": "{ users { id } }"}),
    ("SOAP",     "bb-soap",             "/balance",    {}),
    ("XML-RPC",  "bb-xmlrpc",           "/",           {}),
    ("SSE",      "bb-sse-ticker",       "/quote/AAPL", {}),
    ("JSON-RPC", "bb-jsonrpc",          "/",           {}),
]

async def call(session, name, api_id, path, params):
    start = time.monotonic()
    async with session.post(
        "https://localhost:3000/internal/call",
        json={"api_id_public": api_id, "method": "GET", "path": path, "params": params},
        headers={"Authorization": "Bearer YOUR_CONSUMER_SECRET"}
    ) as resp:
        ms = round((time.monotonic() - start) * 1000)
        return f"{name}: {ms}ms (HTTP {resp.status})"

async def main():
    async with aiohttp.ClientSession() as s:
        tasks = [call(s, *p) for p in protocols]
        for result in await asyncio.gather(*tasks):
            print(result)

asyncio.run(main())

Deploy Globally in Minutes

1

Run the Docker Container

Pull and run the free Sertone wrapper on your own infrastructure. One command sets everything up.

docker run -d --name sertone \
  -p 3000-3003:3000-3003 -p 3005-3006:3005-3006 \
  -v sertone-data:/app/data \
  sertone/wrapper:latest
2

Open the Web Console

Navigate to https://localhost:3002/panel to access your Sertone control center. Create your account and connect your wallet on first launch.

3

Browse the Catalog

Click Catalog & SDKs in the sidebar. Search for APIs, try them in demo mode (free), then switch to production when ready.

4

Make Your First Call

Copy your consumer secret from Settings > Security, then use the code samples above to call any API from your own code.