Skip to main content

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.

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.

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:
FieldValue
Service NameA short identifier — for example, weather-api
DescriptionOptional
Base URLThe origin Proceeds proxies to — for example, https://api.example.com
ModeTestnet while you build, Mainnet when you ship
NetworksAt least one — see Supported blockchains
Auth MethodHow 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:
FieldValue
NameHuman-readable label
SlugURL-safe identifier — appears in the generated payment URL
Allowed HTTP MethodsGET, POST, PUT, PATCH — pick at least one
Target URLThe upstream path the paywall proxies to
PriceThe amount in USDC
NetworksSubset of the service’s networks
Custom HeadersForwarded to upstream — optional
Query ParametersForwarded to upstream — optional
EnabledDefaults to on
Use realistic slugs (current-weather, historical-forecast) — they show up in your transactions and events.

3. Copy the generated payment URL

Every paywall exposes an x402 endpoint, and Tempo-enabled paywalls also expose an MPP endpoint:
https://myproceeds.xyz/api/x402/pay/{serviceId}/{slug}
https://myproceeds.xyz/api/mpp/pay/{serviceId}/{slug}
Replace {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 with 402 Payment Required and a challenge.
curl -i https://myproceeds.xyz/api/x402/pay/{serviceId}/{slug}
A 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.