// toll/v1 | rev . preview
uptime 99.94% | . ms view docs →

// data for agents . payment per call

the toll booth
for autonomous agents.

Toll exposes normalized on-chain signal that costs every agent the same to compute alone. risk score, liquidity, freshness. one request, one HTTP 402, one micropayment, one JSON response. no keys, no accounts, no subscriptions. machine pays machine.

read the docs →
toll.network/v1/risk x402 . settling on base
// contract: 0xINSERT_ONCE_BONDED
$

          
. | cost: $0.0008 / call | pos: 1/4
X402 PAY-PER-REQUEST
JSON RESPONSE
SETTLEMENT: ON-CHAIN BASE
FIG. 01

endpoints

three primary calls. each returns a uniform envelope with `_live`, `latencyMs`, and a deterministic shape that an agent can parse in two lines.

EP. 01 GET /v1/risk

contract risk score

deployed bytecode check, ERC-20 metadata decode, totalSupply read, ownership state. a single 0..100 score with the heuristic breakdown attached as `breakdown[]`. 4-RPC failover, AbortController 4.5s per probe.

{
  "endpoint": "/v1/risk",
  "addr": "0x...",
  "symbol": "USDC",
  "riskScore": 92,
  "level": "safe",
  "breakdown": [
    { "ok": true, "line": "deployed bytecode found" },
    { "ok": true, "line": "ownership renounced" }
  ],
  "latencyMs": 184,
  "_live": true
}
EP. 02 GET /v1/liquidity

normalized liquidity

one shape across every active Base DEX. Aerodrome, Uniswap V3, others when the v0 indexer ships. shape returns now so agents can wire against the contract today.

{
  "endpoint": "/v1/liquidity",
  "addr": "0x...",
  "pools": [
    { "dex": "aerodrome", "tvlUsd": 142500 },
    { "dex": "uniswap-v3", "tvlUsd":  84200 }
  ],
  "totalTvlUsd": 226700,
  "latencyMs": 232,
  "_live": true
}
EP. 03 GET /v1/freshness

freshness + age

transaction count + first-seen block + holder concentration. distinguishes a one-hour-old launch from a six-month-old token at a glance, so the agent decides what to do about it.

{
  "endpoint": "/v1/freshness",
  "addr": "0x...",
  "txCount": 1240,
  "freshnessScore": 55,
  "latencyMs": 96,
  "_live": true
}
FIG. 02

the x402 cycle

four steps. one HTTP round-trip. zero keys.

  1. 01

    request

    the agent dispatches an HTTP GET to the endpoint. no header, no auth, no body.

    GET /v1/risk?addr=0x...
  2. 02

    402 payment required

    the server answers with HTTP 402 and the price + payment instructions inline.

    HTTP/1.1 402 Payment Required X-402-Asset: usdc-base X-402-Amount: 0.0008
  3. 03

    on-chain settle

    the agent submits a signed transfer of the exact amount. the server watches the mempool, confirms inclusion, releases the response.

    tx 0xabc...def confirmed in block 21,448,012
  4. 04

    response

    the JSON arrives on the same connection. the agent parses, uses the value, moves on. one cycle, no state on the client.

    HTTP/1.1 200 OK Content-Type: application/json
FIG. 03

pricing

per-call rates settle in USDC on Base. stake $TOLL for higher priority and elevated rate-limit caps. nothing here is a subscription.

per-call rate
0.0008 usdc / call
  • any endpoint
  • no minimum spend
  • settles per request via x402
  • default rate-limit: 20 rps per wallet
stake $TOLL for priority
SCOUT 1,500,000 $TOLL 60 rps . front-of-queue routing
FLEET 12,500,000 $TOLL 200 rps . websocket subscribe . SLA
CORE 75,000,000 $TOLL unmetered . custom region pinning . vote on endpoint roadmap

stake values are denominated in $TOLL. final thresholds set at bonding.

FIG. 04

live status

the page hits /v1/ping every 5s and prints the result here. one Base block, one server, no smoothing.

UPTIME 24H 99.94% FIG. 04.01
p50 LATENCY . ms FIG. 04.02
LAST BLOCK . FIG. 04.03
CALLS LAST 5m . FIG. 04.04
FIG. 05

tokenomics

40% per-call revenue routed to buy-back-and-burn of $TOLL
35% paid to active stakers proportional to their bonded $TOLL
20% funds the infra: RPC nodes, indexer compute, regional pops
5% grants for builders contributing new endpoints to v1 spec

supply: 100,000,000,000 $TOLL. bonding via Clanker. no team allocation, no presale, no allowlist.