Dosie Foxie

x402 logo generator: a pack, paid per request

x402 is HTTP-native payment: the server answers 402, the agent pays in USDC, and the same request returns the pack. No account, no key, no checkout page.

Agent API (2026-11-09). The contract, the free endpoints and the paid x402 checkout are live. A preview is $1 and a Production Pack $19, in USDC on Base, paid per request — no account, no API key, no card. A request that arrives without payment returns 402 with the exact amount, asset, network and address.

Most paid APIs assume a human: sign up, add a card, buy credits, rotate a key. An agent that needs a logo in the middle of a task cannot do that. x402 removes the account layer by making payment part of the HTTP exchange.

It is a good fit for a logo pack because the price is fixed, the work is bounded and the buyer is a program. The agent knows the price before any money moves, pays exactly that amount, and gets a deterministic response.

The 402 is the price list

An unpaid request to a paid endpoint returns HTTP 402 with a base64 PAYMENT-REQUIRED header. Decoded, it contains the resource, the accepted schemes, networks, assets, amounts and the payTo address. The agent picks an option it can pay and signs a transfer authorization.

{
  "x402Version": 2,
  "resource": {
    "url": "https://dosiefoxie.com/api/v1/orders",
    "description": "Production brand pack",
    "mimeType": "application/json"
  },
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "19000000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0x...",
    "maxTimeoutSeconds": 300,
    "extra": {"name": "USD Coin", "version": "2"}
  }]
}

The agent should reject an option whose network, asset or amount it does not recognise. The server verifies the same fields on the way back; a mismatch is a 402, not a partial order.

What settles and what it costs

The pack is $19, or $9 for the first 50 founding agents. The preview is $1 and is credited toward the pack. The exact scheme transfers the advertised amount in USDC; the facilitator submits the transfer and the server settles before fulfilling the order. x402 has no protocol fee; the network fee on Base is nominal and the facilitator abstracts it.

Pricing is published at /api/v1/pricing and repeated in every 402 response. A price change is a new value in the 402, not a surprise on a card statement.

Buying a balance with the same rail

x402 settles on a header, and an MCP tool call has none — so the payment rail that works inside a tool loop is a bearer key with a balance behind it. A key can now be bought with USDC: POST /api/v1/keys takes 76, returns a balance of 76 and the key that spends it, which is four preview-and-pack cycles at the published prices. Face value on purpose; the point of the SKU is the rail, not a discount.

The key is in the 202 and nowhere else. The server stores only its hash and derives the secret from the purchase, so a retry with the same Idempotency-Key hands back the same key without charging twice — and a copy of the database is not a copy of anybody's key. GET /api/v1/keys with the key answers its balance and the prices it will be charged. Buying credits with credits is refused: that endpoint never reads Authorization, so no key can top itself up.

Idempotency and retries

Agents retry. A timeout is not a failed payment, and a retry is not a second purchase. The API uses an Idempotency-Key plus the x402 payment-identifier extension: the same payment unlocks one order, and a replay returns the original response instead of charging again.

The status endpoint is safe to poll. An agent that loses the response can call GET /api/v1/orders/{id} and recover the manifest without paying twice.

Refunds when the pack fails

Crypto payments are irreversible, so the refund path has to be explicit. The server stores the payer address from the payment payload. If the engine cannot produce a pack that passes the gates, the pack fee is sent back to that address and the transaction hash is recorded on the order.

The status endpoint carries the refund, so nobody has to take the sentence on trust. GET /api/v1/orders/{id} answers status: failed with a refund object: pending while the transfer has not been signed, then sent with the transaction hash, which is the receipt you can check on Base. A prepaid-key order answers credited instead, because there the money never left the balance and there is no transaction to show.

The preview fee is not refunded in cash; it is credited toward a retry. That keeps the preview honest (it pays for the model calls) without turning a failed pack into a free generation.

What x402 is not

It is not a subscription, a token, a custodial wallet or a card. It is not a promise that every agent has a wallet; the human checkout stays. It is a payment rail for the agent that does.

Questions

Do I need a Coinbase account?

No. Any EVM wallet holding USDC on Base can pay. The facilitator handles settlement; the agent only signs an authorization.

Which network should an agent use?

Base mainnet (eip155:8453) for real orders. Builders can use Base Sepolia against the public testnet facilitator before mainnet.

What if the agent retries the same request?

The idempotency key and payment identifier make the retry safe. The same payment returns the original order; it does not buy a second pack.

Can a human pay with x402?

Yes, but the card checkout is simpler. x402 exists for the agent that already has a wallet and no browser.

If the file is the problem, the pack is the fix.

The Production Pack is $149, one time: true vector masters, six lockups, a print PDF and EPS, one ink per file and unlimited parametric edits.

See the production pack Audit my current file

Free tools: vector check · 12-file audit · 16px legibility · CMYK shift · stitch estimate

For agents

The same pack is available to a machine: a structured brief, a JSON manifest, x402 in USDC on Base, and an MCP tool contract.

Agent access · OpenAPI · llms.txt · MCP

Agent API: the contract, the free endpoints and the paid x402 checkout are live. USDC on Base, no account, no API key.

Related guides