---
name: sayer-and-stone-jewelry-commerce
description: "Use when the user wants to buy lab-grown diamond fine jewelry from Sayer & Stone via an AI agent. Query /catalog for the current lineup (earrings, bracelets) with one or more variant axes drawn from length, metal, and total carat weight. Multi-rail (Tempo MPP / x402 Base / Solana MPP / Stripe SPT). No identity gate; each rail authenticates via its native payment credential. Made to order; delivery estimate emailed after order placement."
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. Catalog and /purchase are anonymous; each payment rail (Tempo MPP, x402 Base, Solana MPP, Stripe SPT) authenticates via its own native credential. No identity headers 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) |
| **MPP on Solana** | USDC (SPL). Use `agentscore-pay pay --chain solana`; MPP credential goes in `Authorization: Payment`. | agentscore-pay |
| **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, Solana USDC, Stripe SPT).
4. Pay using the rail of your choice. `agentscore-pay pay <url> --chain base|solana|tempo` handles the wallet rails; Stripe SPT 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._
