List a machine-payable endpoint and set a price in USDG. Buyers pay the address on your listing — Aeron routes the call and never holds the money.
Aeron carries the call and settles it to the merchant’s wallet. Agents read the same list at GET /v1/services. Click a slug to copy it.
Endpoints indexed from the public x402 catalogues: Coinbase’s Bazaar and Circle’s Agent Marketplace. Rows marked USDG take the token on this chain and are payable with the wallet you hold, today; the rest name the chain and USDC they settle on, and need a wallet for that chain. Aeron does not carry these calls and takes nothing from them: you pay the merchant.
curl -X POST https://market.aeron.sh/s/acme-ocr \
-H "content-type: application/json" \
-d '{"page":1}'
# → HTTP 402 + payment requirements (x402 v2 header, v1 body) — payTo is the merchant's address
# pay: retry with PAYMENT-SIGNATURE (or X-PAYMENT) → merchant response + PAYMENT-RESPONSE
# shop: GET https://market.aeron.sh/openapi.json — every listing with its price
# or: let the wallet handle it: aeron-wallet pay https://market.aeron.sh/s/acme-ocr '{"page":1}'
There is nothing to sign up for. Your wallet is the account.
Sign a plain-text statement naming the slug, your address, and a digest of the body. It authorises no payment.
POST /v1/services with the signature. The address you signed with owns the listing and receives the money.
Buyers settle straight to that address in USDG. Aeron accrues its take-rate against you and bills it separately.
# the statement your wallet signs
Aeron Marketplace
Sign to prove this wallet controls the listing. This authorises no payment.
action: register
slug: acme-ocr
address: 0x1b8e…80bd
issued: 2026-08-30T09:00:00.000Z
body: <sha256 of the request body>
# then
curl -X POST https://market.aeron.sh/v1/services \
-H "x-aeron-address: 0x…" -H "x-aeron-signature: 0x…" -H "x-aeron-issued: 2026-08-30T09:00:00.000Z" \
-d '{"slug":"acme-ocr","name":"Acme OCR","blurb":"Scanned pages to text.",
"category":"data","endpoint":"https://api.acme.example/ocr","priceUsd":0.1}'
GET /v1/services: the directory — filter with ?category= and ?q=GET /v1/services/{slug}: one listingPOST /v1/services: register a listing (wallet signature)PATCH /v1/services/{slug}: change price, endpoint, or status (owner only)POST /s/{slug}: call a service, paid via x402GET /ledger/stats: public sales ledgerGET /v1/directory: indexed endpoints — ?category=, ?q=, ?host=, ?limit=, ?offset=GET /v1/directory/merchants: the same directory rolled up by merchant