Check a dataset before analysis
Find missing values, inconsistent formats, duplicates, and questions that could invalidate results.
4,957,516 AI resources indexedWorking toward the world’s largest AI resource index.
Verify agent identity using ERC-8004 on-chain registry
---
name: verify-4f703723143f
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)
---
name: verify-4f703723143f
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)
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Includes source scripts; review them before use. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.