> ## 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.

# Concepts

> Services, paywalls, transactions, events, and wallets — the building blocks of Proceeds.

Proceeds has five primitives. You configure the first two; the next three are emitted automatically as your paywalls run.

## Service

A **Service** groups related endpoints under one configuration. Use one service per API product.

A service defines:

* **Base URL** — the upstream origin Proceeds proxies to
* **Mode** — `Testnet` or `Mainnet`
* **Networks** — payment-capable chains accepted by every paywall in the service
* **Auth method** — credentials Proceeds attaches to upstream requests, kept inside Proceeds and never exposed to the client

Supported upstream auth methods: `none`, `bearer`, `token`, `x-api-key`, `custom-header`, `query-param`, `bearer-customer`, `x-api-key-secret`, `json-body-field`. See [Forward upstream auth](/guides/forward-upstream-auth).

## Paywall

A **Paywall** protects one route on a service. You set the price; Proceeds enforces it.

A paywall defines:

* **Slug** — appears in the public URL
* **Target URL** — the upstream path Proceeds proxies to
* **Allowed HTTP methods** — `GET`, `POST`, `PUT`, `PATCH`
* **Price** — in USDC
* **Networks** — chains accepted for this endpoint
* **Custom headers and query parameters** — forwarded to the upstream
* **Enabled state**

Each paywall exposes generated URLs:

```
https://myproceeds.xyz/api/x402/pay/{serviceId}/{slug}
https://myproceeds.xyz/api/mpp/pay/{serviceId}/{slug}
```

Paywalls run as a proxy: `targetType: "PROXY"`, `fulfillmentMode: "PROXY"`. Proceeds is the payment gate and the request proxy; your origin is unchanged.

## Transaction

A **Transaction** is one payment attempt against a paywall. Transactions move through these states:

| State       | Meaning                                                                   |
| ----------- | ------------------------------------------------------------------------- |
| `Pending`   | Payment attempt exists but is not yet validated and proxied.              |
| `Completed` | Payment was validated and the protected request was proxied successfully. |
| `Failed`    | Payment or fulfillment failed.                                            |

[Inspect transactions →](/dashboard/transactions)

## Event

An **Event** is a single step in a request's lifecycle. Proceeds emits the following event types for every protected request:

* `Request`
* `Payment`
* `Fulfillment`
* `Error`

Use Events to debug where a flow stopped: did the request reach the paywall, did payment occur, was fulfillment triggered, where did it fail?

[Trace events →](/dashboard/events)

To be notified of events on your own server instead of inspecting them in the dashboard, configure [Webhooks](/dashboard/webhooks).

## Wallet

A **Wallet** view shows balances across rails (Circle Nanopayments) and chains (Tempo, Base, Arc, HyperEVM). Withdrawals route per-chain.

[See balances →](/dashboard/wallet)
