Media

Money

Dispatch

Company

WAVE · GPU Edge

Rent the GPU-second, not the GPU.

One authenticated request leases a GPU, runs your model, and bills the seconds it burned. Not the idle. Not the cold start. WAVE is media infrastructure for the agentic internet, and GPU compute is one metered rail on it: people and agents call the same route and pay for it per call.

● liveGET /v1/healthz on gpu.wave.online answers 200

Ask the route what it costs. It answers.

No account, no key, no sales call. Post to the route with nothing attached and the gateway quotes the call back to you: USDC on Base, priced per route, settled on chain. Run this line and read the number for yourself.

$ curl -s -X POST https://gateway.wave.online/v1/gpu/infer

402 {"x402Version":1,"error":"payment required",
     "accepts":[{"scheme":"exact","network":"base",
                 "maxAmountRequired":"1000",
                 "resource":"/v1/gpu/infer",
                 "asset":"USDC","maxTimeoutSeconds":60}]}

1000 is not a typo. USDC carries six decimals, so that quote is $0.001000 for this call. It came off the live route rather than a rate card, and it moves when the route moves.

Two doors. Neither one opens.

Call the spoke straight and it refuses: no authenticated organization reached it, so it starts no silicon. Call the gateway with a key it does not know and that refuses too, returning a request id you can quote back. There is no path to a GPU here that skips the meter.

spoke, direct401 unauthorized · missing x-wave-org
bad key401 AUTH_INVALID_KEY · request_id on every refusal
no payment402 the quote above, before anything runs

Eight meters, and none of them a guess.

A GPU-hour bills under one of eight names: four hardware tiers, l4, l40s, a100 and h100, each in a flex or reserved lease class. A deployment declares its tier and its lease class when it is provisioned. Declare neither and the spoke returns 503 instead of billing an hour under a tier nobody chose.

wave_edge_gpu_{l4,l40s,a100,h100}_{flex,reserved}_hours
run inferencePOST /v1/gpu/infer through api.wave.online
livenessGET /v1/healthz → 200, fail_closed:true
meteredexecution seconds, on the tier the deployment declared
tier unset503 no silicon, no meter name, no charge
x402USDC on Basefail-closededge

One key, one meter, one bill

Auth, entitlement and metering run at api.wave.online, so a GPU-hour lands on the same bill as your transports, your media and your data, behind the same key. You stop operating GPUs and start calling them.