Minimal Express API that accepts [x402](https://portal.thirdweb.com/x402) payments using thirdweb’s `settlePayment` and facilitator. **Production target:** Chain **138** with **cUSDT V2 / cUSDC V2** (ERC-2612 / ERC-3009). **Default demo:** Arbitrum Sepolia + USDC so you can run the server without a permit-capable Chain 138 token in `.env`.
x402 requires the payment token to support **ERC-2612 permit** or **ERC-3009** when using thirdweb facilitator. For **Alltra (651940)** we use **local verification** (no facilitator): server returns 402 + `PAYMENT-REQUIRED`, client pays USDC on 651940 and retries with `PAYMENT-SIGNATURE` + `txHash`; server verifies settlement on-chain. See [X402_ALLTRA_ENDPOINT_SPEC.md](../docs/04-configuration/X402_ALLTRA_ENDPOINT_SPEC.md).
- **Default:** The API uses **Arbitrum Sepolia** and default USDC so you can test without custom chains.
- **Alltra (651940) + USDC:** Set `X402_USE_ALLTRA=true` and `SERVER_WALLET_ADDRESS` in `.env`. Optional: `CHAIN_651940_RPC_URL`. Local verification is used; `THIRDWEB_SECRET_KEY` is not required for the Alltra path.
- **Chain 138:** Set `X402_USE_CHAIN_138=true` and optionally `RPC_URL_138`. Use **V2** compliant USD token addresses from [CHAIN138_X402_TOKEN_SUPPORT.md](../docs/04-configuration/CHAIN138_X402_TOKEN_SUPPORT.md) in the API’s price config (V1 cUSDT/cUSDC are not x402-capable).