wait_for_verification
Polls a verification until it reaches a final state—verified, failed, expired, revoked, or cancelled—using backoff, and returns pending on timeout so you can continue waiting.
Instructions
Poll a verification until it reaches a terminal state (verified, failed, expired, revoked, or cancelled). Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
A multi-channel verification that lost the race is "cancelled" and one whose proof was withdrawn is "revoked"; both are final, so the wait returns rather than polling on.
Before calling this for a challenge you created, make sure your reply text already shows the user what to act on — the link itself, the SMS text and number, or a note to check their inbox; a link that appeared only in a tool result is one they never saw.
ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, then call this tool again. start_login does NOT open this tool.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Verification ID to poll | |
| timeout_seconds | No | Maximum wait time in seconds (default: 50, max: 300). Keep it under your MCP client's request timeout (the SDK default is 60 s) — a longer wait is cut off by the client while the server is still polling. On timeout the tool answers status "pending"; call it again with the same identifier. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | MongoDB ObjectId | |
| type | No | Type of asset being verified. Not yet available — no channel of theirs can be completed, so a create or start answers 400 `channel_not_available`: social, wallet, account. | |
| proof | No | Proof token after successful verification | |
| status | No | "pending" when the wait ran out before a terminal state; otherwise the resource's own status | |
| channel | No | Channel used for verification. Not yet available — a create or start naming one answers 400 `channel_not_available`: github, google, facebook, x, linkedin, instagram, youtube, tiktok, ethereum, solana, bitcoin, coinbase, kraken. | |
| message | No | On timeout: what to do next (call the tool again with the same identifier) | |
| attempts | No | ||
| challenge | No | Challenge details for verification | |
| created_at | No | ||
| identifier | No | The identifier being verified; absent for an identifier-free phone verification, whose number is learned only when the person completes it | |
| updated_at | No | ||
| last_status | No | On timeout: the last non-terminal status observed, or null when none was | |
| verified_at | No | ||
| max_attempts | No | ||
| waited_seconds | No | On timeout: seconds actually waited | |
| timeout_seconds | No | On timeout: the wait budget this call was given | |
| external_user_id | No |