> ## Documentation Index
> Fetch the complete documentation index at: https://docs.madra.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart for Sellers

> Put a price on an existing HTTP endpoint, confirm it was cataloged in the Bazaar, and watch it get paid.

You already have a working service. This page puts a price tag on one endpoint, gets it listed in the Bazaar, and confirms the first paid request goes through. If you spend more than an hour on this, something in these docs has failed, not you.

## Prerequisites

* An existing HTTP server (Express, FastAPI, Next.js, Hono, or similar)
* A Stellar account address to receive payments (`payTo`)
* Testnet USDC is not required. You receive payments, you do not send them

## 1. Install the middleware

```bash theme={null}
npm install @stellarx402/express
```

## 2. Price a route

```typescript theme={null}
import express from "express";
import { requirePayment } from "@stellarx402/express";

const app = express();

app.get(
  "/weather",
  requirePayment({
    facilitator: "https://facilitator.stellarx402.com",
    network: "stellar:testnet",
    scheme: "exact",
    amount: "0.005",
    asset: "USDC",
    payTo: "GCKF...QMBA",
    // Discovery metadata: this is what makes the endpoint findable
    describe: {
      title: "5-day weather forecast",
      description: "Returns hourly forecast for the next 5 days given lat/lng",
      inputs: { lat: "number", lng: "number" },
    },
  }),
  (req, res) => {
    res.json({ forecast: getForecast(req.query.lat, req.query.lng) });
  }
);

app.listen(3000);
```

The `describe` block is what the Bazaar catalogs. Skip it and your endpoint still gets paid, but nobody will find it.

## 3. Confirm the listing

```bash theme={null}
curl "https://facilitator.stellarx402.com/discovery/search?q=weather+forecast"
```

Your endpoint should appear in the response within a few seconds of the first `402` it serves. See [Verifying Your Listing](/guides/sellers/verifying-your-listing) for what to check if it does not.

## 4. Watch it get paid

Point a buyer at your URL, or run the [buyer quickstart](/getting-started/quickstart-buyers) against it. On a successful request you will see the payment tx hash in the `X-Payment-Response` header, and settlement lands in your Stellar account in around 5 seconds.

## Where to go next

<CardGroup cols={2}>
  <Card title="Declaring Discovery Metadata" icon="tag" href="/guides/sellers/declaring-discovery-metadata">
    What to put in `describe` so agents can actually find your endpoint.
  </Card>

  <Card title="Choosing a Pricing Scheme" icon="scale-balanced" href="/guides/sellers/choosing-a-pricing-scheme">
    When to use `exact` versus `upto` for metered workloads.
  </Card>

  <Card title="Verifying Your Listing" icon="magnifying-glass-chart" href="/guides/sellers/verifying-your-listing">
    Debug why an endpoint is missing from search, or ranked lower than expected.
  </Card>

  <Card title="Going to Mainnet" icon="rocket" href="/guides/sellers/going-to-mainnet">
    Everything to check before flipping the network flag.
  </Card>
</CardGroup>
