Human to agent
$0.22 per minute
$0.022 USDC each 6-second increment.
x402 on Base · USDC · push-to-talk
The Voice Rail is push-to-talk for AI agents. A caller holds a button, speaks, and releases. The rail transcribes that whole recording, asks the model for a reply, and speaks the reply. The session is priced in USDC on Base, in 6-second increments. It is not a phone call, and it does not start speaking while you are still talking.
Call time is pay-per-use. There is no subscription for minutes. The meter steps every 6 seconds. It is not a one-second clock, and it is not a per-token model bill.
$0.22 per minute
$0.022 USDC each 6-second increment.
$0.09 per minute
$0.009 USDC each 6-second increment.
No minute plan
No per-token model API fee on the call. Compute is separate: the hosted path runs on two servers and a rented GPU.
A session opened with POST /call/start is quoted at the human-to-agent rate: $0.22 per minute, $0.022 per increment. The agent-to-agent price is the other published rate. A self-hosted license is a separate offer for the stack (faster-whisper, Kokoro, Ollama qwen3-14b). It is not a bundle of minutes, and it is not a claim that the hosted demo is one machine.
The hosted path is split. Transcription is local. Speech is on a second server. The model is on a rented GPU. Nothing in that chain is a phone switch, and nothing in it streams audio back while the caller is still holding the button.
faster-whisper small, on a local CPU. It sits on the critical path. Transcription is not free of wait.
Ollama qwen3-14b on a rented GPU. It is not on the machine that transcribes. There is no fixed latency budget.
Kokoro, 54 voices, on the second server (port 5007).
Hold to record, release to send. One audio blob per turn. The store pages for WALLY, CIPHER, SCOUT, FORGE, DUKE, and FEEDS show this same control.
The browser keeps the microphone audio. Nothing is transcribed yet.
One blob is sent. The rail does not stream partial audio during the hold.
faster-whisper small writes the transcript. qwen3-14b writes the reply. Kokoro synthesizes it.
Audio starts after that chain finishes. That is end of utterance, not time-to-first-audio.
Hosted speech-to-speech (ElevenLabs Eleven Realtime, about 0.6 seconds to first audio) is a different architecture, and it has API fees. This rail is the cascade above, with no per-token model API fee.
The demo does not place a SIP or carrier call. Holding the button is not dialing a number.
The reply cannot start until the recording is finished and the chain has run. There is no fixed reply-time budget.
Cloning is not part of this rail. The hosted voices are Kokoro, not a cloned sample.
Local transcription, Kokoro on the second server, the model on a rented GPU. The hosted demo is not every component on a single machine you already own.
A call that costs money is a call a spammer will not keep open. A session on this rail is priced in USDC, stepped every 6 seconds. There is no free line to sit on. Callers who will not pay the rate are not the callers this rail is for. The price is the filter.
If you have your own line and only want the money movement, Pay-to-Call is for you.
Carries the audio and the price. Push-to-talk, then speech-to-text, a model, and text-to-speech.
Moves the money only. You keep Bland, Twilio, or whatever line you already run. The number stays hidden until the call is paid.
Pay-to-Call is the payments-only rail: https://x402-agent-pay.com/pay-to-call/
These are the call routes. POST /call/start opens a session. The WebSocket takes one audio blob per turn. POST /call/end closes it.
POST /call/start
Content-Type: application/json
{"agent":"wally","wallet":"0x..."}
session_id, agent, greeting_text, greeting_audio_b64,
rate_per_min (0.22), rate_per_6s (0.022)
WebSocket /ws/{session_id}
one audio blob after release
transcript, then reply audio
POST /call/end
Content-Type: application/json
{"session_id":"..."}
The previous copy of this page printed the same start and socket routes under https://agentpaystore.com/voice-api. That host does not serve them. On this domain, GET https://x402-agent-pay.com/voice-api/health is the license server, not a call.