Every agent call, through a door you own.
Zerker sits in front of your agent traffic and turns raw calls — plain HTTP or MCP — into something you can catalog, route, guard, watch, and charge for. You run it. It never holds a key.
$ git clone https://github.com/zerkerlabs/gateway.git
$ cd gateway && make dev-auth
No signup. No account. Nothing phones home.
The wire
One request. Six checkpoints. Nothing skipped.
A call enters the gateway and leaves as an invocation record. Every stage below is enforced in-process, at request time — not configured once and trusted forever.
Authenticate
The gateway refuses to start without an OIDC issuer and audience. Not a warning — the process exits.
$ ZERKER_OIDC_ISSUER= make run fatal: OIDC issuer and audience are required
There is no bypass flag and no dev-mode shortcut in the binary. Local development
gets a throwaway mock issuer instead, booted by make dev-auth.
Sovereignty
Two things a hosted gateway structurally can't give you.
Not features someone else will ship next quarter — consequences of where the software runs and who holds the key.
One binary, one process, your hardware.
On-prem, inside your own VPC, or air-gapped. No JVM, no Python runtime, no sidecar, no agent to install next to it. Back it with Postgres when you want agents to survive a restart.
Verify is not custody.
The payment gate checks that a valid authorization exists before it forwards a call. It does not hold a private key to do that. If you later want to actually settle on-chain, you run the facilitator yourself — with your own gas key, on your own hardware.
The key never leaves. Zerker verifies the authorization a caller presents and forwards, or doesn't. Nothing to hand over, nothing to breach.
Self-host it. Charge for it. Hold no keys.
Nobody else does all three.
ContextForge and Lunar self-host but can't charge for a call. Cloudflare charges but cannot be self-hosted. MCPay does both — in TypeScript, with settlement delegated to a facilitator service. That's the whole field, and we show our working: vs MCPay, vs Cloudflare, vs ContextForge.
Payment required
What's free, and what isn't.
We put the answer behind the exact mechanism this page is selling. Present a payment authorization to read it. (It's a demo. Nothing is charged, and there is no wallet involved.)
X-Payment-Required: x402 scheme: exact network: base amount: 0.00 USDC (demo) resource: /pricing
OSS verifies and captures.
Commercial collects, bills, and governs.
| Capability | Tier |
|---|---|
| Gateway, catalog, MCP transport, proxy, auth, SSRF, per-tenant credential isolation | OSS |
| The x402 payment gate — verify an authorization before forwarding | OSS |
| Raw invocation and payment capture, readable over the API | OSS |
Self-hosting a facilitator — the /settle server |
OSS |
| Settlement and collection, fee modes, a managed facilitator | Commercial |
| Usage and revenue dashboard, quotas, spend limits, invoicing | Commercial |
| Multi-tenant control plane and governance | Commercial |
That gate you just walked through is the open-source half, and so is the settle server behind it — you can run the whole path yourself. What we sell is not permission to take money. It's not having to run the part that holds the key.
Run it
Up in one command. Yours in two.
Local development boots a throwaway mock issuer alongside the gateway and writes you a bearer token. Production points at your own IdP — Auth0, Okta, Google, whatever you already run.
The stack
One of three parts. Each useful alone.
Zerker carries the traffic. The other two carry the trust and the memory.