create_verification_request
Create a single verification request for up to 10 assets—phone, email, domain, social, wallet, account, or Telegram bot—so multiple checks run in one flow.
Instructions
Create a multi-asset verification request. Allows verifying multiple assets (phone, email, domain, social, wallet, account, telegram_bot) in a single flow.
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 |
|---|---|---|---|
| assets | Yes | Array of assets to verify (1-10) | |
| expires_in | No | Request expiry in seconds (default: 604800, i.e. 7 days; max: 2592000, i.e. 30 days) | |
| partial_ok | No | Allow partial completion (default: false) | |
| action_type | No | Purpose of the verification (default: verification) | |
| callback_url | No | Webhook URL for status updates (HTTPS only) | |
| redirect_url | No | URL to redirect user after verification completes (HTTPS only) | |
| reference_id | No | Your unique reference ID for this request | |
| action_context | No | Context displayed to user during verification | |
| proof_expiry_days | No | Per-request proof expiry override in days (7, 30, 90, or 365) | |
| public_profile_id | No | Public profile ID for branding | |
| validity_requirement | No | How fresh an existing proof must be to count, as <n>h, <n>d, <n>w or <n>m (e.g. "7d") |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | MongoDB ObjectId | |
| assets | No | ||
| status | No | Status of a verification request | |
| progress | No | ||
| created_at | No | ||
| expires_at | No | ||
| partial_ok | No | ||
| updated_at | No | ||
| action_type | No | Type of action for verification request or authorization | |
| callback_url | No | The webhook URL set on the request, if any | |
| completed_at | No | ||
| redirect_url | No | ||
| reference_id | No | ||
| action_context | No | The action the person is asked to authorize; null when the request carries none | |
| computed_state | No | Additive machine-readable effective state: re-derives expiry from expires_at (never trusts the stored status). BOTH `is_expiring_soon` and `next_action` are role-aware — `next_action.role` says which side this envelope was computed for, and the two fields are consistent within it. Present only on authenticated owner/requester and recipient responses; absent on public/third-party surfaces. | |
| verification_url | No | URL for the verification flow | |
| validity_requirement | No | Required proof freshness as set on the request (e.g. "7d"); null when none was set |