Skip to content

Crypto advertising for AI agents

An HTTP API that lets an AI agent buy crypto ads without an account: get a quote, pay in USDC through x402, and reach real crypto users from $0.005 a click.

Updated

CryptoAd Network sells crypto advertising over an HTTP API that an AI agent can use on its own. The agent needs an HTTP client and a wallet holding USDC. There is no account to open, no email address and no key to apply for: it asks for the price, pays through the x402 protocol, and the ad is placed in the same exchange.

The ads are seen by people who use crypto: users of FaucetPay, and visitors of the publisher sites in the network.

What an agent can buy

FormatWhat is deliveredPrice
PTC (paid-to-click)A person opens your page and keeps it open for 10 to 120 secondsFrom $0.005 per click. The smallest order is 10 clicks, $0.05
Paid VisitsA rewarded visit of 5 to 120 seconds to your landing pageFrom $0.01 per completed visit; $50 minimum order
BannerA text banner in banner placements on publisher sitesBid per click or per thousand impressions; $50 minimum order
NativeA text card in native placements on publisher sitesBid per click or per thousand impressions; $50 minimum order
Sponsored ListingA featured row in FaucetPay's faucet list$200 per week for row 1, $150 per week for rows 2 to 4

At the lowest bid, 1,000 paid-to-click views cost $5.00. Every field, limit and price of every format is in one document, the formats list, and no price is negotiated: what the quote says is what is charged.

More about each format: crypto ad formats.

How a purchase works

  1. Read the formats. GET /api/v1/formats returns each format with its fields, limits, prices and an example order.
  2. Ask for the price. POST /api/v1/quote with the order returns the exact total and creates nothing.
  3. Place the order. POST /api/v1/ads with the same order and an Idempotency-Key header. The answer is 402 Payment Required with an x402 version 2 payment requirement for exactly that price.
  4. Pay. Sign the payment (USDC, scheme exact) and repeat the same request with the PAYMENT-SIGNATURE header. The answer is 201 with the ad, the transaction hash and an API key for everything that follows.
  5. Follow it. GET /api/v1/ads/{id} shows the status, and GET /api/v1/ads/{id}/stats the delivery. The ad is reviewed before it goes live, so the status starts as in_review.

A quote, as it is asked and answered:

curl -s https://cryptoadvertising.net/api/v1/quote \
  -H 'content-type: application/json' \
  -d '{"product":"PTC","name":"Launch week","landing_url":"https://example.com/",
       "ad_title":"Try the new wallet","ad_description":"Open the page and look around.",
       "product_options":{"clicks":1000,"duration_seconds":10}}'

{"quote":{"total_usd":"5.00", ...},"order":{...}}

Any x402 version 2 client can make the payment. The payment goes from the agent's wallet straight to ours; we never hold the agent's keys.

What the agent keeps

The first paid order returns an API key. That key is the account: it owns the ad and a balance in US dollars.

  • An ad that is rejected in review returns its whole budget to the balance.
  • What an ad has not spent returns to the balance when it ends.
  • The balance pays for the next order without a new payment, and can be topped up with POST /api/v1/balance/topup.
  • A Banner, Native or Paid Visits ad can be paused, resumed and ended over the API.

The key is shown once and cannot be recovered by email, because there is no email. Store it.

Rules worth knowing before you build

  • Nothing is created before a payment is confirmed on chain. A quote and a 402 answer create nothing.
  • Repeating a request is safe. The same Idempotency-Key with the same body never pays twice and never places a second ad.
  • There are no webhooks. The API never calls a URL an agent supplies. Poll for the status.
  • Landing pages must be https.
  • Refunds to a wallet are not automatic. Unspent balance stays usable; a refund is a manual transfer on request.

Documents for machines

A 402 answer also carries the x402 bazaar extension, which describes how to call the resource, so catalogs of x402 services can list it.