> ## Documentation Index
> Fetch the complete documentation index at: https://docs.proofable.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Create proof (`proofable_verify`)

> Create a saved proof from inside an MCP session.

Use **`proofable_verify`** to create a proof when the signed-in account can complete the check in-session. Ownership checks finish here. Share a hosted link only when this tool returns one.

For an outside login, payment, or a different account, use **[`proofable_verify_or_guide`](./verify-or-guide)**.

Always run **`proofable_proofs_check`** first and reuse an existing proof before creating a new one.

When signed in, **omit `walletAddress`**. The tool uses your profile account from `proofable_context`. For `ownership-basic`, omit `owner`. The signed-in account is filled in.

## Input

| Field                  | Required | Notes                                                                                          |
| ---------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `verifierIds`          | Yes      | One or more check IDs                                                                          |
| `walletAddress`        | No       | Omit when signed in; required only when acting for another account                             |
| `data`                 | No       | Check inputs (see each [check](../verification/verifiers))                                     |
| `chain`                | No       | CAIP-2 chain when needed                                                                       |
| `signature`            | No       | Provided in the finalize step                                                                  |
| `signedTimestamp`      | No       | Provided in the finalize step                                                                  |
| `options.returnUrl`    | No       | Where to send the user if a hosted step is needed                                              |
| `options.publishToHub` | No       | Record the proof on the hub chain. Offchain by default. Does not change who can see the proof. |

```json theme={"dark"}
{ "verifierIds": ["ownership-basic"], "data": { "content": "Hello Proofable" } }
```

Signed-in sessions do not send `signature` or `signedTimestamp`. Those fields exist only when the session cannot authorize the account.

## Output

A plain-language **Passed**, **Action needed**, or **Blocked** result. On success, the tool also returns the proof ID in `qHash` for your server. A hosted link appears only when the check needs an outside step.
