# Select the intended MPP charge

Preserve complete offers and require one explicit supported match before authorization.

Canonical: https://402signal.com/developers/native-mpp

## Select the intended MPP charge

Use this for supported native `WWW-Authenticate: Payment` offers. Base `evm.charge` and Algorand charge have separate adapters. x402 through mppx is a different path.

Pin the profile, realm, network, asset, recipient and relevant fee/price limits. Exactly one supported offer must match. Two matches remain ambiguous even at the same price. Response order is not a spending policy.

### Preserve the full offer

Retain the original header, body and alternate payment header. The verifier rebuilds selection from that evidence. Only the selected original challenge reaches the SDK. Do not simplify the response before verification or select another offer after signing fails.

### Base charge

Use `prepareVerifiedNativeBaseMpp` from the reviewed MPP client. Supply retained observation evidence, the trusted log key, exact GET request, current challenge and buyer policy. Preparation does not sign. Your application durably claims the authorization identity and reserves its budget before `createCredential({authorize})`. Submit the resulting credential once to the exact merchant request.

This version covers Base USDC EIP-3009. It does not cover splits, Permit2 or arbitrary tokens. [Base setup and complete contract](https://github.com/402signalhq/402signal/blob/main/integration/mpp-client/NATIVE.md).

### Algorand charge

Use the verified Algorand adapter with its explicit sponsor or buyer-paid fee policy, durable budget, signer and bounded transport. A merchant acknowledgment is not independent chain confirmation. A lost response remains uncertain until the original payment is reconciled.

[Algorand setup and reference integration](https://github.com/402signalhq/402signal/blob/main/integration/mpp-algorand/README.md) · [Full-response selection contract](https://github.com/402signalhq/402signal/blob/main/integration/mpp-client/NATIVE_SELECTION.md).

Check the matching released artifact and hosted profile before paying for an observation. Source support is not universal merchant compatibility. Local POST paths do not broaden hosted POST support.

Give this task to your coding agent

```
Inspect a supported native MPP charge. Read https://402signal.com/developers/native-mpp and the exact adapter contract. Distinguish native MPP from x402 through mppx. Preserve the complete original offer and require one explicit match. Start with synthetic tests. Keep authorization and submission separate and durable. Do not infer support for all networks, assets, intents or request bodies.
```

Copy integration brief
