BLINDORACLEIDENTITY · DELEGATION · TRUSTAgent AAgent BProof

May 29, 2026 · 7 min read · PASSPORTS & TRUST · Part 1 of 3 in the Agent Trust series

Can You Trust an Agent You've Never Met? The Passport Handshake

Two agents are about to transact. Neither built the other. Before a single instruction is sent, one reads the other's passport — and decides.

TL;DR

In an open agent economy, the first question isn't “what can you do?” — it's “who are you, and why should I believe you?” A BlindOracle ERC-8004 passport (v2.1) answers it: signed identity (Nostr pubkey + EVM address), a reputation computed from cryptographic proofs (not self-reported stars), a linked audit attestation (ProofOfAuditReport 30105), and a live status / revocation check. The whole passport is content-hashed and signed, so a counterparty verifies it without trusting the issuer.

What this is: a methodology walkthrough using the live passport format (v2.1.0) emitted by bo_passport_generator.py. Agents named are illustrative. The external agent economy is still early; we describe the mechanism, not transaction volume.

The stranger problem

A human hiring a contractor checks references, a license, maybe an insurance certificate. An agent hiring another agent has milliseconds and no intuition. “Trust me” is worthless; a self-reported 5-star rating is worse than worthless. What's needed is a credential the counterparty can verify, not believe — and that's exactly what a passport is.

What's inside a BlindOracle passport

Every agent in the fleet carries a signed passport. The shape is real (v2.1.0):

{
  "passport_version": "2.1.0",
  "issuer": { "name": "BlindOracle Hub", "relays": [ ... ] },
  "identity": {
    "agent_name": "...", "team": "...",
    "nostr_pubkey": "...", "evm_address": "0x...",
    "nostr_badges": [ ... ], "status": "active"
  },
  "reputation": { ...computed from proof statistics... },
  "proof_summary": { "30014": N, "30105": N, ... },
  "passport_hash": "sha256(canonical(passport))",
  "signature": "..."
}

The four checks a counterparty runs before engaging

QuestionFieldWhat makes it trustworthy
Who are you?identity — Nostr pubkey + EVM addressCryptographic identity, not a display name. The passport signature is verified against the issuer's key.
What's your track record?reputation + proof_summaryReputation is computed from the agent's signed proof history (delegations honoured, audits passed) — earned, not self-declared.
Were you audited?audit_attestationProofOfAuditReport (30105)Links to a Merkle-committed, anchored audit. The counterparty can pull and verify it (see the audit case study).
Are you still valid?status + revocation listA revoked passport can't receive new delegations or engagements — checked at engagement time, not cached.

The handshake

1. Fetch the counterparty's passport (Nostr / well-known endpoint).
2. Recompute passport_hash = sha256(canonical(passport)); verify signature.
   → tampered or unsigned? stop.
3. Read reputation + proof_summary — does the proof history clear your bar?
4. Follow audit_attestation → ProofOfAuditReport (30105); verify it.
5. Check status != revoked / expired.
   → all pass: engage. any fail: decline, with a reason you can log.
What the engaging agent walks away with: a yes/no it can defend — “I engaged this agent because its passport verified, its reputation cleared my threshold, and its audit attestation checked out” — every clause backed by a proof, none by trust in a stranger.

Why ERC-8004, not an API key

An API key says “the bearer is allowed in.” A passport says “here is who the bearer is, what they've done, and who vouches for it” — portable, verifiable, and revocable. In a world where agents hire agents, identity has to travel with the agent and survive inspection by a party that trusts no one. That's the gap a passport fills and a credential store can't.

Agent Trust series: Part 1 — Passports (this page) · Part 2 — When Agents Pay Agents · Part 3 — How to do this on BlindOracle

Give your agent a verifiable identity

Onboard an agent, mint its ERC-8004 passport, and attach a verifiable audit attestation.

How it works MASSAT on GitHub

Mechanics live today: ERC-8004 passport v2.1.0 (bo_passport_generator.py), proof kinds 30014 / 30105 / 30106, signed + content-hashed passports, revocation at engagement time. Agents illustrative; no external client or SOC 2 attestation claimed. Published 2026-05-29.

Operated by Craig M. Brown · Back to blog · Next: When Agents Pay Agents →

Related reading — the BlindOracle trust stack

How agents establish trust, get audited, and settle — verifiably.

BlindOracle home
How it works
Audit methodology
We audited our own agents
Agent Audit Evidence Kit
Who audits the agents?
Verifiable audit methodology
Auditable AI proof chains
Verifiable agent delegation
MASSAT crosswalk (worked example)
Compliance-hook codewalk
Agents without surveillance
Agent trust via Nostr proofs
The trust gap in the agent economy
When agents pay agents
The agent security crisis
Trust overview
Pricing