FAQ & Troubleshooting
Answers to the most common questions about using, consuming, and publishing on the MPP Layer.
HTTP Error Reference
When calling any MPP Gateway endpoint, you may encounter the following HTTP status codes:
You called the endpoint without an Authorization header. This is the expected starting state of every new request.
Read the WWW-Authenticate header from the response. Parse the payment details, construct a Solana transaction, and retry with Authorization: Payment signature=<txHash>.
The Gateway parsed the transaction signature from the Authorization header but the on-chain verification failed. The amounts may not match, or the wrong wallet received the payment.
Ensure your transaction sends the correct split: 98% to the provider address, and 2% to the MPP platform fee wallet. Both must be in the same transaction.
The path you requested (/api/v1/gateway/your-path) does not exist in the MPP registry, or the API has been deactivated by the provider.
Browse the Endpoint Directory to find active APIs. Verify the path matches exactly — it is case-sensitive.
You sent a transaction signature that has already been used to successfully call this API. This is the Replay Attack prevention mechanism.
Never reuse a transaction signature. Each API call requires a fresh Solana transaction and a new unique signature.
The MPP Gateway was able to verify your payment, but the Provider's Upstream URL is unreachable or returned a 5xx error.
This is a Provider-side issue. The provider's server may be down. You can check the API's trust metrics on the endpoint directory page — low success rates indicate an unreliable provider.
An unexpected error occurred within the MPP Gateway itself (e.g., database issue, RPC timeout).
This is an MPP infrastructure issue. Wait a moment and retry your request. If the error persists, contact support via our GitHub Issues page.
General Questions
Do I need to write any payment code on my own server (as a Provider)?
No. This is one of the biggest advantages of MPP. Your Upstream URL can be a completely standard HTTP server with zero knowledge of blockchain payments. The MPP Gateway handles all payment negotiation, verification, and fee splitting before it forwards the request to your server. If your server receives a request from the Gateway, you have already been paid.
What happens if my server (Upstream URL) goes down?
If a Consumer's payment has already been verified on-chain and your server is unreachable, the Gateway will return a 502 Bad Gateway error to the Consumer.
Important: The Consumer's payment is still spent. The funds have already moved on the Solana blockchain. This is why uptime is critical for trust. The Gateway will log the failed request, and your success rate metric will drop, reducing your ranking in the directory.
Can the same Solana transaction signature be used more than once?
No. The MPP Gateway enforces strict idempotency. Every consumed signature is cached. A second request using the same signature will receive a 409 Conflict response immediately, regardless of the payment amount.
How does the 2% platform fee work exactly?
The fee split must be included by the Consumer in the same Solana transaction as the Provider payment. The transaction must contain two transfers:
- Transfer of 98% of the total price to the Provider's wallet.
- Transfer of 2% of the total price to the MPP Platform Fee Wallet.
The Gateway reads the raw transaction from Solana RPC and verifies both transfers independently. If either is missing or below the minimum amount, the request is rejected with a 403.
Is MPP regulated? Do I need KYC?
MPP is a non-custodial software protocol. We do not hold, transmit, or custody any user funds. Because payments flow directly from one Solana wallet to another (P2P), MPP does not classify as a Money Transmitter under most regulatory frameworks.
There is no KYC requirement to publish or consume APIs on MPP. We only require a valid Solana wallet address.
What currencies are supported?
MPP currently supports SOL, USDC, and USDT on Solana Mainnet. See the Supported Tokens page for full details including mint addresses and decimals.
How do I test my integration without spending real money?
When running the MPP platform locally (via npm run dev), you can set the Solana RPC to Devnet. On Devnet, all SOL and tokens are worthless test assets that you can claim for free from a faucet.
Set the environment variable SOLANA_RPC_URL=https://api.devnet.solana.com in your .env file to switch to Devnet.
Still need help?
Built for the machine economy by MPP Layer.
