# X Shop X Shop is a shop for people and for their bots. You pick products from Amazon or Target (from the X Shop catalog or by pasting any product link), pay X Shop with crypto (SOL or USDC on Solana) or, where the config lists them, by card or PayPal, and X Shop 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 Shop can read prices from and order at today: Amazon, Target. Prices always come from the store (Target's own API; Amazon through X Shop'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://xshop.deals/api/v1/catalog?q=airpods (the catalog plus Target's live results), or read any store link: GET https://xshop.deals/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://xshop.deals/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 Shop 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 Shop recognises it. Then POST https://xshop.deals/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://xshop.deals/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://xshop.deals/api/v1/keys gives one; send it as Authorization: Bearer and GET https://xshop.deals/api/v1/orders lists your orders. ## MCP POST https://xshop.deals/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://xshop.deals/openapi.json