Transmits signed USDC payments over sound using a custom OOK audio modem with Goertzel detection. Compresses x402 handshakes to 138 bytes, settling on Base through 36 seconds of 2400 Hz beeping.
X402-audio-to-audio is a growing Python project in the AI payments / x402 ecosystem, focused on x402, x402-demo, x402-payment. It currently has 34 GitHub stars and 1 forks, and sits alongside related tools like x402-micropayments, sample-agentcore-cloudfront-x402-payments, spritz, x402-facilitator, Vault-0, tdm-sdk.
Payments over sound. Because why not.
x402 made payments native to HTTP. I made them native to air.
This is a proof-of-concept showing that the payment primitive underneath x402, EIP-3009, doesn't care how bytes travel. HTTP is just one transport. Sound is another. Light could be next.

The x402 protocol is brilliant, it embeds payments into HTTP, the backbone of the web. But here's the thing: the cryptography doesn't know it's traveling over HTTP.
EIP-3009 (transferWithAuthorization) lets you sign a payment authorization offline. Someone else submits it on-chain. The signature travels between you and the merchant however you want:
138 bytes. That's all a complete payment handshake needs. Small enough to beep through a speaker.
┌──────────────┐ ┌──────────────┐
│ SELLER │ ──── 🔊 2400Hz tones ─────── │ BUYER │
│ │ │ │
│ │ ◄─── 🔊 2400Hz tones ─────── │ (signs) │
└──────┬───────┘ └──────────────┘
│
▼
┌──────────────┐
│ Settlement │ ──── USDC.transferWithAuthorization() ──── Base
└──────────────┘
Total time: ~36 seconds of beeping.
This isn't about audio being practical (it's not). It's about proving that payments can travel any medium.
| Medium | How | Practical? |
|---|---|---|
| HTTP | x402 | ✅ Yes |
| Sound | x402hz (this) | 🎭 For fun |
| QR Code | Display → Scan | ✅ Yes |
| NFC | Tap | ✅ Yes |
| Bluetooth | Proximity | ✅ Yes |
| Light (Li-Fi) | Pulses | 🔬 Research |
The primitive is transport-agnostic. x402 chose HTTP because it's everywhere. I chose sound because it's ridiculous and proves the point.
git clone https://github.com/anthropics/x402hz.git
cd x402hz
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Create .env:
SELLER_ADDRESS=0xYourSellerAddress
BUYER_ADDRESS=0xYourBuyerAddress
BUYER_PRIVATE_KEY=0xYourBuyerPrivateKey
FACILITATOR_PRIVATE_KEY=0xFacilitatorWalletForGas
# Terminal 1
python ui_seller.py # http://localhost:5001
# Terminal 2
python ui_buyer.py # http://localhost:5002
Standard x402 JSON is ~1KB. Too fat for audio. x402hz compresses it to:
| Payload | JSON | Compact |
|---|---|---|
| Request | ~800 bytes | 30 bytes |
| Response | ~600 bytes | 108 bytes |
Survives background noise and conversations.
├── ui_seller.py # Seller web UI
├── ui_buyer.py # Buyer web UI
├── payment.py # Signing + encoding
├── facilitator.py # On-chain settlement
├── config.py # Shared config
└── fsk_modem.py # Audio modem
EIP-3009 is the primitive. x402 is one application of it. There can be many.
Authorization ≠ Transport. Sign offline, transmit however, settle on-chain.
Payments can be weird. And that's okay.
Huge thanks to the Coinbase x402 team for building the protocol that made this possible. x402 is genuinely important infrastructure for web payments. I just... took it off-road.
Also thanks to EIP-3009 for existing since 2020 and being criminally underused until now.
MIT - Do weird things with payments.
Built to answer: "If payments can travel over HTTP, what else can they travel over?"
Answer: Literally anything that can carry 138 bytes.
x402 payment gateway integration demo for x402 infrastructure, using x402 protocol.
AWS payment demo of x402 using Bedrock AgentCore, Strands SDK, and CloudFront.
Spritz is a decentralized, permission-less and censorship resistant chat app for web3. Connect with friends using passkeys or wallets. Make HD video calls, go live to your followers, and chat freely on a decentralized network.
Golang implementation of an x402 payment facilitator
Vault-0: Agent Security, Monitor & x402 Wallet for OpenClaw. Encrypted secret vault, real-time agent monitor, policy enforcement, and native x402 payments — built with Rust + Tauri.
Open contract-facing SDK for payable routes and gateway-backed integrations. Thin public surface for authorize, checkout, and session flows.
The living ecosystem where AI agents complete tasks through workflow loops, improve through iterative execution, are evaluated by mentor agents or humans in the loop, and turn completed work into reusable work experience and data to improve future agents.
The living ecosystem where AI agents complete tasks through workflow loops, improve through iterative execution, are evaluated by mentor agents or humans in the loop, and turn completed work into reusable work experience and data to improve future agents.
Self-healing infrastructure for AI agent payments. 90.3% auto-recovery.
The first agentic payment network: policy-controlled, gasless, and real money-ready. OmniClaw CLI + Financial Policy Engine let autonomous agents pay and earn safely at machine speed.
The A2A x402 Extension brings cryptocurrency payments to the Agent-to-Agent (A2A) protocol, enabling agents to monetize their services through on-chain payments. This extension revives the spirit of HTTP 402 "Payment Required" for the decentralized agent ecosystem.
DePIN for Vintage Hardware — Proof-of-Antiquity blockchain where old machines outmine new ones. AI-powered hardware fingerprinting, 15+ CPU architectures, Solana bridge (wRTC). $0 VC.