# FAQ

#### General

**What&#x20;*****is*****&#x20;x402 in a single sentence?**

x402 is an open‑source protocol that turns the dormant HTTP `402 Payment Required` status code into a fully‑featured, on‑chain payment layer for APIs, websites, and autonomous agents.

**Is x402 a CDP Product?**

*No.* While Coinbase Developer Platform provides tooling and are the creators of the standard, it is an open protocol (Apache-2.0 license) and you don't need any Coinbase products to use it. We look forward to further clarifying this distinction and making x402 a credibly neutral payment standard.

**Why not use traditional payment rails or API keys?**

Traditional rails require credit‑card networks, user accounts, and multi‑step UI flows.\
x402 removes those dependencies, enabling programmatic, HTTP-native payments (perfect for AI agents) while dropping fees to near‑zero and settling in \~1 second.

**Is x402 only for crypto‑native projects?**

No. Any web API or content provider—crypto or web2—can integrate x402 if it wants a lower‑cost, friction‑free payment path for small or usage‑based transactions.

#### Language & Framework Support

**What languages and frameworks are supported?**

Typescript, Python, and Go are reference implementations, but x402 is an **open protocol**.

Nothing prevents you from implementing the spec in Rust, Java, or other languages. If you're interested in building support for your favorite language, please [open an issue](https://github.com/coinbase/x402/issues) and let us know, we'd be happy to help!

#### Facilitators

**Who runs facilitators today?**

Coinbase Developer Platform operates the first production facilitator. The protocol, however, is **permissionless**—anyone can run a facilitator. Expect:

* Community‑run facilitators for other networks or assets.
* Private facilitators for enterprises that need custom KYT / KYC flows.

**What stops a malicious facilitator from stealing funds or lying about settlement?**

Every `x402PaymentPayload` is **signed by the buyer** and settles **directly on‑chain**.\
A facilitator that tampers with the transaction will fail signature checks.

#### Pricing & Schemes

**How should I price my endpoint?**

There is no single answer, but common patterns are:

* **Flat per‑call** (e.g., `$0.001` per request)
* **Tiered** (`/basic` vs `/pro` endpoints with different prices)
* **Up‑to** (work in progress): "pay‑up‑to" where the final cost equals usage (tokens, MB, etc.)

**Can I integrate x402 with a usage / plan manager like Metronome?**

Yes. x402 handles the *payment execution*. You can still meter usage, aggregate calls, or issue prepaid credits in Metronome and only charge when limits are exceeded. Example glue code is coming soon.

#### Assets, Networks & Fees

**Which assets and networks are supported today?**

| Network       | CAIP-2 ID                                 | Asset                               | Fees\*   | Status      |
| ------------- | ----------------------------------------- | ----------------------------------- | -------- | ----------- |
| Base          | `eip155:8453`                             | Any EIP-3009 token                  | fee-free | **Mainnet** |
| Base Sepolia  | `eip155:84532`                            | Any EIP-3009 token                  | fee-free | **Testnet** |
| Solana        | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | Any SPL token; Token-2022 (v2 only) | fee-free | **Mainnet** |
| Solana Devnet | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1` | Any SPL token; Token-2022 (v2 only) | fee-free | **Testnet** |

\* Gas paid on chain; Coinbase's x402 facilitator adds **zero** facilitator fee.

*Support for additional chains and assets is on the roadmap and community‑driven.*

**Does x402 support fiat off‑ramps or credit‑card deposits?**

Not natively. However, facilitators or third‑party gateways can wrap x402 flows with on‑ and off‑ramps.

#### Security

**Do I have to expose my private key to my backend?**

No. The recommended pattern is:

1. **Buyers (clients/agents)** sign locally in their runtime (browser, serverless, agent VM). You can use CDP Wallet API to create a programmatic wallet.
2. **Sellers** never hold the buyer's key; they only verify signatures.

**How do refunds work?**

The current `exact` scheme is a *push payment*—irreversible once executed. Two options:

1. **Business‑logic refunds:** Seller sends a new USDC transfer back to the buyer.
2. **Escrow schemes:** Future spec could add conditional transfers (e.g., HTLCs or hold invoices).

#### Usage by AI Agents

**How does an agent know what to pay?**

Agents follow the same flow as humans:

1. Make a request.
2. Parse the `PAYMENT-REQUIRED` header.
3. Choose a suitable requirement and sign a payload via the x402 client SDKs.
4. Retry with the `PAYMENT-SIGNATURE` header.

**Do agents need wallets?**

Yes. Programmatic wallets (e.g., **CDP Wallet API**, **viem**, **ethers‑v6** HD wallets) let agents sign `EIP‑712` payloads without exposing seed phrases.

#### Governance & Roadmap

**Is there a formal spec or whitepaper?**

* **Spec:** [GitHub Specification](https://github.com/coinbase/x402/tree/main/specs)
* [**Whitepaper**](https://www.x402.org/x402-whitepaper.pdf)

**How will x402 evolve?**

Tracked in public GitHub issues + community RFCs. Major themes:

* Multi‑asset support
* Additional schemes (`upto`, `stream`, `permit2`)
* Discovery layer for service search & reputation

**Why is x402 hosted in the Coinbase GitHub?**

We acknowledge that the repo is primarily under Coinbase ownership today. This is primarily to leverage our best-in-house security and auditing team to ensure the spec is safe and nobody accidentally creates legally ambiguous payment flows. We intend to eventually transfer ownership of the repo to a steering group or open-source committee.

#### Troubleshooting

**I keep getting `402 Payment Required`, even after attaching `PAYMENT-SIGNATURE`. Why?**

1. Signature is invalid (wrong chain ID or payload fields).
2. Payment amount is less than the required `amount` in the payment requirements.
3. Address has insufficient USDC or was flagged by KYT.\
   Check the `error` field in the server's JSON response for details.

**My test works on Base Sepolia but fails on Base mainnet—what changed?**

* Ensure you set `network: "eip155:8453"` (Base mainnet) instead of `"eip155:84532"` (Base Sepolia).
* Confirm your wallet has *mainnet* USDC.
* Gas fees are higher on mainnet; fund the wallet with a small amount of ETH for gas.

#### Still have questions?

• Reach out in the [Discord channel](https://discord.gg/invite/cdp)\
• Open a GitHub Discussion or Issue in the [x402 repo](https://github.com/coinbase/x402)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://x402.gitbook.io/x402/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
