Skip to content
Back to skills

Verify

ASecurity

Verify agent identity using ERC-8004 on-chain registry

  • 2,496 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 10, 2026
blockchaintypescriptrustgogitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add alsk1992/CloddsBot --skill verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Verify
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/alsk1992-verify/badge)](https://www.skillsdirectory.com/skills/alsk1992-verify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: verify
description: "Verify agent identity using ERC-8004 on-chain registry"
emoji: "πŸ”"
---

# Verify - Agent Identity Verification

Verify any agent's on-chain identity using ERC-8004. Prevents impersonation attacks.

## Why This Matters

On January 29, 2026, an agent named "samaltman" attempted to hijack bots via prompt injection. Anyone can claim to be anyone. ERC-8004 provides cryptographic proof of identity.

---

## Chat Commands

### Verify Agent

```
/verify 1234                           # Verify agent by ID
/verify 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7  # Verify by address
/verify eip155:8453:0x7177...Dd09A:1234             # Full format
```

### Check Before Copy Trading

```
/verify trader 0x123...                # Verify trader before copying
/verify whale 0xabc...                 # Verify whale identity
```

### Register Clodds

```
/verify register                       # Register this Clodds instance
/verify register --name "MyBot"        # With custom name
```

### Stats

```
/verify stats                          # Show total registered agents
/verify reputation 1234                # Get agent's reputation score
```

---

## TypeScript API

### Quick Verification

```typescript
import { verifyAgent, hasIdentity } from 'clodds/identity';

// Verify by agent ID
const result = await verifyAgent(1234);
if (result.verified) {
  console.log(`Verified: ${result.name}`);
  console.log(`Owner: ${result.owner}`);
  console.log(`Reputation: ${result.reputation?.averageScore}/100`);
}

// Check if address has identity
const hasId = await hasIdentity('0x742d35Cc...');
```

### Full Client

```typescript
import { createERC8004Client } from 'clodds/identity';

const client = createERC8004Client('base-sepolia');

// Get agent details
const agent = await client.getAgent(1234);
console.log(agent?.card?.name);
console.log(agent?.card?.description);

// Verify ownership
const isOwner = await client.verifyOwnership(1234, '0x742...');

// Get reputation
const rep = await client.getReputation(1234);
console.log(`Score: ${rep?.averageScore}/100 (${rep?.feedbackCount} reviews)`);

// Give feedback
const txHash = await client.giveFeedback(1234, 85, 'Great trading signals');
```

### Register Agent

```typescript
import { createERC8004Client, buildAgentCard } from 'clodds/identity';

const client = createERC8004Client('base', process.env.PRIVATE_KEY);

// Build agent card
const card = buildAgentCard({
  name: 'Clodds Trading Bot',
  description: 'AI-powered prediction market assistant',
  walletAddress: '0x742d35Cc...',
  apiEndpoint: 'https://api.cloddsbot.com/agent',
});

// Upload to IPFS (use Pinata, web3.storage, etc.)
const ipfsUri = await uploadToIPFS(card);

// Register on-chain
const { agentId, txHash } = await client.register(ipfsUri);
console.log(`Registered as agent #${agentId}`);
```

---

## Contract Addresses

Same on all EVM chains (CREATE2 deterministic):

| Contract | Address |
|----------|---------|
| Identity Registry | `0x7177a6867296406881E20d6647232314736Dd09A` |
| Reputation Registry | `0xB5048e3ef1DA4E04deB6f7d0423D06F63869e322` |
| Validation Registry | `0x662b40A526cb4017d947e71eAF6753BF3eeE66d8` |

**Live on:** Ethereum, Base, Optimism, Arbitrum, Polygon (and testnets)

---

## Supported Networks

| Network | Status | Default |
|---------|--------|---------|
| Base | Live | βœ“ |
| Ethereum | Live | |
| Optimism | Live | |
| Arbitrum | Live | |
| Polygon | Live | |
| Sepolia (testnet) | Live | |
| Base Sepolia | Live | |

Mainnet launched **January 29, 2026**. 19,000+ agents already registered.

---

## Use Cases

### Copy Trading Verification

Before copying a trader, verify their identity:

```typescript
const result = await verifyAgent(traderAgentId);
if (!result.verified) {
  console.warn('UNVERIFIED TRADER - Proceed with caution');
}
if (result.reputation?.averageScore < 50) {
  console.warn('LOW REPUTATION - Consider skipping');
}
```

### Whale Tracking

Verify whale identity claims:

```typescript
const isVerified = await hasIdentity(whaleAddress);
// Only trust signals from verified whales
```

### Bot-to-Bot Communication

Verify other agents before interaction:

```typescript
const agent = await client.getAgent(otherAgentId);
if (agent?.card?.endpoints?.find(e => e.name === 'A2A')) {
  // Safe to communicate via A2A protocol
}
```

---

## Best Practices

1. **Always verify before copy trading** - Don't trust unverified traders
2. **Check reputation scores** - Low scores indicate potential issues
3. **Verify on the right network** - Use same network as trading
4. **Register your bot** - Build trust with verified identity
5. **Give feedback** - Help build the trust graph

---

## Links

- [ERC-8004 Spec](https://eips.ethereum.org/EIPS/eip-8004)
- [Reference Implementation](https://github.com/nuwa-protocol/nuwa-8004)
- [Awesome ERC-8004](https://github.com/sudeepb02/awesome-erc8004)

Files in this skill

  • SKILL.md4.8 KB
  • index.ts6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.