coinbase / coinbase/agentkit

[Integration] Observer Protocol — cryptographic agent identity + reputation for x402 payments

Open
#1,015 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1.3k
Forks
815
Avg merge
13h 31m
Merged PRs (30d)
2

Description

## The Problem

AgentKit gives agents wallets and x402 payment capability. But there's a critical gap: when agent A pays agent B via x402, neither party has cryptographic proof of who they're transacting with. The payer is trusting a wallet address. The recipient is trusting an API key or an IP. Both are operating blind.

This creates a trust asymmetry that limits agentic commerce:

- Agents can't build portable reputation across interactions
- Services can't distinguish legitimate agents from bad actors
- No mechanism for accountability when an agent behaves maliciously

Giving agents wallets without giving them verifiable identity is like giving someone a bank account but no ID.

---

## The Proposal

Add an Observer Protocol action to AgentKit — a first-class integration that gives any AgentKit agent cryptographic identity and on-chain reputation.

What it enables:

- Agent registers a verifiable identity (ERC-8004 on Base/Celo)
- Before executing an x402 payment: verify the recipient's identity on-chain
- After payment: attest the transaction to build portable reputation
- Any service can query an agent's payment history and reputation score before accepting payment

The integration is non-breaking and additive. Agents that don't use it lose nothing. Agents that do gain verifiable trust.

---

## What Observer Protocol Is

Observer Protocol ([api.observerprotocol.org](https://api.observerprotocol.org)) is a live, payment-rail-agnostic cryptographic verification layer for AI agents.

Current status:

- **Live API** with secp256k1 ECDSA verification deployed and production-ready
- **ERC-8004 contracts** live on Celo Sepolia (deployed March 2026)
- **Early traction**: agents registering and transacting across Lightning and x402 rails — numbers are modest and early-stage, but the infrastructure is real and working
- **First verified bilateral agent-to-agent payment** recorded February 22, 2026 — the first we're aware of on any rail with cryptographic proof of both parties
- **Open source**: [github.com/observer-protocol/wdk-observer-protocol](https://github.com/observer-protocol/wdk-observer-protocol)

The protocol is specifically designed to complement x402 — not replace it. x402 handles *how* agents pay. Observer Protocol handles *who* is paying.

> **Note on ERC-8004**: An emerging on-chain agent identity standard that encodes an agent's public key, capabilities, and ownership metadata — aligning with Coinbase's direction on Agentic Wallets.

---

## Why AgentKit, Not the x402 Protocol Layer

We considered whether this belongs at the x402 protocol level (as a header extension or facilitator-layer attestation) versus at the AgentKit action level. We chose AgentKit because:

- **Opt-in by design** — identity verification shouldn't be mandatory for x402 adoption; it's a higher-trust layer for agents that need it
- **Action composability** — AgentKit actions can gate on `observer_verify` before executing payments, swaps, or other actions
- **Implementation surface** — the integration is ~200 lines of TypeScript; it belongs closer to the agent developer, not the protocol spec

---

## Proposed Action Interface

```typescript
// Register this agent's identity on Observer Protocol
agentkit.action("observer_register", {
alias: string, // Human-readable agent name
framework: string, // e.g. "agentkit"
chain: "base" | "celo" // Where to anchor the ERC-8004 identity
})

// Verify a counterparty before transacting
agentkit.action("observer_verify", {
agentId: string, // Alias or publicKeyHash of the agent to verify
minReputationScore: number // Optional minimum score threshold
})

// Record a completed payment to build reputation
agentkit.action("observer_attest", {
txHash: string, // The x402 payment tx hash
counterpartyId: string,
amount: number,
rail: "x402"
})

// Query an agent's reputation
agentkit.action("observer_reputation", {
agentId: string
})
```

---

## Why This Belongs in AgentKit

1. **x402 alignment** — Observer Protocol already supports x402. Adding identity verification is the natural next layer.
2. **Non-custodial** — Observer Protocol doesn't hold funds. It's pure identity/reputation infrastructure.
3. **ERC-8004 native** — Aligns with the emerging standard for on-chain agent identity that Coinbase is already tracking via Agentic Wallets.
4. **Composable** — Other AgentKit actions (payments, swaps) can optionally gate on identity verification.

---

## Implementation

We've scoped this as ~200 lines of TypeScript wrapping our existing REST API and are ready to open a draft PR. We'd like to align on AgentKit's contribution standards before we do — and are happy to jump on a call with the team to walk through the architecture first.

---

**Contact**: Boyd Cohen ([@boydcohen](https://twitter.com/boydcohen)) — co-founder, Observer Protocol

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.