Menu

Explorer & Settings

Tempo Explorer Submit Project
Back to all projects

TemPetals

by cryptofelon · Updated 3 months ago

Agent-powered flower delivery via the Machine Payments Protocol (MPP).

In the AI payments ecosystem

TemPetals is an early-stage TypeScript project in the AI payments / x402 ecosystem. It currently has 3 GitHub stars and 0 forks.

README.md View on GitHub →

🌸 TemPetals

Agent-powered flower delivery via the Machine Payments Protocol (MPP).

Send real flowers to anyone, anywhere in the US — with a single API call. No signup, no API keys, no checkout flow. Just pay via MPP and flowers get delivered.

🧪 Live demo, limited run — the hosted instance at tempetals.up.railway.app is backed by a prepaid balance and will only process a handful of real orders. Self-host for unlimited use.

How it works

  1. Agent reads llms.txt or SKILL.md to learn the API
  2. Agent sends POST /order with recipient details, occasion, and budget
  3. TemPetals returns a 402 Payment Required with the price
  4. Agent pays via Tempo (stablecoin, ~500ms)
  5. TemPetals places a real order through a network of 15,000+ local florists
  6. Flowers arrive same-day (if before 1pm local) or next-day

Quick start

# Install deps
bun install

# Set up env vars (copy .env.example to .env)
cp .env.example .env

# Run
bun run dev

Usage

Browse products

curl "https://tempetals.up.railway.app/products?occasion=thank_you&budget=medium&zipcode=94104"

Check delivery dates

curl "https://tempetals.up.railway.app/delivery-dates?zipcode=94104"

Order flowers (via tempo CLI)

tempo request -t -X POST \
  --json '{
    "recipient": {
      "name": "Georgios Konstantopoulos",
      "address": "548 Market Street, Suite 46425",
      "city": "San Francisco",
      "state": "CA",
      "zipcode": "94104",
      "phone": "4155551234",
      "institution": "Paradigm"
    },
    "occasion": "thank_you",
    "budget": "medium",
    "message": "Thanks for pushing crypto forward! 🌸"
  }' \
  https://tempetals.up.railway.app/order

API

Endpoint Method Description
/ GET Service info
/products GET Browse available products
/delivery-dates GET Check delivery dates for a zip
/order POST Place order (MPP-gated)
/order/test POST Test order (no payment)

Order request body

{
  "recipient": {
    "name": "string (required)",
    "address": "string (required)",
    "city": "string (required)",
    "state": "string (required)",
    "zipcode": "string (required)",
    "phone": "string (required)",
    "country": "string (default: US)",
    "institution": "string (optional)"
  },
  "occasion": "birthday | anniversary | love | thank_you | get_well | sympathy | congratulations | just_because | apology",
  "budget": "small ($40-75) | medium ($75-110) | large ($110-160) | premium ($160+)",
  "message": "Card message (optional)",
  "delivery_date": "YYYY-MM-DD (optional, auto-picks earliest)",
  "special_instructions": "string (optional)"
}

Built with

  • MPP — Machine Payments Protocol
  • mppx — TypeScript SDK
  • Tempo — Stablecoin payments
  • Hono — Web framework
  • 15,000+ local florist delivery network
  • Bun — Runtime

License

MIT

TODO:

  • Allow discovery of TemPetals via tempo wallet services --search flowers
All MPP projects →