Sasona router - you pay on your chain, the service is paid on its own WHAT IT IS A paid service an agent wants is usually not on the rail that agent holds money on. You pay us once, on a rail you already hold money on; we pay the service in the protocol and on the chain its own 402 asks for; you get its answer. Crossing that gap is the whole product. It runs both ways: an x402 client that knows nothing about Tempo can buy a service that is only on Tempo, and an MPP client that holds nothing on Solana can buy one that only settles there. Each one is a mirror: the service is somebody else's, it is listed here under its own url, and we are the seller of record for it - which is why every resource carries a rule the answer is judged by, published before you pay, and a refund when it fails. WHAT WE TAKE x402, USDC on Solana, at /x402/. Or MPP, USDC on Tempo, at /tempo/. Either one buys the same resource, and the answer is the same. WHAT WE PAY WITH The seller's own 402, read at the moment of payment, never from a list of ours. Today every resource here is paid over MPP, USDC on Tempo. A seller that has changed what it asks for is refused before anything moves, and you are refunded in full. THE OTHER DIRECTION MPP, USDC on Tempo is open. POST /tempo/ and the price comes back on the www-authenticate header instead of the body; send the credential on authorization and you get the same answer. /tempo/buy takes any paid endpoint by url, the same as /x402/buy. It is the crossing in the direction that was shut until 1 Nov 2026: a buyer holding USDC.e on Tempo and nothing on Solana can buy a service that only settles in x402 USDC there, and both halves are transactions anyone can read. HOW TO CALL IT 1. POST a resource url with {"input": "..."} -> 402, and the price is in accepts[0]: amount, asset, payTo, network. 2. POST the same url again, with the signed payment in the payment-signature header -> 200 and your answer, or 502 and your refund. x402 version 2, scheme "exact". The fee payer is in accepts[0].extra.feePayer, so you need no SOL of your own - only the USDC you are paying. One price pays for one call and is good for 120 seconds; ask again if it expires or if you change the request. The receipt comes back in the payment-response header, and the body carries the settlement and the seller's own transaction, so you can check both on chain. RESOURCES POST https://router.sasona.ai/x402/run-code Run code - Judge0 (Locus) the service: https://judge0.mpp.paywithlocus.com/judge0/execute-code we pay it in: MPP, USDC on Tempo you pay in: x402, USDC on Solana or: MPP, USDC on Tempo, at https://router.sasona.ai/tempo/run-code you send: Python code (up to 5,000 characters) judged by: the buyer's own input: the answer must have the service's shape we test it: we send code whose output we computed ourselves; the expected 16 hex digits must appear in the answer ANYTHING ELSE YOU ALREADY KNOW ABOUT POST https://router.sasona.ai/x402/buy {"service": "https://...the seller's own paid url...", "body": { what it expects }} The same two calls, the same payment, the same refund. We read that seller's own 402 and pay it on whichever rail it asks for. What is promised is less, and it says so: nobody has published a rule for a service we have not tested, so what is checked is that it answered. WHEN SOMETHING IS WRONG 400 the body is {"input": ...} and nothing else, and input is required 404 no such resource - the list above is all of them 409 that price is gone, or the request changed; ask for a price again 413 the input is larger than the service takes 415 send JSON 429 too many calls from one address 402 the payment you sent is not the one this resource asked for 502 no answer, or it failed the rule: see `refund`, which is everything you paid 503 we cannot sell right now, and nothing was charged FOR A MACHINE GET https://router.sasona.ai/.well-known/x402.json Each resource there carries the shape of the request, an example answer, and the JSON schema of what you send. IF YOU WOULD RATHER NOT WRITE THE SIGNING https://github.com/sasona-network/sasona-router A small open client: it asks the price, checks it against what you expect, signs one transfer and hands you the answer. Everything here can be done without it. BEFORE YOU PAY ANYTHING https://sasona.ai/mcp speaks the model context protocol and costs nothing: search the services, read a verdict and the tests behind it, the state of the network, and what has been paid lately. Five tools, all read-only. TRY IT curl -s -X POST https://router.sasona.ai/x402/run-code \ -H 'content-type: application/json' \ -d '{"input": "print(6*7)"}'