# ValidationList

**Slug:** `validation-list`  
**Import:** `import { ValidationList } from "@p4n/erc8004-ui"`

> **NOTE — unofficial library.** `@p4n/erc8004-ui` is an independent, community-built project. It is not affiliated with, maintained by, or endorsed by the authors of ERC-8004. It reads the standard's on-chain data through public subgraphs; it does not speak for the standard.

## Description

Paginated list of individual validation entries with score, status, tag, validator address, and timestamp.

## Caveats

> **Warning:** The Validation Registry contract is recorded at the zero address on every chain checked — testnets included — so this component renders its empty state everywhere. Verified 2026-09-04 across Ethereum, Base, Polygon, BNB Smart Chain, BNB Chapel and Base Sepolia. See [Concepts › Validation Registry](https://erc8004-ui.vercel.app/docs/concepts#validation-registry).

## Usage

```tsx
import { ValidationList } from "@p4n/erc8004-ui"
<ValidationList agentRegistry="eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432" agentId={888} />
```

## Examples

### Completed Only

Filter to show only completed validations.

```tsx
<ValidationList agentRegistry="eip155:8453:0x8004...a432" agentId={888} statusFilter="completed" />
```

### Smaller Page Size

Show 5 items per page for a compact view.

```tsx
<ValidationList agentRegistry="eip155:8453:0x8004...a432" agentId={888} pageSize={5} />
```

## In Context

ValidationList in a trust panel alongside the verification badge and validation score.

```tsx
<AgentProvider agentRegistry="eip155:8453:0x8004...a432" agentId={888}>
  <div className="flex items-center gap-2">
    <AgentName />
    <VerificationBadge />
  </div>
  <ValidationScore />
  <ValidationList pageSize={3} />
</AgentProvider>
```

## API Reference

| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `agentRegistry` | `string` | no | — | Agent registry in the format "eip155:{chainId}:{contractAddress}". Required unless inside an <AgentProvider>. |
| `agentId` | `number` | no | — | ERC-721 token ID of the agent. Required unless inside an <AgentProvider>. |
| `className` | `string` | no | — | Optional CSS classes merged onto the component root for layout, spacing, or custom styling (e.g. Tailwind). |
| `pageSize` | `number` | no | `10` | Items per page. |
| `showValidatorAddress` | `boolean` | no | `true` | Show the validator's wallet address. |
| `showTimestamp` | `boolean` | no | `true` | Show the validation timestamp. |
| `statusFilter` | `"all" \| "completed" \| "pending" \| "expired"` | no | `"all"` | Filter validations by status. |
| `emptyMessage` | `string` | no | `"No validations yet."` | Custom message when there are no validations. |
| `headingLevel` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | no | `3` | Heading level for this component's title. The default is the level it was previously hardcoded to, so leaving it alone renders exactly as before. Set it to keep the component from breaking the surrounding page's heading order. |

## States

This component handles loading, error, empty, and not-found states internally. A skeleton placeholder is shown while fetching, an error message with details appears if the Subgraph is unreachable, and a short message is displayed when no data exists for this agent.

## Reference

- Live preview & full docs: https://erc8004-ui.vercel.app/docs/components/validation-list
- Markdown source: https://erc8004-ui.vercel.app/docs/components/validation-list.md
