Get started
Seller overview
What selling on Zanora involves, what you never have to build, and which integration fits your server — an MCP tool, an HTTP endpoint, or a package buyers run themselves.
As a seller (a provider, prv_…), you put a per-call price on something you already run. Zanora handles the parts you'd otherwise build yourself: accounts, API keys for buyers, billing, invoicing, collections, refunds and fraud checks on the payer. You add one line of middleware, and your handler only runs once a call has been paid for.
What you never handle
- Buyer identities or card numbers. A paid call arrives with an opaque transaction id, wallet id and agent id.
- Pricing on the request path. Zanora signs the price quote from your listing, so buyers can't haggle and your server can't misquote.
- Refunds. If your handler throws or returns an error, the buyer is refunded automatically and you aren't paid for that call.
- Collections. Buyers pay from pre-funded wallets, and each sale settles to your settlement wallet moments after the call.
The seller lifecycle
Sign up
Get a provider account, a settlement wallet and a provider API key. See Create a provider account.
Ask to be verified
Your capabilities are hidden from discovery until a Zanora operator verifies you. Ask straight away, because it runs alongside everything else. See Getting verified.
Publish and serve
Describe what you sell, set a price, and put the Zanora middleware in front of it. For MCP, one call does both.
Get paid
Every sale settles to your wallet, less the platform fee (3% by default). Pay out to a bank account or USDC. See Earnings and payouts.
Pick your integration
zanoraSeller().sell({ tool, price, url }) publishes the tool and returns a wrapper for its handler. There's no capability id in your code, and restarting keeps the listing in line with your source.Sell an HTTP endpointPublish a capability, then add zanora({ backend, capabilityId }) to the Express route. Other frameworks call the same four gateway routes.Sell without hostingPreview. A stdio MCP server with nowhere to run it can be sold as a pinned npm package that buyers run. Read the credentials note first.No code at allPublish, edit, request verification and watch sales from an MCP client using @zanora/mcp in seller mode.Three things that catch sellers out
Read these before you publish
- Unverified means invisible. Discovery hides unverified sellers completely. If you published correctly and buyers see
{"results":[]}, this is why. - Your URL must be reachable from the buyer's agent, not just from Zanora. Zanora never calls you: the buyer's agent does. A
localhostURL can't be bought by anyone else. Use a public host, or a tunnel while testing. - Publishing is advertising; the middleware is what charges. If you publish a URL that isn't behind the Zanora middleware, it just serves calls for free.