> ## 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.

# Build a verifiable agent

> Create or import an agent, then chat or start a Pro job.

Create or import the agent on your profile. Then do the work.

Chat now. Pro jobs run in the background or on a schedule. Open **Connections** to link apps. [Connections](./connector-integrations)

Cursor, Claude Code, Codex, Hermes, and Grok can execute the same agent.

Default is your signed-in profile. Use **`generate`** only for a dedicated spend key.

To bill hosted verification through your product, complete [Sell access](../quickstart). Field reference: [Agent concepts](../agents/concepts).

## MCP

<Steps>
  <Step title="Check">
    **`proofable_context`** → **`proofable_agent_link`** with both **`agentWallet`** and **`agentId`**. Done if **`linked: true`**.
  </Step>

  <Step title="Create">
    **`proofable_agent_create`** when results are missing.
  </Step>

  <Step title="Finish">
    Follow **`next_action`**. Use **`generate`** only for a dedicated spend key.
  </Step>

  <Step title="Confirm">
    **`proofable_agent_link`** until **`linked: true`**.
  </Step>
</Steps>

## SDK

For a dedicated agent wallet, keep the identity result from the agent-signed step, then build a delegation-only hosted callback:

```javascript theme={"dark"}
import { getHostedAgentCreateUrl } from '@proofable/sdk';

const hostedUrl = getHostedAgentCreateUrl({
  agentId: 'workflow-orchestrator',
  agentWallet,
  controllerWallet,
  identityQHash,
  allowedActions: ['read_context', 'execute_jobs'],
  deniedActions: ['send_message'],
  runtimePolicy: { requiresHumanApproval: true },
  returnUrl: 'https://app.example.com/agents/callback',
});
```

| Step      | Page                                          |
| --------- | --------------------------------------------- |
| Identity  | [Agent identity](../agents/agent-identity)    |
| Authority | [Agent authority](../agents/agent-delegation) |
| Billing   | [Billing](../platform/billing)                |
| Start     | [Start](/)                                    |

Schemas: **`docs/verifiers/schemas/`**

## Agent that pays

To let an agent pay for metered APIs on its own, give its authority a spend cap and the payments scope, then let it settle pay-per-call requests:

1. Grant authority with `scope: 'payments:x402'`, `allowedPaymentTypes: ['x402']`, and a `maxSpend` cap. See [Agent authority](../agents/agent-delegation).
2. The agent calls your priced endpoint; a `402` returns the price.
3. The agent pays and retries with a `PAYMENT-SIGNATURE` header. Full flow: [Pay per call](../platform/x402).

The `maxSpend` cap is enforced as a hard stop, so the agent cannot exceed its budget.

## Related

<CardGroup cols={2}>
  <Card title="Agents overview" icon="robot" href="../agents/overview">
    Start here.
  </Card>

  <Card title="MCP overview" icon="plug" href="../mcp/overview">
    Tool list and auth.
  </Card>
</CardGroup>
