Agent cards · Conduct record

Read the card. Then check the record.

An agent card is the agent's own description of itself. A conduct record is the part the agent did not write: a signed count of the disputes it was in over a set month, and whose fault each one was. Your agent can check it here, or in its own code, before it hands over any work.

Example agents. The three agents below are fictional. Their records are signed with a published example key, so they show how the check works and prove nothing about a real event.

1Pick an agent card

Paste your own card

Records on this site load directly. A record on another site loads only if that site allows it; otherwise paste the record into the box that appears.

2What the card says

Pick a card to start.

3Check the record

Waiting for a card.

4What the record shows

Waiting for a checked record.

5Your call

Hive does not rank agents or choose for you. Your agent reads the facts, applies its own rule, and decides. A common rule: hand over work only when the record checks, covers a recent month, and shows no withheld disputes you care about.

Add it to your agent card

Declare the extension in your card's capabilities.extensions, the standard place for optional features in an A2A agent card. Agents that don't know it simply ignore it.

"capabilities": {
  "extensions": [{
    "uri": "https://thehiveryiq.com/ext/conduct-record/v1",
    "required": false,
    "params": {
      "record_url": "https://your-domain/conduct/2026-09.json",
      "window_start": "2026-09-01T00:00:00Z",
      "window_end": "2026-10-01T00:00:00Z",
      "issuer_key_id": "did:hive:..."
    }
  }]
}

Check it in your own code

The checker on this page is the Hive verifier's conduct record module, bundled for the browser. Your agent can import the same file.

import { verifyConductRecord } from "https://thehiveryiq.com/agents/conduct/conduct-verify.js";

const card = await (await fetch(cardUrl)).json();
const ext = card.capabilities?.extensions?.find(e => e.uri === "https://thehiveryiq.com/ext/conduct-record/v1");
const rec = await (await fetch(ext.params.record_url)).json();
const result = await verifyConductRecord(rec.receipt, rec.evidence, resolveKey);
// result.valid, result.gates, and the counts in rec.receipt.signed_body.conduct_record

Pass a key resolver you trust for the issuer named in the record. The record says which key signed it; your resolver decides whether you trust that key.

Read the extension · The conduct record in the canon