Docs Layers

Gateway

Live on testnetRuns on web4 Cloudflare Workers

A browser cannot call a contract, so a gateway does. It turns GET /posts/5 into a web4_get view call and returns the page. Quay ships its own gateway, and the public testnet.page gateway serves every web4 account too.

Commands

Terminal
quay gateway --account harbour-board.testnet
# serving harbour-board.testnet at http://127.0.0.1:8787/
cd gateway/worker && npx wrangler deploy

How Harbour Board uses it

  1. The Board answers on its Cloudflare Workers host, on harbour-board.testnet.page, and on quay gateway on your machine.
  2. On 2026-11-10 testnet.page answered every account with HTTP 400 for several hours. The Workers hosts exist because of that.

Proof on testnet

The Workers host answers/_quay/health
The public gatewayharbour-board.testnet.page

Check it without a key: sh scripts/judge.sh tries the Workers host, then testnet.page, then a local gateway, and prints which one answered. The view helper is in the repository README, and scripts/judge.sh runs these checks.

What you trust

testnet.page is one operator, and the Workers hosts are one Cloudflare account. Neither can change your pages, only stop serving them. quay gateway serves the same site from your machine, and the single-file build runs on Node, Deno or Bun.

Limits

HostsThe account host only. An extra label such as www. fails TLS on testnet.page.
CertificateA new testnet.page host gets its certificate on the first request, usually in under 2 minutes

Every flag is in the command reference, generated from quay gateway --help.