Creator guide
Put your work behind an x402 paywall
Curatoria helps you sell design files to AI agents over plain HTTP. Keep files where you already store them, set a price, and become discoverable. Your catalog stays public, paid files stay protected, and payment happens automatically with no checkout page or middleman.
Who this is for
Artists, designers, and studios with reusable creative assets — design systems, token files, icon packs, component guides, industry style guides, or any downloadable digital product. You do not need to be an engineer forever, but today's public starter still requires a local setup. You do need Coinbase Wallet (recommended) or another wallet that can receive USDC on Base, plus patience to test on Base Sepolia before mainnet.
Start here
The path available today: fork the Curatoria starter, connect a payout wallet, add files
under design-systems/, and deploy the Node service. The no-terminal storage
connector path is the product direction, not the current day-one flow.
Available today: Fork curatoria-starter, connect a wallet, add files under
design-systems/, deploy the Node service.Coming soon: Connect Google Drive, Dropbox, iCloud, or your domain without moving files; automatic x402 Bazaar registration.
The starter template is now live on GitHub. This operator repo keeps the same
self-hosted pattern locally (npm run dev, files in
design-systems/) for curatoria.dev operations and private catalog work.
Questions: curatoria.dev@pm.me
How a paid request works
This flow is live in the Curatoria service today:
-
Discover. An agent reads your public catalog at
/.well-known/design-catalog.json. It lists every product, its price, and where to fetch it. -
Challenge. If the agent requests a paid file without paying, your
server answers with HTTP
402 Payment Requiredand JSON describing the price, network, and wallet address. -
Pay. The agent retries with an
X-PAYMENTheader. The x402 facilitator verifies the signature and settles USDC on-chain (Base or Base Sepolia testnet). - Deliver. After payment clears, the server returns your file — a markdown design doc or a zip bundle download.
What you will set up
A working creator setup looks like this:
- Coinbase Wallet or any Base USDC wallet. Coinbase Wallet is the recommended path because it lines up with CDP, x402, Base Sepolia faucets, and the simplest cash-out story. Any EVM wallet that can receive USDC on Base can work.
-
Your files in the starter today. Add markdown files or zip bundles
under
design-systems/. Google Drive, Dropbox, iCloud, and domain-hosted connectors are planned. -
Products and prices. Name each item, set a price (for example
$0.05for a design doc or$0.10for a bundle), and publish. Curatoria builds your catalog today; automatic Bazaar registration is planned. -
Smoke tests. Confirm the catalog loads, unpaid requests return
402, and a paid request returns the file.
Running your own Node service (Railway, Fly.io, a VM) is optional — see Advanced: self-host the paywall service in the appendix.
What the full guide teaches you
Step-by-step sections in the starter guide walk through what works today and what is planned:
-
Connecting your storage
— planned connectors for Google Drive, Dropbox, iCloud, or files on your domain; use
design-systems/today - Bazaar listing — manual catalog sharing today, with automatic registration planned
- Before you start — what x402 is, why agents pay differently than humans, and what “machine-readable catalog” means for your portfolio
- Wallet basics — Coinbase Wallet and CDP first, other Base USDC wallets supported, and where your payout address goes in config
-
First local run
— start the server, open the catalog URL, and see
402on an unpaid product (the paywall working) - Publishing your first product — naming, pricing, tags, and activating an entry in the registry
- Markdown vs bundle — when to ship a single doc vs a zip, and how each download route behaves
- Testing a real payment — run a paid fetch on testnet and confirm USDC moves and the file delivers
- Going live — switching from Base Sepolia to Base mainnet, and basic reliability checks before you share your catalog URL
-
When something breaks
— server won’t start, product not found, no
402, payment fails, file missing from disk - Self-hosting (advanced) — Node on Railway/Fly/Render, VMs, and object storage when you outgrow the default path
What you can sell
- Design markdown — a
design.mdfile (tokens, rules, usage) - Asset bundles — a zip (icons, components, templates)
Each product gets an ID, display name, price in USD, description, and tags. Metadata
lives in design-systems/.registry.json; the files sit beside it in
design-systems/.
Where you can sell
You should not have to learn server ops to get paid. Today, creators can use the starter repo to self-host a Node paywall service. Curatoria is being built toward storage you already use, automated discovery on the x402 Bazaar, and a paywall layer that sits in front of your files.
Store files where you already work
Coming soon, the casual path is: keep your source of truth in a familiar place, connect
it once, set prices, publish. Today, use files under design-systems/.
- Google Drive. Design docs and zip bundles in a folder you control. Planned connector: Curatoria links paid access to those files without making you re-upload elsewhere.
- Dropbox. Same idea — shared folders and versioned assets stay in Dropbox; buyers pay per access through your catalog.
- iCloud. For creators already living in Apple’s ecosystem — connect the folders or exports you want to sell and keep editing in place.
- Your own domain. If you already host files on your site, a CDN, or static storage behind your domain, Curatoria can front those URLs with x402 instead of asking you to migrate hosts.
Get listed on the Bazaar
Agents discover paid services through the x402 Bazaar. Curatoria should do as much of this as possible for you automatically. Today, share your public catalog URL manually; automatic Bazaar registration is planned:
- Build your public catalog from the products and prices you define
- Register discovery metadata so wallet-equipped agents can find your work
- Keep listing details in sync when you add, reprice, or retire a product
Your job: describe what you sell and what it costs. Ours: make the Bazaar listing a side effect of publishing, not a second project.
What still has to happen behind the scenes
x402 is HTTP-native — something must return 402 with payment details,
verify USDC, then deliver the file. Curatoria provides that layer whether your files
live on Drive, Dropbox, iCloud, or your domain. You connect storage; we handle the
paywall and payout path.
Appendix: x402 references
Official protocol docs if you want to go deeper than this guide:
- x402.org — open protocol home, spec overview, and links to the reference implementation
- x402.org documentation — quickstarts for buyers and sellers, Bazaar discovery, and integration examples
- Coinbase Developer Platform — x402 — how the protocol works, client/server flow, facilitator service, and production integration on Base and other networks
Advanced: self-host the paywall service
For operators who want full control — or who are testing before cloud storage connectors ship — you can run the Curatoria service yourself. This is a deeper dive, not the default creator path.
- Managed Node host. Deploy to Railway, Fly.io, Render, or similar.
- Cloud VM. EC2, DigitalOcean, or any box where you run Node and keep a process alive.
- Object storage at scale. Keep paywall logic on your service; store large bundles in S3, R2, or GCS with a CDN or WAF in front.
-
Catalog on your domain. Agents discover products at
https://yourdomain.com/.well-known/design-catalog.json.
See the
curatoria-starter template
and creator guide for the current self-hosted setup (npm run dev,
design-systems/, publish commands, testnet first).