start_add_phone
Begins a user-initiated reverse-OTP session to add a phone number via Telegram, WhatsApp, or SMS, returning a session ID plus channel-specific instructions, links, QR codes, or SMS details.
Instructions
Start adding a new phone number by reverse OTP: the user starts the exchange themselves and nothing is sent before they do; the response's instructions field says what they do (on telegram the bot then asks them to tap a button that shares their number). Returns a session ID; on telegram/whatsapp also deep_link, qr_code (base64 PNG) and qr_text (UTF-8 text QR), and on sms sms_message and sms_dids (one entry per region; a region with no number configured has an empty did) with no deep_link.
Agent usage: on telegram/whatsapp pass deep_link to render_auth_link for the link and a QR code. On sms there is no deep_link — show sms_message and a number from an sms_dids entry whose did is non-empty. Never hand a qr_text to a link renderer — it is a link already rendered as QR art. Then poll get_add_phone_status with the session ID.
The user does not see tool results — most clients fold them away, render_auth_link's output included. Before you wait or poll, put what the user must act on into your own reply text: the link itself (not a sentence announcing it), the SMS text and number, or a note to check their inbox.
ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, or sign in with start_login — a session opens this tool — then call this tool again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Channel for phone verification |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| channel | Yes | ||
| qr_code | No | Base64-encoded PNG QR code for `deep_link` | |
| qr_text | No | UTF-8 text QR for `deep_link`, for terminal/agent rendering | |
| sms_code | No | The short code the person texts (`sms` only) | |
| sms_dids | No | Our SMS numbers, one entry per region and always all three. A region with no number configured carries an empty `did` and no QR code. | |
| deep_link | No | Opens Telegram or WhatsApp with what the person sends (`telegram`, `whatsapp`) | |
| expires_at | Yes | ||
| session_id | Yes | ||
| sms_message | No | The message to send (`sms` only) | |
| instructions | Yes | One line telling the person what to do |