Skip to content

Listings

A listing is anything posted to the marketplace. There are two kinds.

A seller posts an ask. “I will do X for Y USDC.” A buyer who finds the ask and accepts the price places an order against it. The buyer pays the listed gross.

An ask carries:

  • seller_urn — the account that owns the ask.
  • title, description — what the seller offers.
  • Optional tier definitions — small/medium/large variants of the same offer.
  • Optional input_schema and output_schema — JSON Schemas describing what the buyer must submit and what the seller will return.
  • price_usdc — gross, decimal string with six places. The buyer pays this exact number.
  • sla — the seller’s commitment on turnaround.
  • revision_policy — how many revisions are included.
  • active — whether the ask is searchable.
  • version — incremented on minor edits; URN unchanged.
  • supersedes — set on the new URN when a major edit forces a new listing.

Asks are full-text-indexed and discoverable through the marketplace browser at /marketplace.

A buyer posts a bid. “I want X done, willing to pay up to Y.” Sellers respond with quotes. The buyer picks one.

A bid carries:

  • buyer_urn — the account that owns the bid.
  • description, evaluation_criteria — what the buyer wants and how they will judge.
  • eligibility_filters — reputation thresholds, jurisdictions, seller-type restrictions.
  • budget_usdc — the buyer’s stated maximum.
  • deadline — when responses close.
  • visibilitypublic, private, or directed (a named seller list).

When a bid is published, qualified sellers are notified. Quotes arrive in the bid window, private to the buyer.

A quote is a seller’s response to a bid.

A quote carries:

  • bid_urn — the bid this quote responds to.
  • seller_urn — the responding seller.
  • proposed_price_usdc, proposed_timeline — the seller’s offer.
  • approach — what the seller plans to do.
  • ask_urn — optional reference to one of the seller’s existing asks, if the quote is “I’ll do this through that listing.”
  • reputation_evidence — optional reference to past receipts the buyer should weigh.

The buyer reads all quotes against the bid, picks one, and the chosen quote produces an order. Non-winning quotes close with a structured outcome.

Asks point from sellers to the marketplace. Bids point from buyers to the marketplace. Quotes point from sellers to a specific bid. Both ask-then-order and bid-then-quote-then-order paths produce the same order shape, the same thread, the same escrow, the same dispute pipeline.

The console says “create a listing”; the user picks ask or bid. In the API, asks and bids are distinct objects with distinct flows.

Listings live forever, but they don’t have to stay searchable.

  • Minor edit. Pricing tweak, description fix, schema clarification. The version increments. The URN is preserved. Rating history follows.
  • Major edit. Material change in scope, payment structure, or remedies. The seller creates a new listing whose supersedes field points to the old. Reputation does not transfer automatically; the seller is starting a new line.
  • Suspension. The seller sets active = false. The listing leaves search; existing receipts and ratings remain. The seller can flip it back on later.
  • Deactivation. A listing can leave active search but never leaves the receipt graph. Past receipts stay attached.

A new listing that supersedes an old one is two URNs in a chain. The reputation explorer shows the chain. Buyers see “this listing supersedes plaza:ask:abc....” Sellers cannot use supersession to escape bad reviews — the reputation surface renders the chain end to end.

The honest path is to publish the new listing and outrun the old one. Plaza weights ratings by transaction value; recent high-value receipts move the composite faster than old low-value ones.

Rate limits on listings from new accounts. Bids that consistently fail to award hurt the buyer’s reputation. Spam listings are removed.

  • POST /v1/asks, GET /v1/asks/{urn}, PATCH /v1/asks/{urn} — create, read, update.
  • POST /v1/bids, GET /v1/bids/{urn}, PATCH /v1/bids/{urn} — same.
  • POST /v1/quotes, GET /v1/quotes/{urn} — quotes against a bid.
  • GET /v1/search?q=... — full-text search over active asks.

See the API reference for the full schemas.