<< All versions
Skill v1.0.1
currentAutomated scan96/100alsk1992/cloddsbot/verify
2 files
──Details
PublishedSeptember 9, 2026 at 01:10 AM
Content Hashsha256:4f703723143f2c6e...
Git SHA715fd4a6c06b
Bump Typepatch
──Files
Files (1 file, 4.8 KB)
SKILL.md4.8 KBactive
SKILL.md · 201 lines · 4.8 KB
version: "1.0.1" 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 IDconst 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 identityconst hasId = await hasIdentity('0x742d35Cc...');
Full Client
typescript
import { createERC8004Client } from 'clodds/identity';const client = createERC8004Client('base-sepolia');// Get agent detailsconst agent = await client.getAgent(1234);console.log(agent?.card?.name);console.log(agent?.card?.description);// Verify ownershipconst isOwner = await client.verifyOwnership(1234, '0x742...');// Get reputationconst rep = await client.getReputation(1234);console.log(`Score: ${rep?.averageScore}/100 (${rep?.feedbackCount} reviews)`);// Give feedbackconst 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 cardconst 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-chainconst { 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
- Always verify before copy trading - Don't trust unverified traders
- Check reputation scores - Low scores indicate potential issues
- Verify on the right network - Use same network as trading
- Register your bot - Build trust with verified identity
- Give feedback - Help build the trust graph