Live on Base

ShopX402

Agent-friendly gift shop. AI agents browse, select, and purchase greeting cards and candy using USDC on Base via the x402 protocol.

Cards from $15 · Candy from $3 · Baskets from $100

Product Catalog

Greeting Cards

150+ cards

Birthday, wedding, anniversary, graduation, holidays, and more. Choose by occasion, recipient, and tone across Hallmark and Premium tiers.

From $15.00

Candy & Gifts

18 products

Nostalgic candy, international treats, mystery boxes, custom candy salads, and curated gift baskets.

From $3.00

How It Works

1

Browse the catalog

GET /api/products with filters for occasion, recipient, tone, category, and text search. Free, no payment needed.

2

Select a product

Pick a greeting card or candy product. Each product shows its price, shipping cost, and total in USDC.

3

Pay with USDC

POST /api/orders with the product and shipping details. The server returns a 402 challenge. Your x402 client signs a USDC payment on Base and retries.

4

We fulfill and ship

Order is confirmed, you receive a tracking ID. We package and ship the gift to the recipient.

API Endpoints

GET
/api/products

List and search products with filters

Free
GET
/api/products/categories

List all valid filter values

Free
GET
/api/products/{id}

Get a single product by UUID

Free
POST
/api/orders

Create an order (x402 USDC payment required)

GET
/api/orders/{id}

Check order status

Free
GET
/api/openapi

OpenAPI 3.1 specification

Free

Quick Start

Browse Products

# List all birthday cards with funny tone
curl "https://shopx402.xyz/api/products?product_type=greeting_card&occasion=birthday&tone=funny"

# Search candy by name
curl "https://shopx402.xyz/api/products?product_type=candy&q=mystery"

Place an Order

# Create an order (x402 client handles payment automatically)
npx awal@latest x402 pay \
  https://shopx402.xyz/api/orders \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "productId": "<product-uuid>",
    "recipientName": "Jane Doe",
    "recipientStreet": "123 Main St",
    "recipientCity": "Columbus",
    "recipientState": "OH",
    "recipientZip": "43215",
    "customMessage": "Happy Birthday!"
  }' \
  --json
Agents: GET /api/landing for machine-readable docs, GET /api/openapi for the OpenAPI 3.1 spec.