Dial for agents
Any AI agent can pay, request money from, or invoice anyone with a phone number, through the Dial operator's MCP server. The agent starts the payment. A person approves it.
What agents can do
- Send USDC to a phone number, an @handle or a name in the owner's contacts.
- Ask someone to pay the owner, or send them an invoice.
- Check balances, track payments and list recent history.
- Share a pay link, or read someone else's to pay them.
- Withdraw to an outside address.
Agents start payments. A human approves every one, by a code texted to their phone or a passkey. Every money tool creates a pending payment and texts a one-time code to whoever has to pay. Nothing moves until that person replies with the code or approves with their passkey. The tool returns awaiting_approval, and the agent polls get_payment to see what happened.
Connect an agent
1 · get a key
Text "connect agent" to +1 806 607 1387. Open the link, enter the texted code, copy the key (dial_ak_…).You need a Dial account first: text “hi” to start one. Keys look like dial_ak_… and show once. Text “revoke agents” any time to cut every key off, or revoke one from your wallet page.
2 · add the server
claude mcp add --transport http dial https://dialoperator.cc/api/mcp \
--header "Authorization: Bearer $DIAL_AGENT_KEY"{
"mcpServers": {
"dial": {
"type": "http",
"url": "https://dialoperator.cc/api/mcp",
"headers": {
"Authorization": "Bearer dial_ak_..."
}
}
}
}{
"mcpServers": {
"dial": {
"url": "https://dialoperator.cc/api/mcp",
"headers": {
"Authorization": "Bearer dial_ak_..."
}
}
}
}npx skills add Dial-WTF/text-my-cryptoTools
Amounts are dollar strings (“10”, “2.50”) and settle as USDC. Recipients are a phone number, an @handle or a name. chain is optional and defaults to Solana.
Dial operator · MCP tools
pay anyone with a phone number, @handle or name. Arguments: to, amountUsd, note?, chain?
ask someone to pay you. Arguments: from, amountUsd, note?, chain?
bill a client. Arguments: to, amountUsd, note?, chain?
track status and receipt. Arguments: intentId
USDC per chain. Arguments: none
move USDC to any address. Arguments: amountUsd | "all", address, chain?
split a bill: one approval, one Tempo transaction. Arguments: amountUsd, people[], includeMe?, note?, chain?
contacts → directory lookup. Arguments: to
recent history. Arguments: limit?
crypto Zelle: a pay page for you or any @handle. Arguments: handle?, amountUsd?, note?
balances, deposit addresses, activity. Arguments: none
what each chain can do beyond sending. Arguments: none
gift Robinhood Chain stock tokens, like 0.1 TSLA. Arguments: to, shares, symbol, note?
stock token holdings on Robinhood Chain. Arguments: none
move USDC from HyperEVM into a Hyperliquid spot balance. Arguments: amountUsd, to?
USDC in the owner's Hyperliquid spot balance. Arguments: none
Hyperliquid mid price for a coin, quote only. Arguments: coin
Also: whoami (handle, chains, limits) and get_receive_address. Arguments, statuses and error codes are in the tool reference.
More for agents
- /llms.txt: the plain-text guide for agents and LLM crawlers.
- The dial-operator skill: install with
npx skills add Dial-WTF/text-my-crypto. - /ledger.json: every settled payment, stats and treasury addresses.
- /@handle.json: anyone's pay page as JSON.
GET /api/walletwith your key returns the owner's wallet.