{
  "schemaVersion": "1.0",
  "item": {
    "slug": "erc-800claw",
    "name": "ERC-800Claw",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/primer-dev/erc-800claw",
    "canonicalUrl": "https://clawhub.ai/primer-dev/erc-800claw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/erc-800claw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=erc-800claw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/erc-800claw"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/erc-800claw",
    "agentPageUrl": "https://openagent3.xyz/skills/erc-800claw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/erc-800claw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/erc-800claw/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ERC-800Claw",
        "body": "Your entry point into ERC-8004 - the on-chain identity, reputation, and validation standard for autonomous agents.\n\nERC-8004 is an open protocol enabling verifiable agent identity and reputation on Ethereum. Agents can register identities (ERC-721 NFTs), receive and give reputation feedback, and optionally verify their capabilities through validators. ERC-800Claw, built by Primer, provides simple APIs for interacting with the protocol."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use ERC-800Claw when:\n\nYou need to register an agent identity on-chain\nYou need to look up an agent by ID or owner\nYou want to give feedback/ratings to another agent\nYou need to check an agent's reputation\nThe user asks about agent verification or trust"
      },
      {
        "title": "Node.js",
        "body": "npm install erc-800claw"
      },
      {
        "title": "Python",
        "body": "pip install erc-800claw"
      },
      {
        "title": "How to Respond",
        "body": "User Says/AsksWhat to Do\"Look up agent #123\"Run erc-800claw agent 123 to get details\"Does agent 42 exist?\"Run erc-800claw exists 42\"How many agents does 0x... own?\"Run erc-800claw owner 0x...\"Register my agent\"Run erc-800claw register --name \"Name\" (requires PRIVATE_KEY env var)\"What networks are supported?\"Run erc-800claw networks\"Show contract addresses\"Run erc-800claw contracts"
      },
      {
        "title": "CLI Commands",
        "body": "CommandDescriptionerc-800claw agent <id>Get agent details by IDerc-800claw exists <id>Check if an agent existserc-800claw owner <address>Get agent count for an addresserc-800claw registerRegister a new agent (requires PRIVATE_KEY)erc-800claw networksList supported networkserc-800claw contracts [network]Show contract addresses"
      },
      {
        "title": "CLI Options",
        "body": "--network, -n <name> - Network to use (mainnet, sepolia). Default: mainnet\n--json, -j - Output as JSON"
      },
      {
        "title": "Example CLI Output",
        "body": "$ erc-800claw agent 1\nAgent #1 (mainnet)\n────────────────────────────────────────\nOwner:    0x1234...abcd\nURI:      data:application/json;base64,...\nName:     My Agent\nAbout:    An autonomous agent for...\nExplorer: https://etherscan.io/nft/0x8004.../1\n\n$ erc-800claw exists 100\nAgent 100 exists on mainnet\n\n$ erc-800claw owner 0x1234...\nAddress 0x1234... owns 3 agent(s) on mainnet\n\n$ PRIVATE_KEY=0x... erc-800claw register --name \"My Agent\" --network sepolia\nAgent Registered on sepolia!\n────────────────────────────────────────\nAgent ID: 42\nOwner:    0x1234...abcd\nTx:       0xabc123...\nExplorer: https://sepolia.etherscan.io/nft/0x8004.../42"
      },
      {
        "title": "How ERC-8004 Works",
        "body": "ERC-8004 provides three on-chain registries:\n\nIdentity Registry (ERC-721) - Every agent gets a unique NFT token with metadata URI\nReputation Registry - Structured feedback scores from clients to agents\nValidation Registry - Independent verification (zkML, TEE, stakers)\n\nThe flow:\n\nRegister - Mint an agent identity NFT with name/description metadata\nOperate - Use your agent ID when interacting with other agents\nBuild Reputation - Clients give feedback, scores accumulate on-chain\nVerify (optional) - Validators attest to capabilities"
      },
      {
        "title": "Node.js / TypeScript",
        "body": "const { createClient } = require('erc-800claw');\n\nconst client = createClient({ network: 'mainnet' });\n\n// Get agent by ID\nconst agent = await client.getAgent(1);\nconsole.log(agent);\n// {\n//   agentId: 1,\n//   tokenURI: 'data:application/json;base64,...',\n//   owner: '0x...',\n//   metadata: { name: 'My Agent', description: '...' },\n//   explorerUrl: 'https://etherscan.io/...'\n// }\n\n// Check if agent exists\nconst exists = await client.agentExists(42);\n\n// Get agent count for address\nconst count = await client.getAgentCount('0x...');\n\n// Register a new agent (no IPFS needed - uses data URI!)\nconst result = await client.registerAgent(process.env.PRIVATE_KEY, {\n  name: 'My Autonomous Agent',\n  description: 'Handles customer support',\n  services: [{ name: 'support', endpoint: 'https://myagent.com/api' }]\n});\nconsole.log(`Registered agent #${result.agentId}`);\n\n// Give feedback to an agent\nawait client.giveFeedback(process.env.PRIVATE_KEY, agentId, {\n  value: 4.5,     // Score out of 5\n  decimals: 1,\n  tag1: 'support',\n  tag2: 'fast'\n});"
      },
      {
        "title": "Python",
        "body": "from erc800claw import create_client\nimport os\n\nclient = create_client(network='mainnet')\n\n# Get agent by ID\nagent = client.get_agent(1)\nprint(agent)\n# {\n#     'agent_id': 1,\n#     'token_uri': 'data:application/json;base64,...',\n#     'owner': '0x...',\n#     'metadata': {'name': 'My Agent', 'description': '...'},\n#     'explorer_url': 'https://etherscan.io/...'\n# }\n\n# Check if agent exists\nexists = client.agent_exists(42)\n\n# Get agent count for address\ncount = client.get_agent_count('0x...')\n\n# Register a new agent (no IPFS needed - uses data URI!)\nresult = client.register_agent(\n    private_key=os.environ['PRIVATE_KEY'],\n    name='My Autonomous Agent',\n    description='Handles customer support',\n    services=[{'name': 'support', 'endpoint': 'https://myagent.com/api'}]\n)\nprint(f\"Registered agent #{result['agent_id']}\")\n\n# Give feedback to an agent\nclient.give_feedback(\n    private_key=os.environ['PRIVATE_KEY'],\n    agent_id=agent_id,\n    value=4.5,        # Score out of 5\n    decimals=1,\n    tag1='support',\n    tag2='fast'\n)"
      },
      {
        "title": "Metadata Format",
        "body": "Agent metadata follows a standard schema:\n\n{\n  \"name\": \"My Agent\",\n  \"description\": \"What my agent does\",\n  \"image\": \"https://example.com/avatar.png\",\n  \"services\": [\n    {\n      \"name\": \"api\",\n      \"endpoint\": \"https://myagent.com/api\",\n      \"description\": \"Main API endpoint\"\n    }\n  ],\n  \"supported_trust\": [\"reputation\", \"validation\"]\n}\n\nThe SDK automatically encodes this as a data URI - no IPFS upload required."
      },
      {
        "title": "Integration with xClaw02",
        "body": "ERC-800Claw works with xClaw02 (x402 payments) to enable paid agent services:\n\nRegister your agent identity with ERC-800Claw\nSet up payment receiving with xClaw02\nClients verify your identity, pay for services, then rate you\n\nSee the xClaw02 skill for payment setup."
      },
      {
        "title": "Supported Networks",
        "body": "NetworkChain IDStatusEthereum Mainnet1LiveSepolia Testnet11155111Live"
      },
      {
        "title": "Mainnet",
        "body": "Identity Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432\nReputation Registry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"
      },
      {
        "title": "Sepolia",
        "body": "Identity Registry: 0x8004A818BFB912233c491871b3d84c89A494BD9e\nReputation Registry: 0x8004B663056A597Dffe9eCcC1965A193B7388713"
      },
      {
        "title": "Environment Variables",
        "body": "VariableFormatDescriptionPRIVATE_KEY0x + 64 hex charsWallet private key (required for registration/feedback)ERC8004_NETWORKmainnet, sepoliaDefault network (default: mainnet)ERC8004_RPC_URLURLCustom RPC endpoint"
      },
      {
        "title": "Error Handling",
        "body": "ErrorMeaningWhat to DoAgent not foundNo agent with that IDVerify the agent ID is correctAgent already existsToken already mintedEach agent ID is uniqueNot the ownerCan't modify other's agentsOnly owner can update agent metadataInvalid addressMalformed Ethereum addressCheck address format (0x + 40 hex chars)"
      },
      {
        "title": "Security Notes",
        "body": "Never expose private keys in logs, chat, or output\nUse environment variables for wallet credentials\nAgent registration costs gas - have ETH in your wallet\nPrivate key format: 0x followed by 64 hexadecimal characters"
      },
      {
        "title": "Links",
        "body": "ERC-8004 Protocol: https://8004.org\nEIP-8004: https://eips.ethereum.org/EIPS/eip-8004\nSDK (npm): https://npmjs.com/package/erc-800claw\nSDK (PyPI): https://pypi.org/project/erc-800claw\nGitHub: https://github.com/primer-systems/ERC-8004\nPrimer Systems: https://primer.systems"
      }
    ],
    "body": "ERC-800Claw\n\nYour entry point into ERC-8004 - the on-chain identity, reputation, and validation standard for autonomous agents.\n\nERC-8004 is an open protocol enabling verifiable agent identity and reputation on Ethereum. Agents can register identities (ERC-721 NFTs), receive and give reputation feedback, and optionally verify their capabilities through validators. ERC-800Claw, built by Primer, provides simple APIs for interacting with the protocol.\n\nWhen to Use This Skill\n\nUse ERC-800Claw when:\n\nYou need to register an agent identity on-chain\nYou need to look up an agent by ID or owner\nYou want to give feedback/ratings to another agent\nYou need to check an agent's reputation\nThe user asks about agent verification or trust\nQuick Setup\nNode.js\nnpm install erc-800claw\n\nPython\npip install erc-800claw\n\nHow to Respond\nUser Says/Asks\tWhat to Do\n\"Look up agent #123\"\tRun erc-800claw agent 123 to get details\n\"Does agent 42 exist?\"\tRun erc-800claw exists 42\n\"How many agents does 0x... own?\"\tRun erc-800claw owner 0x...\n\"Register my agent\"\tRun erc-800claw register --name \"Name\" (requires PRIVATE_KEY env var)\n\"What networks are supported?\"\tRun erc-800claw networks\n\"Show contract addresses\"\tRun erc-800claw contracts\nCLI Commands\nCommand\tDescription\nerc-800claw agent <id>\tGet agent details by ID\nerc-800claw exists <id>\tCheck if an agent exists\nerc-800claw owner <address>\tGet agent count for an address\nerc-800claw register\tRegister a new agent (requires PRIVATE_KEY)\nerc-800claw networks\tList supported networks\nerc-800claw contracts [network]\tShow contract addresses\nCLI Options\n--network, -n <name> - Network to use (mainnet, sepolia). Default: mainnet\n--json, -j - Output as JSON\nExample CLI Output\n$ erc-800claw agent 1\nAgent #1 (mainnet)\n────────────────────────────────────────\nOwner:    0x1234...abcd\nURI:      data:application/json;base64,...\nName:     My Agent\nAbout:    An autonomous agent for...\nExplorer: https://etherscan.io/nft/0x8004.../1\n\n$ erc-800claw exists 100\nAgent 100 exists on mainnet\n\n$ erc-800claw owner 0x1234...\nAddress 0x1234... owns 3 agent(s) on mainnet\n\n$ PRIVATE_KEY=0x... erc-800claw register --name \"My Agent\" --network sepolia\nAgent Registered on sepolia!\n────────────────────────────────────────\nAgent ID: 42\nOwner:    0x1234...abcd\nTx:       0xabc123...\nExplorer: https://sepolia.etherscan.io/nft/0x8004.../42\n\nHow ERC-8004 Works\n\nERC-8004 provides three on-chain registries:\n\nIdentity Registry (ERC-721) - Every agent gets a unique NFT token with metadata URI\nReputation Registry - Structured feedback scores from clients to agents\nValidation Registry - Independent verification (zkML, TEE, stakers)\n\nThe flow:\n\nRegister - Mint an agent identity NFT with name/description metadata\nOperate - Use your agent ID when interacting with other agents\nBuild Reputation - Clients give feedback, scores accumulate on-chain\nVerify (optional) - Validators attest to capabilities\nUsing in Code\nNode.js / TypeScript\nconst { createClient } = require('erc-800claw');\n\nconst client = createClient({ network: 'mainnet' });\n\n// Get agent by ID\nconst agent = await client.getAgent(1);\nconsole.log(agent);\n// {\n//   agentId: 1,\n//   tokenURI: 'data:application/json;base64,...',\n//   owner: '0x...',\n//   metadata: { name: 'My Agent', description: '...' },\n//   explorerUrl: 'https://etherscan.io/...'\n// }\n\n// Check if agent exists\nconst exists = await client.agentExists(42);\n\n// Get agent count for address\nconst count = await client.getAgentCount('0x...');\n\n// Register a new agent (no IPFS needed - uses data URI!)\nconst result = await client.registerAgent(process.env.PRIVATE_KEY, {\n  name: 'My Autonomous Agent',\n  description: 'Handles customer support',\n  services: [{ name: 'support', endpoint: 'https://myagent.com/api' }]\n});\nconsole.log(`Registered agent #${result.agentId}`);\n\n// Give feedback to an agent\nawait client.giveFeedback(process.env.PRIVATE_KEY, agentId, {\n  value: 4.5,     // Score out of 5\n  decimals: 1,\n  tag1: 'support',\n  tag2: 'fast'\n});\n\nPython\nfrom erc800claw import create_client\nimport os\n\nclient = create_client(network='mainnet')\n\n# Get agent by ID\nagent = client.get_agent(1)\nprint(agent)\n# {\n#     'agent_id': 1,\n#     'token_uri': 'data:application/json;base64,...',\n#     'owner': '0x...',\n#     'metadata': {'name': 'My Agent', 'description': '...'},\n#     'explorer_url': 'https://etherscan.io/...'\n# }\n\n# Check if agent exists\nexists = client.agent_exists(42)\n\n# Get agent count for address\ncount = client.get_agent_count('0x...')\n\n# Register a new agent (no IPFS needed - uses data URI!)\nresult = client.register_agent(\n    private_key=os.environ['PRIVATE_KEY'],\n    name='My Autonomous Agent',\n    description='Handles customer support',\n    services=[{'name': 'support', 'endpoint': 'https://myagent.com/api'}]\n)\nprint(f\"Registered agent #{result['agent_id']}\")\n\n# Give feedback to an agent\nclient.give_feedback(\n    private_key=os.environ['PRIVATE_KEY'],\n    agent_id=agent_id,\n    value=4.5,        # Score out of 5\n    decimals=1,\n    tag1='support',\n    tag2='fast'\n)\n\nMetadata Format\n\nAgent metadata follows a standard schema:\n\n{\n  \"name\": \"My Agent\",\n  \"description\": \"What my agent does\",\n  \"image\": \"https://example.com/avatar.png\",\n  \"services\": [\n    {\n      \"name\": \"api\",\n      \"endpoint\": \"https://myagent.com/api\",\n      \"description\": \"Main API endpoint\"\n    }\n  ],\n  \"supported_trust\": [\"reputation\", \"validation\"]\n}\n\n\nThe SDK automatically encodes this as a data URI - no IPFS upload required.\n\nIntegration with xClaw02\n\nERC-800Claw works with xClaw02 (x402 payments) to enable paid agent services:\n\nRegister your agent identity with ERC-800Claw\nSet up payment receiving with xClaw02\nClients verify your identity, pay for services, then rate you\n\nSee the xClaw02 skill for payment setup.\n\nSupported Networks\nNetwork\tChain ID\tStatus\nEthereum Mainnet\t1\tLive\nSepolia Testnet\t11155111\tLive\nContract Addresses\nMainnet\nIdentity Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432\nReputation Registry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63\nSepolia\nIdentity Registry: 0x8004A818BFB912233c491871b3d84c89A494BD9e\nReputation Registry: 0x8004B663056A597Dffe9eCcC1965A193B7388713\nEnvironment Variables\nVariable\tFormat\tDescription\nPRIVATE_KEY\t0x + 64 hex chars\tWallet private key (required for registration/feedback)\nERC8004_NETWORK\tmainnet, sepolia\tDefault network (default: mainnet)\nERC8004_RPC_URL\tURL\tCustom RPC endpoint\nError Handling\nError\tMeaning\tWhat to Do\nAgent not found\tNo agent with that ID\tVerify the agent ID is correct\nAgent already exists\tToken already minted\tEach agent ID is unique\nNot the owner\tCan't modify other's agents\tOnly owner can update agent metadata\nInvalid address\tMalformed Ethereum address\tCheck address format (0x + 40 hex chars)\nSecurity Notes\nNever expose private keys in logs, chat, or output\nUse environment variables for wallet credentials\nAgent registration costs gas - have ETH in your wallet\nPrivate key format: 0x followed by 64 hexadecimal characters\nLinks\nERC-8004 Protocol: https://8004.org\nEIP-8004: https://eips.ethereum.org/EIPS/eip-8004\nSDK (npm): https://npmjs.com/package/erc-800claw\nSDK (PyPI): https://pypi.org/project/erc-800claw\nGitHub: https://github.com/primer-systems/ERC-8004\nPrimer Systems: https://primer.systems"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/primer-dev/erc-800claw",
    "publisherUrl": "https://clawhub.ai/primer-dev/erc-800claw",
    "owner": "primer-dev",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/erc-800claw",
    "downloadUrl": "https://openagent3.xyz/downloads/erc-800claw",
    "agentUrl": "https://openagent3.xyz/skills/erc-800claw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/erc-800claw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/erc-800claw/agent.md"
  }
}