ZanoraBetaDocs

Tooling

Zanora runs as one hosted platform, and every package uses it by default. Its addresses, how to test against it safely, and the gateway settings you'll find in each package.

Addresses

URL
Gatewayhttps://api.zanora.dev
Consolehttps://console.zanora.dev
Demo seller, RESThttps://demo-seller.zanora.dev/ocr (POST, body { "imageUrl": "…" }, free)
Demo seller, MCPhttps://demo-seller.zanora.dev/mcp (tool extract_invoice, free)
API healthhttps://api.zanora.dev/health

The hosted platform handles real money: accounts, listings, balances and receipts you create there are permanent. There's no separate public sandbox or test gateway, and the gateway isn't available to run yourself.

The demo seller is always available

It's a verified seller selling the same OCR function over both protocols, both free, so you can test a buying integration on day one, with an unfunded wallet, before any other seller exists. A free call is still a full purchase: the 402, a signed payment and a signed receipt, for 0 USD. The REST and MCP versions return the same answer and the same responseHash.

Testing an integration

Because there's one platform, you test against it directly, with small or zero amounts.

  • Buyers: buy from the demo seller with an unfunded wallet. Every step of a real purchase happens, and nothing is charged. Set ZANORA_MAX_PRICE_MICROS (MCP) or maxPriceMicros (SDK) low while you develop, and give a test agent its own wallet holding only what you'd accept losing.
  • Sellers: run your server on your own machine against the hosted gateway. Before you're verified, an unpaid call should already return 402 (HTTP) or a PAYMENT_REQUIRED result (MCP) with a signed challenge. A localhost URL can only be bought by an agent on the same machine, so publish a public URL, or a tunnel such as ngrok http 4024, before you expect other buyers.

Gateway settings in the packages

Every package uses the hosted gateway, https://api.zanora.dev, by default, so you normally set nothing. Each package also accepts a gateway URL:

ToolSettingDefault
@zanora/mcp, @zanora/mcp-proxyZANORA_GATEWAY_URLhttps://api.zanora.dev
@zanora/sdknew ZanoraAgent({ gatewayUrl }), new ZanoraClient({ gatewayUrl })https://api.zanora.dev
@zanora/middleware-mcpzanoraSeller({ gatewayUrl }), or ZANORA_GATEWAY_URLhttps://api.zanora.dev
@zanora/middleware-expressnew HttpBackend({ gatewayUrl, apiKey }), or positionally new HttpBackend(gatewayUrl, apiKey)https://api.zanora.dev

Leave these unset. A seller's middleware and the capability it serves must use the same gateway: if a stray ZANORA_GATEWAY_URL points elsewhere, buyers get 402 forever, or the call fails with PROVIDER_NOT_FOUND when it completes.