← Marketplace

Open Topo Data

Elevation lookups from Open Topo Data across public DEM datasets: SRTM 90m, ASTER 30m, and the ETOPO1 bathymetry model. Machine-payable per request.

Robinhood Chain

Offers

OfferEndpointPrice
ASTER 30m elevation
Elevation from the ASTER GDEM. Pass ?locations=27.98,86.92.
/m/opentopodata/aster30m0.002 USDG
ETOPO1 bathymetry
Land elevation and ocean depth. Pass ?locations=40,-30.
/m/opentopodata/etopo10.002 USDG
SRTM 90m elevation
Elevation from NASA SRTM. Pass ?locations=27.98,86.92 or a pipe-separated list.
/m/opentopodata/srtm90m0.002 USDG

Machine-readable: openapi.json with x-payment-info offers.

Try it live

Run the full MPP flow from your browser: catch the 402, sign the payment with your wallet, and watch it settle on-chain.

Sign in with your wallet to try an endpoint straight from the browser.

Pay with an agent

Any MPP or x402-compatible client works. With mppx, payment is automatic:

// x402 exact scheme (permit2) on Robinhood Chain
// 1. GET the endpoint, read the payment-required header (base64 JSON)
// 2. Sign PermitWitnessTransferFrom against Permit2 for the advertised offer
//    (spender = x402ExactPermit2Proxy, witness.to = merchant wallet)
// 3. Retry with the payment-signature header; settlement tx arrives
//    in the payment-response header
const res = await fetch('https://api.meshgateway.co/m/opentopodata/aster30m', {
  headers: { 'payment-signature': signedPaymentPayload },
})

Or inspect the challenge yourself:

curl -i https://api.meshgateway.co/m/opentopodata/aster30m
# HTTP/1.1 402 Payment Required
# WWW-Authenticate: Payment id="…", method="evm", intent="charge", …