Base Mainnet

vox — text to speech,
paid per character

Pay-per-use TTS powered by gpt-4o-mini-tts and the x402 micropayment protocol. No API keys. No accounts. Just USDC on Base.

How it works

1
RequestPOST /v1/speak with your text. Server responds 402 Payment Required with the exact price.
2
Pay — Sign an EIP-3009 USDC authorization. No gas, no on-chain tx from your side. Retry with PAYMENT-SIGNATURE header.
3
Receive — Audio streams back as audio/mpeg. Payment settles on Base via the CDP facilitator.

Pricing

Base fee
$0.005USDC
Per character
$0.00003USDC
"Hello world" (11 chars) → $0.005330 USDC
Max request (2000 chars) → $0.0650 USDC
Paid in USDC on Base. Settled by the Coinbase CDP facilitator.

Endpoints

GET /v1/status— health & configfree
GET /v1/voices— voices, styles, limits, pricingfree
POST /v1/quote— price quote for textfree
POST /v1/speak— synthesize audiox402

Quick start

typescriptx402 fetch client
import { wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount("0x...");
const fetch402 = wrapFetchWithPayment(fetch, {
  scheme: new ExactEvmScheme(account),
});

const res = await fetch402("https://vox.hq.shrd.dev/v1/speak", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    text: "Hello from the future of payments.",
    voice: "alloy",
  }),
});

// res.body is a ReadableStream of audio/mpeg

Voices

alloy ash ballad coral echo fable nova onyx sage shimmer verse marin cedar

13 voices available. See /v1/voices for full details and style options.