Dial.operator
Theme
Text +1 806 607 1387

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


MCPdialoperator.cc/api/mcp
TransportStreamable HTTP
Authbearer dial_ak_…

Claude Code
claude mcp add --transport http dial https://dialoperator.cc/api/mcp \
  --header "Authorization: Bearer $DIAL_AGENT_KEY"
Claude Code · .mcp.json
{
  "mcpServers": {
    "dial": {
      "type": "http",
      "url": "https://dialoperator.cc/api/mcp",
      "headers": {
        "Authorization": "Bearer dial_ak_..."
      }
    }
  }
}
Cursor · ~/.cursor/mcp.json
{
  "mcpServers": {
    "dial": {
      "url": "https://dialoperator.cc/api/mcp",
      "headers": {
        "Authorization": "Bearer dial_ak_..."
      }
    }
  }
}
Or install the skill
npx skills add Dial-WTF/text-my-crypto

Tools

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


send_payment

pay anyone with a phone number, @handle or name. Arguments: to, amountUsd, note?, chain?

request_payment

ask someone to pay you. Arguments: from, amountUsd, note?, chain?

create_invoice

bill a client. Arguments: to, amountUsd, note?, chain?

get_payment

track status and receipt. Arguments: intentId

get_balance

USDC per chain. Arguments: none

withdraw

move USDC to any address. Arguments: amountUsd | "all", address, chain?

split_payment

split a bill: one approval, one Tempo transaction. Arguments: amountUsd, people[], includeMe?, note?, chain?

resolve_recipient

contacts → directory lookup. Arguments: to

list_payments

recent history. Arguments: limit?

get_pay_link

crypto Zelle: a pay page for you or any @handle. Arguments: handle?, amountUsd?, note?

get_wallet

balances, deposit addresses, activity. Arguments: none

list_chain_features

what each chain can do beyond sending. Arguments: none

send_stock

gift Robinhood Chain stock tokens, like 0.1 TSLA. Arguments: to, shares, symbol, note?

get_stocks

stock token holdings on Robinhood Chain. Arguments: none

send_to_hyperliquid

move USDC from HyperEVM into a Hyperliquid spot balance. Arguments: amountUsd, to?

get_hyperliquid_balance

USDC in the owner's Hyperliquid spot balance. Arguments: none

get_price

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/wallet with your key returns the owner's wallet.