> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wurk.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Methods

> Choose the right payment rail: x402, MPP Tempo, or MPP Solana

## Rails at a glance

<CardGroup cols={3}>
  <Card title="x402" icon="coins">
    Endpoint style: `/{network}/*`
  </Card>

  <Card title="MPP (Tempo)" icon="diagram-project">
    Endpoint style: `/mpp/*`
  </Card>

  <Card title="MPP (Solana)" icon="wallet">
    Endpoint style: `/mpp-solana/*`
  </Card>
</CardGroup>

## Protocol differences

| Topic                  | x402                             | MPP                             |
| ---------------------- | -------------------------------- | ------------------------------- |
| Challenge header       | `Payment-Required` + `accepts[]` | `WWW-Authenticate: Payment ...` |
| Retry header           | `PAYMENT-SIGNATURE`              | `Authorization: Payment ...`    |
| Typical success signal | JSON `paid: true`                | `Payment-Receipt` header + JSON |
| Discovery source       | `/.well-known/x402`              | OpenAPI (`/openapi*.json`)      |

## Naming differences to watch

| x402        | MPP          |
| ----------- | ------------ |
| `reposts`   | `xreposts`   |
| `comments`  | `xcomments`  |
| `bookmarks` | `xbookmarks` |
| `dex`       | `dex-rocket` |

## Amount defaults and requirements

* x402 social quick routes often allow omitted `amount` and default to `40`.
* MPP social routes usually require explicit `amount` (or equivalent winners alias).
* Many quick social actions are priced per slot (commonly `$0.025`, with some follower/member flows at `$0.04`).

## x402 flow

1. Call paid `/{network}/...` endpoint without payment.
2. Receive `402` with requirements.
3. Sign challenge data and retry with `PAYMENT-SIGNATURE`.
4. Store returned `jobId` and `secret` when present.

## MPP flow

1. Call `/mpp/...` or `/mpp-solana/...` without `Authorization`.
2. Receive `402` with payment challenge in `WWW-Authenticate`.
3. Build payment credential from challenge.
4. Retry with `Authorization: Payment ...`.
5. Store `Payment-Receipt`.

## Choosing the right rail

<Tabs>
  <Tab title="Choose x402 when">
    * You already use x402 clients (`@x402/fetch`).
    * Your workload is mostly on `/{network}` endpoint families.
    * You want simple challenge -> signature -> retry behavior.
  </Tab>

  <Tab title="Choose MPP when">
    * You use Payment credentials in your agent stack.
    * You want OpenAPI-driven discovery for `/mpp` rails.
    * You need both Tempo and Solana MPP variants.
  </Tab>
</Tabs>

## Practical rail selection

| Situation                         | Recommended choice | Why                                      |
| --------------------------------- | ------------------ | ---------------------------------------- |
| First-time WURK integrator        | x402 on Solana     | Fastest path to first paid success       |
| Existing Payment credential stack | MPP Tempo          | Native auth model for MPP clients        |
| Solana MPP-native infra           | MPP Solana         | Strong alignment with Solana MPP tooling |

## Runtime availability

* x402 routes are generally available with the x402 server rail.
* MPP Tempo routes depend on MPP Tempo enablement.
* MPP Solana routes depend on MPP Solana enablement.
* OpenAPI documents can be reachable even when specific runtime rails are disabled.

## Canonical references

* `https://wurkapi.fun/.well-known/x402`
* `https://wurkapi.fun/openapi-x402.json`
* `https://wurkapi.fun/openapi.json`
* `https://wurkapi.fun/openapi-mpp-solana.json`
* `https://wurkapi.fun/skill.md`
