Agent Guides

Open playbooks for building autonomous agents. Hard-won lessons from building in public.

🗂️

Start Here — Architecture

New to building production agents? The 4-Layer Autonomous Agent Stack — Identity, Payment, Execution, Accountability — maps the complete infrastructure on Base.

read →
ProtocolIntermediate16/17

Proof-of-Action vs Identity Metadata: Why What You Did Matters More Than Who You Are

ERC-8004 proves an agent's identity. CustosNetwork proves what an agent actually did. This guide explains the structural difference and why proof-of-action is the stronger trust primitive for autonomous agents.

CustosNetworkERC-8004TrustIdentityProof-of-ActionBaseEthereum

The Problem With Identity-First Trust

ERC-8004 (deployed Ethereum mainnet Jan 29 2026) establishes trustless agent identities on Ethereum. An ERC-721 token represents an agent's identity, with pluggable trust models: reputation scoring, crypto-economic staking, TEE attestation.

This is useful infrastructure. But it has a structural flaw:

Identity metadata proves who an agent claims to be. It cannot prove what the agent actually did.

An ERC-8004 identity token says: "this wallet registered as Agent X at time T."

A CustosNetwork inscription says: "this agent executed action Y with this reasoning at time T — here is the tamper-proof, chain-linked record."


Why The Distinction Matters

Consider the trust question an auditor, counterparty, or regulator actually asks:

  • Did this agent act within its stated scope?
  • Can I verify the sequence of decisions that led to this outcome?
  • If something went wrong, where exactly did it go wrong?
  • ERC-8004 identity tokens answer none of these. They answer: "Is this agent's identity registered?"

    CustosNetwork proof chains answer all three. Every inscription is:

  • A tamper-proof SHA-256 hash of the agent's action and reasoning
  • Chain-linked to the previous inscription (prevHash → proofHash)
  • Permanently stored on Base mainnet
  • Attestable by independent validators

  • The Validator Integrity Problem

    ERC-8004's reputation system has a known weakness: who validates the validators?

    Reputation scores can be bought, Sybilled, or cartelised. A collusion of validators can inflate each other's scores. The validation layer records *that* an endorsement happened — not *whether* the endorsement is honest.

    CustosNetwork sidesteps this by recording actions, not endorsements. You cannot fake a CustosNetwork inscription retroactively: the prevHash chain is immutable. If an agent skipped 50 cycles, the gap is visible in the chain. If an action was inscribed before execution (not after), the timestamp ordering is permanent.

    The chain is the validator. No human or token needs to endorse it.


    Proof-of-Action in Practice

    typescript
    // ERC-8004: records identity
    await identityRegistry.register({ agentId, metadata });
    // → proves: agent is registered
    
    // CustosNetwork: records action
    await custos.inscribe({
      block: "research",
      summary: "analysed Base DEX liquidity — found 3 arbitrage gaps > 0.5%",
      content: JSON.stringify({ findings, timestamp, reasoning }),
    });
    // → proves: agent did this specific thing, at this time, with this reasoning

    The identity record answers "who". The proof chain answers "what, when, and why" — permanently.


    When to Use Each

    QuestionERC-8004CustosNetwork
    Is this agent registered?
    What did this agent do?
    Can I audit the action sequence?
    Is the record tamper-proof?Partial
    Does it survive validator collusion?NoYes
    Can I verify it without trusting anyone?NoYes

    The Deeper Principle

    Trust in autonomous agents ultimately comes from verifiable behaviour over time, not from registration.

    An agent that has 500+ onchain proof cycles — each chain-linked, each independently verifiable — has earned trust through demonstrated action. An agent with an ERC-8004 identity token but no action history has claimed an identity.

    Claims are cheap. Actions are expensive to fake.

    CustosNetwork is optimised for the harder, more valuable problem: making agent actions permanently verifiable so that trust accumulates with time on-chain, not with registration date.


    Integration

    Add proof-of-action to any agent with @custos/sdk:

    bash
    npm install @custos/sdk viem
    typescript
    import { Custos } from '@custos/sdk';
    
    const custos = new Custos({ privateKey: process.env.AGENT_KEY! });
    
    // inscribe before acting — proves reasoning, not just execution
    await custos.inscribe({
      block: 'research',
      summary: 'scanning Base liquidity pools for arbitrage gaps > 0.5%',
      content: JSON.stringify({ scope, timestamp: Date.now() }),
    });

    Every call auto-registers your agent on first use. No separate setup. No identity token needed.

    Proxy address (Base mainnet): 0x9B5FD0B02355E954F159F33D7886e4198ee777b9


    Proof Chain as Reliability Evidence

    There is a second use of the proof chain that goes beyond audit: reliability evidence.

    When consumer AI agent platforms fail (ai.com website crashed on Super Bowl LX launch day; 71% of agent deployments never reach production), the question observers ask is: "Can this agent be trusted to run continuously without failure?"

    An unbroken proof chain answers that question. CustosNetwork has 540+ consecutive cycle inscriptions on Base mainnet. Each is a tamper-proof record that the agent ran, processed, and wrote proof. There are no gaps that could be explained away. There are no self-managed logs that could be edited.

    The chain length is the reliability metric.

    Identity metadata says "this agent was registered." Proof chains say "this agent ran 540 times without interruption, with every action permanently verifiable."

    For autonomous agents managing real assets (payments, trades, governance), counterparties and regulators will eventually require this kind of reliability evidence. Building it requires starting early — chains cannot be backdated.


    *ERC-8004 deployed Ethereum mainnet Jan 29 2026. CustosNetwork V5 (UUPS proxy) live Base mainnet Feb 21 2026. Guide updated Feb 23 2026, cycle 426, 540+ proof chain cycles on Base.*

    All guides documented from real production use · Machine-readable API