PYLON
Managed adapter gateway

Power up your wallet. Pylon routes the call.

Turn a funded wallet into a buyer for private APIs, yield plans, and paid agent actions. Pylon handles x402 challenge verification, settlement, routing, and the ledger.

6
Live services
12.4K
Gateway calls settled
2 hops
Buyer -> Pylon -> Adapter
$0.01
Transparent platform fee
Gateway stack
Pylon Wallet data Yield routes Private adapters USDC Base OWS SQLite Managed providers Request IDs Settlement logs
How it works

From catalog to paid response in four steps

The buyer uses an OWS-compatible wallet flow, but the seller never has to expose native x402. Pylon is the gateway in the middle.

01

Discover the catalog

Agents fetch the machine-readable catalog URL and inspect live managed-adapter services with transparent pricing.

02

Hit the Pylon endpoint

The first request returns `402 Payment Required` with the `PAYMENT-REQUIRED` header and the exact price for the route.

03

Retry with payment

The agent retries with `PAYMENT-SIGNATURE`, Pylon verifies and settles, then forwards to the private adapter.

04

Receive normalized output

The adapter calls the upstream provider, Pylon writes the ledger row, and the agent gets a clean response plus `PAYMENT-RESPONSE`.

Buyer guide

This is a paid x402 POST endpoint

If the buyer is Claude, Codex, Cursor, or another agent, it should not treat `invoke_url` as a free GET URL. The buyer should use the installed OWS wallet, pay on Base in USDC, send the exact JSON body shown in `request_example`, and let OWS handle the `402 Payment Required` retry.

What the buyer should do

Use an installed OWS wallet to handle the x402 payment flow before retrying the paid request.

Recommended command

          
        
Catalog

Managed services from multiple providers

The catalog is fetched live from `/.well-known/pylon-catalog.json`. It lists the current paid services from multiple upstream providers, plus pricing, examples, and x402 metadata without hardcoding a single brand.

Sort:
Loading live catalog
Fetching `/.well-known/pylon-catalog.json`.
See the managed-adapter pattern →
Seller story

Seller owns the Web2 API. Pylon owns monetization.

Milestone one ships `managed_adapter` only: the seller keeps their private upstream behind a narrow adapter, and Pylon handles payment, routing, and the public surface.

01

Private by default

The seller's upstream API stays private. Pylon only talks to the adapter, never directly to the upstream provider.

02

Managed adapter only

Curated adapter services map public slugs to internal routes, timeout budgets, and auth modes without exposing arbitrary onboarding yet.

03

Transparent take rate

Each paid request splits cleanly into buyer charge, seller payout, and a visible platform fee. The ledger records every settlement outcome.

Publisher guide

How to add a new paid service to Pylon

Today the onboarding path is curated, not self-serve. A publisher adds a private adapter route, registers a public service blueprint, sets provider env vars, and redeploys. The buyer still sees one clean x402 endpoint.

4-step flow
01

Wrap the upstream API in a private adapter

Create one narrow route in your adapter app that calls the upstream provider with your secret API key and normalizes the response shape.

02

Register the public service in the catalog

Add a provider blueprint plus one service blueprint with the public slug, request example, response example, pricing, and the internal adapter route.

03

Set secrets only in runtime env

Put upstream credentials in Railway variables for the adapter service. Do not commit API keys to the repo, and do not expose the upstream base URL to buyers.

04

Deploy and verify the paid path

Redeploy the adapter and `pylon-app`, confirm the new slug appears in the live catalog, then run one unpaid `curl` and one paid `ows pay request` smoke test.

What to edit
Adapter route

`apps/<provider>-adapter/src/app.js`

Catalog registration

`packages/config/src/index.js`

Live verification

`/.well-known/pylon-catalog.json` plus `ows pay request` against `/v1/<service-slug>`

railway variables set PROVIDER_API_KEY=*** --service <provider>-adapter
railway up -s <provider>-adapter
railway up -s pylon-app

curl https://pylon-app-production.up.railway.app/.well-known/pylon-catalog.json | jq
ows pay request --wallet <ows-wallet-name> --method POST --body '<json-from-request_example>' https://pylon-app-production.up.railway.app/v1/<service-slug>

Get started

Give an agent the catalog.
Let Pylon handle the rest.

Copy the catalog URL, hand it to Claude, Codex, or Cursor, and let the agent discover the paid services that Pylon monetizes and forwards.

Browse Live Services