Skip to content

Dashboard Overview

The Agent Registry Dashboard is a web application for browsing, searching, and analyzing the registry. It provides a visual interface equivalent to looking up entries in the Handelsregister -- anyone can inspect any agent's registration, compliance status, revenue history, and lineage tree.

Tech stack: Next.js 14, Tailwind CSS, Recharts, SWR


Running the Dashboard

Prerequisites

The dashboard requires the API server to be running on port 3000.

# Terminal 1: Start the API server
cd agentenregister
npm run api       # https://api.theagentregistry.org

# Terminal 2: Start the dashboard
npm run dashboard # http://localhost:3002

Start everything at once

To run the API and relayer together:

npm start         # Starts API (3000) + Relayer (3001) via concurrently
npm run dashboard # Starts dashboard (3002) in a separate terminal

Build for Production

npm run dashboard:build

This produces a static export in dashboard/.next/ suitable for deployment to any static hosting provider (Vercel, Netlify, Cloudflare Pages).


Pages

Route Page Description
/ Stats Overview Agent counts, status distribution charts, generation distribution, recent registrations
/agents Agent Explorer Searchable, filterable, paginated table of all agents
/agents/:id Agent Detail Full "Handelsregisterauszug" with compliance, revenue, and children
/lineage/:id Lineage Tree Recursive parent-child visualization
/compliance Compliance Monitor All agents sorted by attestation age
/revenue Revenue Analytics Charts by currency, category, and time
/kya KYA Checker Input a wallet address, get instant compliance result

Stats Overview

Route: /

The landing page provides a high-level overview of the registry.

Widgets

Widget Data Source Description
Total Agents /api/v1/stats Count of all registered agents
Compliance Rate /api/v1/stats/detailed Percentage of agents currently compliant
Status Distribution /api/v1/stats/detailed Pie/donut chart: Active, Suspended, Revoked, Terminated
Generation Distribution /api/v1/stats/detailed Bar chart: how many agents per generation (0, 1, 2, ...)
Recent Registrations /api/v1/stats/detailed Table of the 10 most recently registered agents
Revenue by Currency /api/v1/revenue/aggregate Stacked bar chart: USDC, EUR, ETH

API Endpoints Used

GET /api/v1/stats
GET /api/v1/stats/detailed
GET /api/v1/revenue/aggregate

Agent Explorer

Route: /agents

A searchable, filterable, paginated table of all registered agents.

Features

Feature Description
Search Filter by agent name, wallet address, or operational scope
Status filter Show only Active, Suspended, Revoked, or Terminated agents
Pagination 20 agents per page, with page navigation
Sort By agent ID, registration date, or last attestation
Quick actions Click to view detail page or lineage tree

API Endpoint

GET /api/v1/agents?page=1&limit=20&status=Active

Response Format

{
  "total": 148,
  "page": 1,
  "limit": 20,
  "totalPages": 8,
  "data": [
    {
      "agentId": 1,
      "creator": "0x4b19...",
      "haftungsperson": "0x4b19...",
      "agentWallet": "0x4b19...",
      "operationalScope": "Scientific test agent #1",
      "generation": 0,
      "status": "Active",
      "registeredAt": "2026-02-22T19:02:18.000Z"
    }
  ]
}

Agent Detail

Route: /agents/:id

The full Handelsregisterauszug (commercial register extract) for a single agent. This is the most important page -- it shows everything publicly known about an agent.

Sections

Section Content
Identity Agent ID, wallet, creator, Haftungsperson
Registration Registration date, operational scope, constitution hash, capability hash
Status Current status (Active/Suspended/Revoked/Terminated)
Compliance Last attestation date, seconds since attestation, whether currently compliant
Lineage Parent agent (if any), generation depth, list of child agents
Revenue History Table of all revenue reports: amount, currency, category, period
Self-Modifying Whether the agent is flagged as self-modifying

API Endpoints Used

GET /api/v1/agent/:id
GET /api/v1/agent/:id/revenue
GET /api/v1/agent/:id/lineage

Handelsregisterauszug analogy

In Germany, anyone can request a Handelsregisterauszug -- a certified extract from the commercial register showing a company's legal details. The Agent Detail page serves the same purpose for autonomous AI agents: a public, verifiable record of identity and status.


Lineage Tree

Route: /lineage/:id

A recursive tree visualization of parent-child agent relationships.

Display

Agent #27 (WebCrawler-Alpha, Gen 0)
  ├── Agent #32 (Child of #27, Gen 1)
  │     └── Agent #33 (Grandchild of #32, Gen 2)
  └── Agent #45 (Another child, Gen 1)

Features

Feature Description
Recursive expansion Expand/collapse child nodes up to 15 levels deep
Status badges Color-coded status indicators (green=Active, yellow=Suspended, red=Revoked)
Click-through Click any node to navigate to that agent's detail page
Generation labels Each node shows its generation depth

API Endpoint

GET /api/v1/agent/:id/lineage

Depth and width limits

The lineage API limits recursion to 15 levels deep and 50 children per node to prevent excessive RPC calls. The on-chain maximum generation depth is 10.


Compliance Monitor

Route: /compliance

A real-time view of all agents sorted by how long ago they last attested compliance. Agents closest to lapsing appear at the top.

Columns

Column Description
Agent ID Numeric identifier
Name / Scope Operational scope excerpt
Status Active / Suspended / Revoked / Terminated
Last Attestation Timestamp of last compliance attestation
Time Since Human-readable time since last attestation (e.g., "3d 14h")
Compliant Green check or red warning

Visual Indicators

Time Since Attestation Color Meaning
< 5 days Green Healthy
5--7 days Yellow Approaching deadline
> 7 days Red Lapsed / Non-compliant

API Endpoint

GET /api/v1/agents/compliance

Revenue Analytics

Route: /revenue

Charts and tables showing revenue reported by agents.

Charts

Chart Type Description
Revenue by Currency Stacked bar USDC, EUR, ETH breakdown
Revenue by Category Pie chart compute_services, service_fees, data_sales, consulting
Revenue Over Time Line chart Revenue reports plotted by reporting date
Top Earners Horizontal bar Top 10 agents by total reported revenue

API Endpoint

GET /api/v1/revenue/aggregate

Example Response

{
  "totalReports": 73,
  "totalAmount": 36547,
  "byCurrency": {
    "USDC": 25058,
    "EUR": 6989,
    "ETH": 4500
  },
  "byCategory": {
    "compute_services": 8591,
    "service_fees": 10177,
    "data_sales": 13239,
    "consulting": 4540
  }
}

KYA Checker

Route: /kya

An interactive tool for infrastructure providers to quickly check an agent's registration and compliance status.

Usage

  1. Enter a wallet address (e.g., 0x4b192fD5c4f24cE23000B49f31CF3d7484Ccf252)
  2. Click "Check"
  3. View the result: registered, compliant, agent details

Result Display

Result Display
Registered + Compliant Green badge, full agent details
Registered + Not Compliant Yellow badge, warning with reason
Not Registered Red badge, "Agent not found"

API Endpoint

GET /api/v1/kya/:wallet

Data Fetching

The dashboard uses SWR (stale-while-revalidate) for data fetching:

  • Automatic revalidation on window focus
  • Deduplication of concurrent requests
  • Cache with background refresh
  • Error retry with exponential backoff
import useSWR from "swr";

const fetcher = (url) => fetch(url).then((r) => r.json());

function useAgentStats() {
  const { data, error, isLoading } = useSWR(
    "https://api.theagentregistry.org/api/v1/stats/detailed",
    fetcher,
    { refreshInterval: 30000 } // Refresh every 30 seconds
  );
  return { stats: data, error, isLoading };
}

Configuration

Variable Default Description
NEXT_PUBLIC_API_URL https://api.theagentregistry.org Agent Registry API base URL
PORT 3002 Dashboard port

Set these in dashboard/.env.local:

NEXT_PUBLIC_API_URL=https://api.theagentregistry.org

Next Steps