# Send Agent identity and reputation registration to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "8004-mcp",
    "name": "Agent identity and reputation registration",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/MonteCrypto999/8004-mcp",
    "canonicalUrl": "https://clawhub.ai/MonteCrypto999/8004-mcp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/8004-mcp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=8004-mcp",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "skill.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/8004-mcp"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/8004-mcp",
    "downloadUrl": "https://openagent3.xyz/downloads/8004-mcp",
    "agentUrl": "https://openagent3.xyz/skills/8004-mcp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/8004-mcp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/8004-mcp/agent.md"
  }
}
```
## Documentation

### 8004-MCP - Agent Registry Protocol

Multi-chain MCP server for ERC-8004 Agent Registry. Query agents, reputation, and feedback across Solana + EVM chains.

### 1. Check System Health

await client.callTool({ name: 'health_check', arguments: {} });
// Returns: { server: 'ok', chains: {...}, walletStore: 'not_initialized', ... }

### 2. Initialize Wallet Store (One-Time)

The wallet store encrypts all your wallets with a single master password.

// ⚠️ SAVE THIS PASSWORD - Cannot be recovered if lost!
await client.callTool({ name: 'wallet_store_init', arguments: {
  password: 'YourSecureMasterPassword123!'
}});
// Returns: { initialized: true, message: 'Wallet store created' }

### 3. Create a Wallet

await client.callTool({ name: 'wallet_create', arguments: {
  name: 'my-eth-wallet',
  chainType: 'evm'  // or 'solana'
}});
// Returns: { name: 'my-eth-wallet', address: '0x...', chainType: 'evm' }

### 4. Fund Your Wallet

Check the "Approximate Costs" section below for funding amounts.

// Get faucet info (testnet) or ask owner (mainnet)
const funding = await client.callTool({ name: 'faucet_info', arguments: {
  chain: 'eth'  // or 'sol', 'base'
}});
// Returns faucet URLs and wallet address

⚠️ Important for Agents:

See "Approximate Costs" section for funding amounts
Faucets require captchas - you can't use them directly
Ask your owner to fund your wallet
On mainnet: no faucets, must ask owner for real funds

### 5. On New Sessions - Unlock Store

await client.callTool({ name: 'wallet_store_unlock', arguments: {
  password: 'YourSecureMasterPassword123!'
}});
// Now all write operations work

### Common Issues

SymptomCauseSolutionSTORE_NOT_INITIALIZEDFirst runCall wallet_store_initSTORE_LOCKEDNew sessionCall wallet_store_unlockINVALID_PASSWORDWrong passwordCheck password (no recovery!)Timeout on wallet opsStore lockedUnlock firstINSUFFICIENT_BALANCEEmpty walletAsk owner to fund (see below)

### Requesting Funds from Owner

As an agent, you cannot use faucets directly (captchas). Ask your owner:

// 1. Get your wallet address
const info = await client.callTool({ name: 'faucet_info', arguments: { chain: 'eth' }});

// 2. Ask owner to fund (see "Approximate Costs" section for amounts)
// Example: "Please fund my wallet 0x1234... with ~0.01 SOL or ~$0.50 in ETH"

// 3. Wait for owner to send funds, then proceed with agent_register

### Quick Start (MCP Client)

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { spawn } from 'child_process';

const server = spawn('npx', ['@quantulabs/8004-mcp'], {
  stdio: ['pipe', 'pipe', 'inherit'],
  env: { ...process.env, NETWORK_MODE: 'testnet' }
});

const client = new Client(
  { name: 'my-agent', version: '1.0.0' },
  { capabilities: {} }
);

await client.connect(new StdioClientTransport({
  reader: server.stdout,
  writer: server.stdin,
}));

// Ready - use client.callTool()

### Global ID Format

ChainFormatExampleSolanasol:<pubkey>sol:HHCVWcqs...Ethereumeth:<chainId>:<tokenId>eth:11155111:738Basebase:<chainId>:<tokenId>base:84532:42

### Read Operations (No wallet needed)

agent_search

Search agents across chains.

await client.callTool({ name: 'agent_search', arguments: {
  query: 'trading bot',      // Search name/description
  chain: 'eth',              // Optional: sol, eth, base, arb, poly, op
  limit: 20,                 // Default: 20, max: 100
  offset: 0,                 // Pagination offset
  cursor: 'abc...',          // Cursor pagination (EVM only, faster)
  // Advanced filters (EVM only):
  hasMcp: true,              // Has MCP endpoint
  hasA2a: true,              // Has A2A endpoint
  active: true,              // Active agents only
  x402support: true,         // Supports x402 payments
  mcpTools: ['web-search'],  // Has specific MCP tools
  a2aSkills: ['translation'] // Has specific A2A skills
}});
// Returns: { results: IAgentSummary[], total, hasMore, cursor? }

cache_search

Fast fuzzy search (FTS5). Use for partial name matches.

await client.callTool({ name: 'cache_search', arguments: {
  query: 'Upsense',  // Partial match works
  chain: 'all',
  limit: 20
}});

agent_get

Get agent details by ID.

await client.callTool({ name: 'agent_get', arguments: {
  id: 'eth:11155111:738'  // Global ID
}});
// Returns: IAgent with name, description, owner, endpoints, metadata

agent_exists

Check if agent exists.

await client.callTool({ name: 'agent_exists', arguments: {
  id: 'sol:HHCVWcqs...'
}});
// Returns: { exists: boolean }

reputation_get

Get reputation summary.

await client.callTool({ name: 'reputation_get', arguments: {
  id: 'sol:HHCVWcqs...'
}});
// Returns: { averageScore, totalFeedbacks, trustTier (Solana only) }

feedback_list

List feedbacks for an agent.

await client.callTool({ name: 'feedback_list', arguments: {
  id: 'sol:HHCVWcqs...',
  limit: 20,
  minScore: 50  // Optional filter
}});

leaderboard_get

Top agents by reputation.

await client.callTool({ name: 'leaderboard_get', arguments: {
  chain: 'sol',
  limit: 10
}});

solana_atom_stats_get

ATOM reputation metrics (Solana only).

await client.callTool({ name: 'solana_atom_stats_get', arguments: {
  asset: 'HHCVWcqs...'  // Solana pubkey (no sol: prefix)
}});
// Returns: { qualityScore, trustTier, uniqueClients, fastEma, slowEma }

solana_integrity_verify

Verify indexer data integrity (Solana only).

await client.callTool({ name: 'solana_integrity_verify', arguments: {
  asset: 'HHCVWcqs...'
}});
// Returns: { status: 'valid' | 'syncing' | 'corrupted' }

### Write Operations (Wallet required)

Wallet Store Setup (Master Password)

// 1. Initialize store (one-time) - SAVE THE MASTER PASSWORD!
await client.callTool({ name: 'wallet_store_init', arguments: {
  password: 'MySecureMaster123!'
}});

// 2. Create wallets (stored in encrypted store)
await client.callTool({ name: 'wallet_create', arguments: {
  name: 'my-solana',
  chainType: 'solana'  // or 'evm'
}});

// 3. On new session, unlock store with master password
await client.callTool({ name: 'wallet_store_unlock', arguments: {
  password: 'MySecureMaster123!'
}});

// 4. Now write operations work (all wallets unlocked)

feedback_give

Submit feedback for an agent.

await client.callTool({ name: 'feedback_give', arguments: {
  id: 'sol:HHCVWcqs...',
  value: 85,              // Score 0-100
  tag1: 'uptime',         // Category tag
  tag2: 'day',            // Period tag
  comment: 'Great agent', // Optional
  skipSend: false         // true = dry-run (returns unsigned tx)
}});

agent_register

Register new agent on-chain. See "Approximate Costs" section for funding.

await client.callTool({ name: 'agent_register', arguments: {
  chain: 'eth',  // or 'sol', 'base', etc.
  name: 'My Agent',
  description: 'Does cool stuff',
  tokenUri: 'https://example.com/agent.json',  // Optional: your hosted metadata
  // If no tokenUri: SDK uploads to IPFS automatically
}});

### Solana (Devnet/Mainnet)

OperationCostNotesagent_register~0.01 SOLIncludes ATOM stats accountfeedback_give~0.0005 SOLEvent-based, low rentfeedback_response_append~0.0005 SOLEvent-basedagent_uri_update~0.00005 SOLTx fee only

### EVM - L2 Chains (Base, Arbitrum, Optimism)

Recommended for lowest costs.

OperationGasTypical Costagent_register150-200k$0.01-0.50feedback_give100k$0.01-0.30feedback_response_append60k$0.01-0.20agent_uri_update50k$0.01-0.15

### EVM - Ethereum Mainnet

High variability - gas spikes during congestion.

OperationGasCost (25-100 gwei)agent_register150-200k$10-60feedback_give100k$7-30feedback_response_append60k$4-18agent_uri_update50k$3-15

Tip: Use L2 chains (Base, Arbitrum) for 10-100x lower costs than Ethereum mainnet.

### Dry-Run Mode (skipSend)

Test write operations without funds or broadcasting:

// Returns unsigned transaction, no funds needed
const preview = await client.callTool({ name: 'feedback_give', arguments: {
  id: 'sol:HHCVWcqs...',
  value: 85,
  tag1: 'uptime',
  skipSend: true  // Dry-run
}});
// preview.content[0].text contains: { unsigned: true, transaction: "base64...", message: "..." }

Supported on: feedback_give, agent_register, agent_transfer, agent_uri_update, feedback_revoke, solana_validation_request, solana_validation_respond

### Network Configuration

// Check current network
await client.callTool({ name: 'network_get', arguments: {} });

// Switch to mainnet
await client.callTool({ name: 'network_set', arguments: { mode: 'mainnet' } });

// Switch to testnet (default)
await client.callTool({ name: 'network_set', arguments: { mode: 'testnet' } });

NetworkSolanaEthereumBasetestnetdevnetSepolia (11155111)Base Sepolia (84532)mainnetmainnet-betaMainnet (1)Base (8453)

### x402 Protocol

Payment-linked reputation.

// 1. Build identity for 402 response
const identity = await client.callTool({ name: 'x402_identity_build', arguments: {
  agentId: 'sol:HHCVWcqs...'
}});

// 2. Parse payment proof from response header
const proof = await client.callTool({ name: 'x402_proof_parse', arguments: {
  paymentResponse: 'base64-encoded-header...'
}});

// 3. Submit feedback with proof
await client.callTool({ name: 'x402_feedback_submit', arguments: {
  agentId: 'sol:HHCVWcqs...',
  value: 90,
  tag1: 'x402-resource-delivered',
  tag2: 'exact-svm',
  proofOfPayment: proof.proofOfPayment
}});

### Error Codes

ErrorCauseSolutionSTORE_LOCKEDWrite op without unlockCall wallet_store_unlock with master passwordSTORE_NOT_INITIALIZEDNo wallet storeCall wallet_store_init firstINVALID_PASSWORDWrong master passwordCheck password (cannot recover if lost)AGENT_NOT_FOUNDInvalid IDVerify global ID formatINSUFFICIENT_BALANCEWallet emptyFund wallet addressPROVIDER_NOT_AVAILABLEChain not initializedCheck network_get

### OASF Standards

// List valid skill slugs
await client.callTool({ name: 'oasf_list_skills', arguments: {} });

// List valid domain slugs
await client.callTool({ name: 'oasf_list_domains', arguments: {} });

// List feedback tags
await client.callTool({ name: 'oasf_list_tags', arguments: {} });

### Agent Operations

agent_get - Get agent by ID
agent_exists - Check existence
agent_search - Search with filters
agent_list_by_owner - List by owner address
agent_register - Register new agent (write)
agent_transfer - Transfer ownership (write)
agent_uri_update - Update metadata URI (write)
agent_metadata_set - Set on-chain metadata (Solana, write)

### Feedback Operations

feedback_give - Submit feedback (write)
feedback_read - Read single feedback
feedback_list - List feedbacks
feedback_revoke - Revoke feedback (write)
feedback_response_append - Respond to feedback (write)

### Reputation Operations

reputation_get - Get summary
leaderboard_get - Top agents

### Collection Operations

collection_get - Get collection details
collection_list - List collections
collection_agents - List agents in collection
collection_base_get - Get base registry
collection_create - Create collection (Solana, write)
collection_uri_update - Update collection URI (Solana, write)

### Wallet Store (Master Password)

wallet_store_init - Initialize store with master password
wallet_store_unlock - Unlock all wallets with master password
wallet_store_lock - Lock store (secure wipe)
wallet_store_status - Get store status
wallet_store_change_password - Change master password
wallet_store_migrate - Migrate legacy wallets

### Wallet Operations

wallet_list - List wallets in store
wallet_info - Wallet details
wallet_create - Create new wallet (requires unlocked store)
wallet_import - Import private key (requires unlocked store)
wallet_delete - Delete wallet (requires unlocked store)
wallet_security - Configure auto-lock timeout

### Cache Operations

cache_search - Fast FTS5 search
cache_refresh - Force refresh
cache_stats - Cache statistics
cache_sync_status - Sync status

### Solana-Specific

solana_atom_stats_get - ATOM metrics
solana_atom_stats_initialize - Init ATOM account (write)
solana_trust_tier_get - Trust tier
solana_enriched_summary_get - Combined metrics
solana_agent_wallet_get - Get operational wallet
solana_sign - Sign with agent wallet
solana_verify - Verify signature
solana_validation_request - Request validation (write)
solana_validation_respond - Respond to validation (write)
solana_validation_read - Read validation
solana_validation_wait - Wait for response
solana_validation_pending_get - Pending validations
solana_integrity_verify - O(1) integrity check
solana_integrity_verify_deep - Deep verification

### EVM-Specific

evm_agent_wallet_set - Set operational wallet (write)
evm_agent_wallet_unset - Remove operational wallet (write)

### x402 Protocol

x402_identity_build - Build agent identity
x402_proof_parse - Parse payment proof
x402_feedback_build - Build feedback file
x402_feedback_submit - Submit with proof (write)

### Configuration & Health

config_get - Current config
config_set - Update config
config_reset - Reset to defaults
network_get - Network status
network_set - Switch network
health_check - System health (server, chains, wallet store, cache)
faucet_info - Testnet faucet URLs and funding info

### OASF Standards

oasf_list_skills - Valid skill slugs
oasf_list_domains - Valid domain slugs
oasf_list_tags - Feedback tags
oasf_validate_skill - Validate skill
oasf_validate_domain - Validate domain
oasf_validate_tag - Validate tag

### Crawler

crawler_fetch_mcp - Fetch MCP capabilities
crawler_fetch_a2a - Fetch A2A agent card
crawler_is_alive - Health check

### IPFS (Configured by default)

ipfs_configure - Override default IPFS/Pinata settings (optional)
ipfs_add_json - Store JSON (max 1MB)
ipfs_add_registration - Store registration file
ipfs_get_registration - Retrieve registration

Note: IPFS is pre-configured with a shared Pinata account. No setup required for basic usage.

### Claude Code Integration

This section is for Claude Code / AI assistants using 8004-MCP tools.

### Intent Mapping

User SaysToolNotes"find agents", "search for X"agent_search or cache_searchUse cache_search for partial names"agent details", "info on X"agent_getPass global ID"is X reliable?", "reputation"reputation_getReturns score + trust tier"top agents", "best agents"leaderboard_getChain optional"reviews for X", "feedback"feedback_list"my wallets"wallet_list"switch to mainnet"network_setmode: 'mainnet'"OASF skills/domains/tags"oasf_list_*

### DO NOT use web search for:

Agent registry queries (use 8004 tools)
Reputation/feedback lookups
OASF standards
x402 protocol

### Search Strategy

Exact name known → agent_search with nameQuery
Partial name → cache_search (fuzzy FTS5)
By capabilities → agent_search with hasMcp, hasA2a, mcpTools, etc.
By owner → agent_search with owner

### Write Operation Flow

Check wallet_store_status - is store initialized and unlocked?
If not initialized: wallet_store_init (save master password!)
If locked: wallet_store_unlock with master password
If no wallet: wallet_create for needed chain
Execute write operation
Report transaction hash on success
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: MonteCrypto999
- Version: 0.2.3
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-23T16:43:11.935Z
- Expires at: 2026-04-30T16:43:11.935Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/8004-mcp)
- [Send to Agent page](https://openagent3.xyz/skills/8004-mcp/agent)
- [JSON manifest](https://openagent3.xyz/skills/8004-mcp/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/8004-mcp/agent.md)
- [Download page](https://openagent3.xyz/downloads/8004-mcp)