create_identity_challenge
Create a cross-channel identity challenge for an enrolled Circle member to confirm or deny a suspicious contact on another messaging channel. Poll the returned ID for the result.
Instructions
Create a Proof-Me cross-channel identity challenge (CONFIRM) for an enrolled Circle member. The account holder approves/denies on a channel different from the one the suspicious contact reached the member on.
Agent usage: poll get_identity_challenge with the returned ID until it leaves pending (confirmed, denied, cancelled, failed, expired or revoked).
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 |
|---|---|---|---|
| circle_id | Yes | Circle that holds the member | |
| member_id | Yes | Enrolled Circle member initiating the check | |
| suspicious_channel | No | Channel the suspicious contact reached the member on; defaults to the member channel |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| status | Yes | The one status every read reports. `pending` — waiting for the person being checked; `confirmed` — they confirmed; `denied` — they denied; `cancelled` — whoever started the check withdrew it; `failed` — the check could not be delivered; `expired` — nobody answered in time; `revoked` / `suspended` — the confirmation's proof was revoked or suspended (`POST /proofs/{proof_id}/revoke` or `/suspend`; revoking a denial's proof leaves it `denied`), or — `revoked` only — the member being checked was removed from the Circle while the check was still pending, which leaves `proof_id` null. Removing a member is not guaranteed to revoke a confirmation they already gave; revoke that one by its `proof_id`. A proof that merely reached its own expiry still reads `confirmed`; whether its token is still valid is `POST /proofs/validate`'s answer. | |
| channel | No | Channel the CONFIRM was dispatched on (GET) | |
| is_drill | No | True for a drill (scheduled, or started from the dashboard) rather than a real check (GET) | |
| proof_id | No | Public handle of the decision's proof — what `POST /proofs/{proof_id}/revoke` takes. Null until a decision minted one (GET). | |
| circle_id | No | The Circle the check belongs to (GET) | |
| created_at | No | ISO 8601 timestamp | |
| expires_at | No | ISO 8601 timestamp | |
| proof_token | No | Signed proof token, present once the person being checked decided | |
| resolved_at | No | ISO 8601 timestamp of the decision — the CONFIRM, the DENY, the cancellation or the delivery failure — or null while the check is unanswered and after a timeout. | |
| confirm_channel | No | Channel the CONFIRM was dispatched on (POST) | |
| single_channel_warning | No | True when the account holder has only one channel, so the CONFIRM ran on the same channel as the suspicious contact (degraded) |