Dial x402

Overview

Telephony and OSINT primitives for AI agents — pay-per-use via x402.

Dial x402

Telephony and OSINT primitives for AI agents. Send SMS, look up phone numbers, search breach data — all pay-per-use via x402 crypto payments.

No accounts. No API keys. No KYC. Just a wallet.

What is Dial?

Dial provides telephony and intelligence APIs that autonomous agents can pay for with USDC on Base. Every endpoint uses the x402 protocol — the open standard for HTTP 402 payments.

When an agent calls a Dial endpoint without payment, it gets back a 402 Payment Required response with the price. The agent signs a USDC authorization, resubmits, and gets the resource. Settlement happens on-chain in ~1 second.

Available Primitives

PrimitivePriceDescription
Send SMS$0.10Send text messages to any phone number worldwide
Phone Lookup$0.05Reverse lookup — carrier, caller name, line type, SIM swap detection
Breach Search$0.05Search leaked credentials by email, phone, IP, domain (Dehashed)
Buy Credits$0.10Prepay 100 credits for Bearer-token access (no x402 per-call)
Buy Number$1.50Purchase a phone number (coming soon)
Phone Verify$0.25OTP verification (coming soon)
eSIM$2.45Order a data plan (coming soon)

How It Works

1. Agent sends POST /api/v1/messages/send
2. Server returns HTTP 402 with USDC price and payTo address
3. Agent signs EIP-3009 transferWithAuthorization
4. Agent resubmits with Payment-Signature header
5. Facilitator verifies and settles on-chain
6. Server sends the SMS and returns 200

Networks

NetworkChain IDUSDC Contract
Base (mainnet)eip155:84530x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Base Sepolia (testnet)eip155:845320x036CbD53842c5426634e7929541eC2318f3dCF7e

Quick Example

# This returns 402 with payment requirements
curl -X POST https://x402.dial.wtf/api/v1/messages/send \
  -H "Content-Type: application/json" \
  -d '{"to": "+1234567890", "body": "Hello from an AI agent"}'

# With x402 payment (handled automatically by SDK)
import { DialClient } from "@dial/sdk";

const dial = new DialClient({
  baseUrl: "https://x402.dial.wtf",
  fetch: x402WrappedFetch, // handles 402 automatically
});

await dial.messages.send({
  to: "+1234567890",
  body: "Hello from an AI agent",
});

On this page