This is the fastest path from “I have an API” to “I’m charging USDC for it.” You’ll create a service that wraps your origin, add a paywall on a single route, and copy the generated payment URL.Documentation Index
Fetch the complete documentation index at: https://docs.myproceeds.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Before you start
You need:- An HTTP API with a public base URL — for example
https://api.example.com - A Proceeds account
- A wallet you control on a supported network — see Supported blockchains
- Testnet USDC if you’re starting in testnet mode — drip some from the Testnet USDC Faucet
1. Create a service
A service is the container for related paywalls. One service per API product is the right default. In the dashboard, go to Paywalls and click New Service. Fill in:| Field | Value |
|---|---|
| Service Name | A short identifier — for example, weather-api |
| Description | Optional |
| Base URL | The origin Proceeds proxies to — for example, https://api.example.com |
| Mode | Testnet while you build, Mainnet when you ship |
| Networks | At least one — see Supported blockchains |
| Auth Method | How Proceeds authenticates to your upstream — see Forward upstream auth |
A service requires a name, a base URL, and at least one network. Everything else can be edited later.
2. Add a paywall
A paywall protects one route. Inside your service, click New Paywall:| Field | Value |
|---|---|
| Name | Human-readable label |
| Slug | URL-safe identifier — appears in the generated payment URL |
| Allowed HTTP Methods | GET, POST, PUT, PATCH — pick at least one |
| Target URL | The upstream path the paywall proxies to |
| Price | The amount in USDC |
| Networks | Subset of the service’s networks |
| Custom Headers | Forwarded to upstream — optional |
| Query Parameters | Forwarded to upstream — optional |
| Enabled | Defaults to on |
3. Copy the generated payment URL
Every paywall exposes an x402 endpoint, and Tempo-enabled paywalls also expose an MPP endpoint:{serviceId} and {slug} with the values from your dashboard. This is the URL you give to clients — they’ll never see your origin.
4. Verify the paywall returns 402
Call the URL with no payment headers. Proceeds should respond with402 Payment Required and a challenge.
402 response means your service is configured correctly and ready to accept payment.
Next
Test your paywall
Pay the challenge and confirm the upstream response is proxied back.
Monitor payments
Watch transactions and events as real requests come in.

