---
name: sayer-and-stone-jewelry-commerce
description: "Use when the user wants to buy lab-grown diamond fine jewelry from Sayer & Stone. Query /catalog for the current lineup (earrings, bracelets), each with variants across length, metal, and total carat weight. Pay by the Machine Payments Protocol on Tempo, x402 on Base, or card via a Stripe Shared Payment Token; no identity check and no account, since each payment rail authenticates itself. Every piece is made to order, with a delivery estimate emailed once the order is placed."
metadata:
  version: "1"
  homepage: "https://agents.sayerandstone.com"
---

# Sayer & Stone

_Luxury, Every Day. Lab-grown diamond fine jewelry._

Sayer & Stone designs lab-grown diamond pieces with architectural precision, built to be layered and lived in. Browsing and buying are both anonymous: every payment rail authenticates itself, so no identity headers are required. Each piece is made to order.

## Important Files

| File | URL |
|------|-----|
| **SKILL.md** (this file) | `https://agents.sayerandstone.com/skill.md` |
| llms.txt | `https://agents.sayerandstone.com/llms.txt` |
| OpenAPI | `https://agents.sayerandstone.com/openapi.json` |
| MPP discovery | `https://agents.sayerandstone.com/.well-known/mpp.json` |
| A2A agent card | `https://agents.sayerandstone.com/.well-known/agent-card.json` |
| UCP profile | `https://agents.sayerandstone.com/.well-known/ucp` |
| JWKS | `https://agents.sayerandstone.com/.well-known/jwks.json` |

## Payment

Each gated route returns a 402 with `WWW-Authenticate` + `PAYMENT-REQUIRED` body listing the rails below with current pricing. Pick whichever your wallet is funded for.

| Rail | Notes | Compatible clients |
|---|---|---|
| **MPP on Tempo** | USDC. Use `agentscore-pay pay --chain tempo` (or `tempo request`); MPP credential goes in `Authorization: Payment`. | agentscore-pay, tempo request, x402-proxy |
| **x402 on Base** | USDC (EIP-3009). Use `agentscore-pay pay --chain base`; X-Payment header carries the signed credential. | agentscore-pay, x402-proxy, purl (omit --network flag) |
| **Stripe Shared Payment Token** | Card via Link wallet. Use `@stripe/link-cli`; `agentscore-pay` emits the handoff hint when this rail is picked. | link-cli |

## Shipping

Ships to: US.

## Onboarding Flow

1. Fetch the catalog from `https://agents.sayerandstone.com/catalog` (no auth, no headers). Each product has variants; pick a SKU or resolve via product_slug + options.
2. Each product carries an `images[]` gallery (occasionally empty). When a product has images, ask the buyer once before rendering any photo whether they want to see images while browsing; some prefer text-only for bandwidth, screen-reader, or terminal contexts. Remember the answer for the session and skip the prompt for subsequent products. The /catalog response carries the same reminder inline as `agent_instructions.image_display`.
3. POST `/purchase` with the chosen SKU, quantity, email, and shipping address. The first response is a 402 with the multi-rail payment challenge (Tempo USDC, x402 USDC on Base, Stripe Shared Payment Token).
4. Pay using the rail of your choice. `agentscore-pay pay <url> --chain base|tempo` handles the wallet rails; Stripe Shared Payment Token is signed by the buyer's Stripe account scoped to Sayer's STRIPE_PROFILE_ID.
5. Retry the same body with the payment credential attached. On success you get a 200 with the completed order, fulfillment policy, and tracking URL.

## Endpoints

| Method | Path | Auth | Purpose |
|---|---|---|---|
| GET | `/catalog` | anonymous | Products with embedded variants (filterable by category). |
| GET | `/catalog/{slug}` | anonymous | Product detail including all variants. |
| POST | `/purchase` | anonymous | Body: `{sku, quantity, email, shipping, gift_note?}` OR `{product_slug, options, quantity, email, shipping}`. Returns 402 on the discovery leg, 200 on settle. |
| GET | `/orders/{id}` | identity required | Full order details (PII). |
| GET | `/orders/{id}/status` | identity required | Payment status only. |

## Triggers

Use this skill when the user wants to:

- Buy diamond earrings from Sayer & Stone
- Buy a diamond bracelet from Sayer & Stone
- Send a Sayer & Stone piece as a gift
- Check the status of a previously placed Sayer & Stone order

## Support

- **Homepage**: https://www.sayerandstone.com
- **Pay CLI**: https://github.com/agentscore/pay

_Re-fetch this file periodically to pick up new endpoints, rails, or policies._
