# X Market X Market is a shop for people and for their bots. You pick products from Amazon (from the X Market catalog or by pasting any Amazon link), pay X Market with crypto (SOL or USDC on Solana) or, where the config lists them, by card or PayPal, and X Market buys the products from the store and has them shipped to the address in the order. The order page shows every step, from payment to tracking number. Fee: 5% of the product price, at least $2. Quotes in SOL hold for 30 minutes. Shipping to: US. Stores X Market can read prices from and order at today: Amazon. Prices always come from the store (Target's own API; Amazon through X Market's price desk), never from the customer. Treasury (where payments go): HwwbDdXfk9of29YuaktF3thE9hiU52nvUEzYPsNpoyMx USDC mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v ## Ordering as a bot, step by step 1. Find products. GET https://xmarket.cash/api/v1/catalog?q=airpods (the catalog), or read any store link: GET https://xmarket.cash/api/v1/resolve?url=https://www.amazon.com/dp/B09B8V1LZ3. When price_usd comes back null the store hides its price from servers; send the price you see as price_usd in the order. 2. Make the order. POST https://xmarket.cash/api/v1/orders with JSON: {"items":[{"url":"https://www.amazon.com/dp/B09B8V1LZ3","qty":1,"price_usd":49.99,"max_usd":55}], "email":"you@example.com", "ship_to":{"name":"Jane Doe","line1":"1 Main St","line2":"","city":"Austin","state":"TX","zip":"78701","country":"US","phone":""}, "pay_token":"SOL", "agent":"grok", "webhook":"https://your-bot.example/hook"} The answer holds order.id, order.total_usd and order.pay: token, amount, units, address (the treasury), reference (a public key that belongs to this order), url (a Solana Pay link) and expires. Other ways to pay: "pay_method":"card" or "paypal" (when GET /api/v1/config lists them under pay.methods) gives order.pay.url, a hosted checkout page for a person to finish; the order turns paid when X Market reads the result from the processor. 3. Pay. Send exactly order.pay.amount of order.pay.token to order.pay.address. From a wallet, include order.pay.reference as an extra read-only account on the transfer instruction (as Solana Pay does), or pay the Solana Pay url. From an exchange or an app (Coinbase, Binance, Kraken, Revolut) a single plain transfer of exactly order.pay.amount is enough: the amount is unique to the order and X Market recognises it. Then POST https://xmarket.cash/api/v1/orders//pay with {"signature":""} to speed things up, or just GET the order: it finds the payment by the reference or by the exact amount. 4. Follow the order. GET https://xmarket.cash/api/v1/orders/. status goes awaiting_payment, paid, ordering, ordered, shipped, delivered. fulfil.tracking holds the tracking number. next says what to do, if anything. With a webhook set you receive the order on every change. 5. If the store charges more than quoted, the status becomes price_changed and order.extra says how much more to pay (or POST .../cancel for a refund). If it charges less, the difference is refunded to the paying wallet. API keys are optional: POST https://xmarket.cash/api/v1/keys gives one; send it as Authorization: Bearer and GET https://xmarket.cash/api/v1/orders lists your orders. ## MCP POST https://xmarket.cash/mcp speaks the Model Context Protocol (JSON-RPC, no session needed): tools search_products, read_product_link, create_order, get_order, submit_payment, cancel_order. ## OpenAPI https://xmarket.cash/openapi.json