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

# Agent identity

> Give an agent a name and account. Identity alone grants no permission.

Create an agent identity linked to your profile.

**Check ID:** `agent-identity`

Listed `skills` are metadata only. They do not install MCP servers.

## Setup

<Steps>
  <Step title="Check">
    Call **`neus_context`**, then **`neus_agent_link`** with the agent address. If **`linked: true`**, you are done.
  </Step>

  <Step title="Create">
    Call **`neus_agent_create`** with a stable **`agentId`** and **`agentWallet`**. Follow the returned **`next_action`**.
  </Step>

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

```json theme={"dark"}
{ "agentId": "my-assistant", "agentWallet": "0x..." }
```

Set **`agentWallet`** to **`"generate"`** only for advanced bootstrap. Production apps should generate and store the key in their own key manager; NEUS does not custody agent keys.

[Agent create](../mcp/agent-create) · [Agent verification flow](./agent-verification-flow)

## SDK

For server-side or custom signing:

```javascript theme={"dark"}
import { NeusClient } from '@neus/sdk';

const client = new NeusClient({ apiUrl: 'https://api.neus.network' });

await client.verify({
  verifier: 'agent-identity',
  data: {
    agentId: 'my-assistant',
    agentWallet: '0x...',
    agentChainRef: 'eip155:8453',
    agentType: 'ai',
    description: 'My AI assistant',
  },
  walletAddress: '0x...',
});
```

The agent wallet signs this proof, so `agentChainRef` (CAIP-2, e.g. `eip155:8453`) is required unless your request already carries `chain` or `chainId`.

With optional metadata:

```javascript theme={"dark"}
await client.verify({
  verifier: 'agent-identity',
  data: {
    agentId: 'my-agent',
    agentWallet: '0x...',
    agentType: 'ai',
    description: 'My AI assistant',
    capabilities: { search: true, mcp: true },
    instructions: 'Operating instructions (max 16000 chars)',
    skills: [{ id: 'web-search', kind: 'mcp' }],
    services: [{ name: 'metrics', endpoint: 'https://metrics.example.com/v1', version: '1.0' }],
  },
  walletAddress: '0x...',
});
```

Or use [hosted verify](../cookbook/auth-hosted-verify).

## Fields

| Field           | Required | Description                                                                                                     |
| --------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| `agentId`       | Yes      | Unique id (1–128 chars)                                                                                         |
| `agentWallet`   | Yes      | Agent address (EVM or Solana)                                                                                   |
| `agentChainRef` | Yes\*    | CAIP-2 chain for the agent wallet (e.g. `eip155:8453`). \*Optional if the request supplies `chain` or `chainId` |
| `agentLabel`    | No       | Display name                                                                                                    |
| `agentType`     | No       | `ai`, `bot`, `service`, `automation`, or `agent`                                                                |
| `description`   | No       | Short description (500 chars)                                                                                   |
| `capabilities`  | No       | Feature flags — see schema                                                                                      |
| `instructions`  | No       | System prompt and policy (16000 chars)                                                                          |
| `skills`        | No       | Up to 48 skill objects (`id` required)                                                                          |
| `services`      | No       | Up to 16 endpoints (`name` + `endpoint`)                                                                        |

Full schema: [`agent-identity.json`](https://github.com/neus/network/blob/main/docs/verifiers/schemas/agent-identity.json).

## Result

You get a receipt **`qHash`**, signed by the agent address. This registers identity only. Add [`agent-delegation`](./agent-delegation) for permissions.

## Check status

```bash theme={"dark"}
GET /api/v1/proofs/check?verifierIds=agent-identity&address=0x...
```

In MCP: **`neus_agent_link`** or **`neus_proofs_check`**.
