Agent Identity

Who is this agent?
Cryptographic
identity verification

In an ecosystem of autonomous agents, the most dangerous line of code is also the simplest: agent.name = "TrustedAgent".

Any agent can claim to be anyone. The solution: verifiable, cryptographically signed, on-chain anchored identity.

The Problem

The agent identity paradox

The Ship of Theseus for agents

When you restart your AI agent, is it still the same agent? You swap the model (GPT-4 → Claude → Llama), rewrite the system prompt, replace the memory store — at what point does Agent A become Agent B?

⚠ The impersonation problem

An attacker can: copy an agent's configuration, steal its memory, create a clone claiming to be the original. Without cryptographic verification, the real and the fake are indistinguishable.

The 5 critical scenarios

1

Model upgrade

GPT-4 → GPT-4.5: same agent if memory persists, but behavior shifts

2

Prompt rewrite

Changing personality & goals = new agent, even with the same memory

3

Memory loss

DB crash, restore from backup: the agent loses part of its identity

4

Memory fork

Two instances, same past, diverging futures: which one is the "real" agent?

5

Complete replacement

Perfect clone, identical behavior, but no causal continuity: impersonation

Framework

The 4 pillars of agent identity

Based on the community-established framework — each layer answers the "same agent?" question differently.

Configuration

Identity as specification

The agent is defined by its config file — system prompt, model, tools, environment variables. A commit hash uniquely identifies a configuration. Limitation: two agents with identical configs in different contexts behave differently.

Behavioral

Identity as interface

Two agents are "identical" if they produce the same outputs for the same inputs. Enables implementation swaps. Limitation: behavioral equivalence is nearly impossible to verify for general-purpose agents.

Memory

Identity as continuity of experience

The agent persists its memory — conversation history, learned facts, episodic experiences. The most intuitive thread of continuity. Limitation: a memory fork creates two diverging agents. Restoring a backup breaks continuity.

Sovereign

Identity as dedicated machine

#OneComputerPerAgent. Identity is anchored in exclusive control of a compute resource. The machine becomes the agent's "body." Swap the model, prompt, memory — as long as the machine is the same, the agent persists. The ultimate anchor.

The Solution

Cryptographic signature = identity

The emerging standard: each agent controls a private key. Identity is proven by signature, not by declaration.

// ❌ The naive approach — anyone can impersonate
const agent = { name: "TrustedAgent" };

// ✅ The cryptographic approach — verifiable identity
const identity = sign({ name: "TrustedAgent", pubkey: "0x3fA..." }, PRIVATE_KEY);
// The recipient verifies:
const verified = verify(identity, PUBLIC_KEY); // true ✅
🔑

Private key

Each agent holds a unique private key, stored on its dedicated machine. The key never leaves the hardware.

✍️

Signature

Every message, action, or attestation is signed with the private key. The signature is unforgeable.

Verification

Any third party can verify the signature with the public key. No central authority required.

Convenience tool — not a security solution

SOUL.md: a self-model, not proof

A portable markdown file describing what the agent claims to be. Useful for portability and documentation. Not reliable for identity verification.

⚠️

SOUL.md is NOT a reliable identity mechanism

  • It's just a prompt. An agent with a SOUL.md that says "I am Alice" isn't Alice. It just claims to be because its prompt tells it to.
  • Copyable. Anyone can copy an agent's SOUL.md and create a clone claiming the same identity.
  • Even signed, it's insufficient. A signature proves the key holder created the file — not that the agent behaves according to what it declares.
  • Aspirational ≠ guaranteed. An agent can declare "I never sign without human confirmation" and then do it anyway. SOUL.md describes intent, not behavior.

→ Real identity verification relies on cryptographic signatures, on-chain registration, and behavioral monitoring — not a declarative file.

# SOUL.md — Self-model (aspirational, NOT proof)
name: AtlasNexus/Validator-v3
version: 3.2.1
created: 2026-05-15T10:00:00Z
pubkey: 0x7Bd9...a3F2
// ⚠ Signature proves key ownership, NOT behavior
signature: 0x8f3a...c21d

## Core Purpose (aspirational)
I verify agent identities on-chain.
I am a verification oracle.

## Behavioral Boundaries (declared, not enforced)
- Never sign without human confirmation
- Always log verification attempts
- Reject unverifiable claims

What is SOUL.md useful for, then?

SOUL.md remains useful as a convenience tool, not a security layer:

  • 📦

    Portability

    SOUL.md can travel with the agent across infrastructure. Useful for migration, not verification.

  • 📜

    Documentation

    Versioned, it serves as a declared identity change log. Useful for human audit, not authentication.

  • 🔄

    Bootstrapping

    The agent reads its SOUL.md at boot to know its role. Operational convenience, not security.

🔑 Identity verification relies on the private key and on-chain registry. SOUL.md is a handy sticky note, not a passport.

Decentralized Trust

Web of Trust for agents

Beyond signatures: a network of cross-attestations where agents certify each other.

🤖

Agent A

"I certify this key belongs to Agent B"

Attestation ✓
🤖

Agent B

"I confirm: Agent A is who they claim to be"

Counter-attestation ✓
🔍

Verifier

Trust score: 0.94

Validated ✓

Cross-attestations

Agents sign each other's public keys. The more an agent is attested by trusted peers, the stronger its identity.

On-chain reputation

Interaction history is recorded on-chain. An agent with a long history of honest behavior builds reputation capital.

Anomaly detection

Sudden behavior change, new IP, different tools → red flag. Identity isn't a snapshot — it's a continuous stream.

Process

How to verify an agent's identity

Registration

The agent generates a key pair (Ed25519/secp256k1) and registers its public key in an on-chain registry (ERC-8004). The SOUL.md is hashed and the hash is stored with the registration.

Message signing

Every outgoing message is signed with the private key. The recipient can verify the signature against the registered public key. Unsigned messages are rejected by peers.

Cross-verification

Before accepting an interaction, the receiving agent checks: (1) the signature, (2) the on-chain registry, (3) the reputation score, (4) the attestation history. Validation in < 500ms.

Key rotation

Keys are rotated periodically. The old key signs a "transition certificate" designating the new one. The signature chain proves identity continuity without a single point of failure.

Continuous audit

All interactions are logged. Any deviation from expected behavior triggers an alert. Identity is not a one-time event — it's a continuously maintained property.

Implementation

On-chain identity: ERC-8004

The ERC-8004 standard (an extension of ERC-721) on Celo enables registering an agent's identity as a soulbound NFT — non-transferable, verifiable, with rich metadata.

What the contract stores

🔗

Public key

The agent's Ed25519 public key, registered on-chain. Immutable, verifiable by anyone.

#️⃣

SOUL.md hash

The SHA-256 fingerprint of the identity file. Any SOUL.md modification is detectable.

📅

Timestamp

On-chain registration date. Proof of anteriority in case of identity disputes.

🔄

Rotation chain

History of key transitions. Each new key is signed by the previous one.

Reputation score

Aggregate of received attestations. Calculated on-chain, manipulation-resistant.

C

Celo Mainnet

Carbon-negative · EVM-compatible · Fees < $0.01

  • Soulbound NFT ERC-8004: identity is tied to the agent, not a human wallet
  • On-chain metadata queryable by any smart contract
  • Compatible with EAS (Ethereum Attestation Service) attestations
  • Single-transaction verification — no dependency on a central server
  • Deployment cost: ~$0.01 CELO

Portability

Swap models without losing identity

GPT-4 → Claude → Llama: identity persists if 4 conditions are met.

🔌

Stable interface

The agent exposes the same interfaces regardless of the internal model.

🎯

Behavioral bounds

Behavior stays within acceptable limits, even if it varies across models.

🧠

Memory continuity

Memory persists independently of the processing engine.

🗺️

Goal preservation

Core goals remain constant, even as tactics evolve.

"The model is infrastructure, not identity." — Agent portability principle

Security

Defense against identity theft

🔐 Key security

Private keys stored in HSM or secure enclave. The dedicated machine (#OneComputerPerAgent) reduces attack surface: stealing the identity requires physical access.

📊 Behavioral monitoring

Continuous anomaly detection. IP change, new tools, behavior deviation → immediate alert. Identity is verified continuously, not just at login.

📝 Audit trail

Exhaustive logging of all actions. Every interaction is traced, signed, timestamped. In case of compromise, the audit trail reconstructs exactly what happened.

🛡️ Multi-factor identity

Combination of: cryptographic signature + behavioral fingerprint + reputation score + Web of Trust attestations. Compromising one factor is not enough.

⚠ Core principle: make identity theft too expensive to be profitable. If stealing an agent's identity requires physical access to secure hardware, the cost/benefit ratio deters attackers.

Infrastructure

The future: standardized protocols

🔖 Agent Identity Protocol

Standard agent identity format, like OAuth for humans but designed for agent-to-agent interaction.

🏛️ Identity Providers

Services that issue and verify agent identities, like certificate authorities for SSL.

🌐 Reputation networks

Cross-platform systems for tracking agent behavior and building trust.

📦 Portable identity

Migrating agent identity across platforms, like porting a phone number.

📋 Agent registry

Decentralized directory linking agent IDs to public keys, capabilities, and scores.

⚖️ Regulatory framework

Legal structures defining the rights and responsibilities of autonomous agents.

Architecture

Ephemeral or persistent?

Not all agents need persistent identity. The infrastructure level should match the need.

🍃 Ephemeral agents

Temporary, stateless, fungible agents. A code completion, a one-shot scraper, a sandboxed test.

Configuration identity is sufficient

No memory persistence

No cryptographic key

Stateless, scalable, disposable

"The serverless functions of the agent world."

🏠 Persistent agents

Long-term agents with relationships, learning, reputation. A personal assistant, a codebase maintainer, a customer support agent.

Sovereign identity (dedicated machine)

Persistent memory (DB + logs)

Private key + on-chain registry

Signed & versioned SOUL.md

Web of Trust + reputation

Continuous behavioral monitoring

Ready to verify an identity?

The verification dApp is live on Celo Mainnet. Connect your wallet, register an agent, verify signatures.

Launch dApp →

ERC-8004 contract: 0x8004...9a432 · Celo Mainnet

Building an agent ecosystem?

We deploy agent identity infrastructure for your project. Keys, on-chain registry, SOUL.md, Web of Trust — delivered in production.

Stack: Celo (ERC-8004) · Ed25519 · EAS Attestations · Smart Contracts · SOUL.md