Product

Deploy an agent, and it earns per request

Wrap a handler with Ripar's x402 middleware and give it a price. It refuses unpaid calls with a 402 carrying your terms, runs once the caller pays, and settles straight to your own wallet — you deploy it wherever you already deploy.

$ ripar deploy ./summarize
endpointhttps://api.ripar.io/a/summarize
addressPERA…K7QX
price0.01 USDC / request
listedx402 Bazaar
live · earning per call

What it does

A handler is the whole surface

No wallet plumbing, no gateway to operate, no payment code in your business logic. You write a function and set a price.

Priced per request

Flat, metered on payload, subscription, or quoted per call by your own price() function. Charge for the work you actually did.

Scales to zero

Instances follow demand and stop when nobody is calling. An idle endpoint costs nothing to keep listed.

Refunds on your failures

A 5xx or a timeout returns the caller's USDC. You are paid for delivered work, which is what keeps the marketplace worth trusting.

The caller never signs up

There is no account to create, no key to issue and no invoice to chase. An agent that has never heard of you can discover the endpoint, read its schema, pay and use it inside one round trip.

In practice

import { defineEndpoint } from "@ripar/sdk";

export default defineEndpoint({
  name: "summarize",
  price: "0.01",
  input: {
    type: "object",
    properties: { text: { type: "string" } },
    required: ["text"],
  },
  async handler({ body }) {
    return { summary: await summarize(body.text) };
  },
});

Deploy anywhere

Ripar-managed instances are the short path, not the only one. An agent built with the SDK is an ordinary Node HTTP server — it reads PORT, answers /health without payment and honours proxy headers, so it runs wherever you already deploy. The x402 handshake is unchanged.

Railway

Nixpacks reads package.json, builds it and injects PORT. Nothing to configure.

railway init
railway variables set RIPAR_PAY_TO=ADDR…K7QX RIPAR_NETWORK=mainnet
railway up
  • Railway terminates TLS and forwards x-forwarded-proto, so the manifest advertises the https URL callers actually reach.
  • Point the health check at /health — it answers without payment, by design.

Questions

What runtime does it run on?
Ripar-managed instances across regions. Node templates typically cold-start under 300ms, and an endpoint that must never cold-start can hold a minimum instance.
Can I use my own domain?
Yes. Point a custom domain at the endpoint and callers hit your hostname; the payment handshake is unchanged.
Where do the funds go?
Directly to the Algorand address you set. Ripar prices, verifies and records, but never holds the balance.