{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ercdata",
    "name": "ERCData",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/0xReisearch/ercdata",
    "canonicalUrl": "https://clawhub.ai/0xReisearch/ercdata",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ercdata",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ercdata",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/ercdata-cli.py",
      "references/api.md",
      "SKILL.md"
    ],
    "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/ercdata"
    },
    "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/ercdata",
    "agentPageUrl": "https://openagent3.xyz/skills/ercdata/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ercdata/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ercdata/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": "ERCData",
        "body": "Store and verify AI-related data on Base mainnet. Public or private, with cryptographic integrity proofs."
      },
      {
        "title": "Quick Start",
        "body": "# Store public data\nuv run {baseDir}/scripts/ercdata-cli.py store \\\n  --type AI_AGENT_MEMORY \\\n  --data \"memory hash: abc123\" \\\n  --metadata '{\"agent\":\"MyBot\",\"ts\":\"2026-01-31\"}' \\\n  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Store private data (only you + granted addresses can read)\nuv run {baseDir}/scripts/ercdata-cli.py store \\\n  --type AI_AGENT_MEMORY \\\n  --data \"secret memory data\" \\\n  --private \\\n  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Read entry\nuv run {baseDir}/scripts/ercdata-cli.py read --id 1 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Verify entry (EIP-712 signature check)\nuv run {baseDir}/scripts/ercdata-cli.py verify --id 1 --method eip712 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Grant access to private entry\nuv run {baseDir}/scripts/ercdata-cli.py grant-access --id 2 --to 0xSomeAddress --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT"
      },
      {
        "title": "Configuration",
        "body": "Set via environment or skill config:\n\nERCDATA_KEY — Private key for signing transactions (required for writes)\nERCDATA_CONTRACT — Contract address on Base mainnet\nERCDATA_RPC — RPC URL (default: https://mainnet.base.org)\n\nOr pass via --key, --contract, --rpc flags."
      },
      {
        "title": "Commands",
        "body": "CommandWhat it doesstoreStore data on-chain (add --private for access control)readRead a data entry by IDverifyVerify data integrity (eip712 or hash method)grant-accessGrant read access to an address (private entries)revoke-accessRevoke read accessregister-typeRegister a new data type (admin only)snapshotCreate a point-in-time snapshotinfoGet entry info without full data"
      },
      {
        "title": "Privacy Model",
        "body": "Public (default): Anyone can read via getData(). Use for transparency, audit trails.\nPrivate (--private): Only the provider, granted addresses, and admin can read. Use for sensitive agent data.\n\nPrivate entries store the same data on-chain but gate getData() access. Note: raw transaction calldata is still visible on-chain explorers. For maximum privacy, encrypt data before storing."
      },
      {
        "title": "Use Cases for AI Agents",
        "body": "Memory attestation — Hash your MEMORY.md and store it periodically for tamper-proof audit trail\nAgent identity — Store model fingerprint, system prompt hash, config on-chain\nVerifiable outputs — Hash agent outputs and store for later verification\nAgent-to-agent trust — Check another agent's ERCData entries before trusting its data\nModel provenance — Store model hashes, benchmark scores, architecture metadata"
      },
      {
        "title": "API Reference",
        "body": "See references/api.md for full contract API, roles, events, and limits."
      },
      {
        "title": "Requirements",
        "body": "Python 3.10+ with web3 and eth-account packages (auto-installed by uv)\nA funded wallet on Base mainnet (ETH for gas)\nPROVIDER_ROLE granted by contract admin for storing data\nVERIFIER_ROLE granted for verification operations"
      }
    ],
    "body": "ERCData\n\nStore and verify AI-related data on Base mainnet. Public or private, with cryptographic integrity proofs.\n\nQuick Start\n# Store public data\nuv run {baseDir}/scripts/ercdata-cli.py store \\\n  --type AI_AGENT_MEMORY \\\n  --data \"memory hash: abc123\" \\\n  --metadata '{\"agent\":\"MyBot\",\"ts\":\"2026-01-31\"}' \\\n  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Store private data (only you + granted addresses can read)\nuv run {baseDir}/scripts/ercdata-cli.py store \\\n  --type AI_AGENT_MEMORY \\\n  --data \"secret memory data\" \\\n  --private \\\n  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Read entry\nuv run {baseDir}/scripts/ercdata-cli.py read --id 1 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Verify entry (EIP-712 signature check)\nuv run {baseDir}/scripts/ercdata-cli.py verify --id 1 --method eip712 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\n# Grant access to private entry\nuv run {baseDir}/scripts/ercdata-cli.py grant-access --id 2 --to 0xSomeAddress --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT\n\nConfiguration\n\nSet via environment or skill config:\n\nERCDATA_KEY — Private key for signing transactions (required for writes)\nERCDATA_CONTRACT — Contract address on Base mainnet\nERCDATA_RPC — RPC URL (default: https://mainnet.base.org)\n\nOr pass via --key, --contract, --rpc flags.\n\nCommands\nCommand\tWhat it does\nstore\tStore data on-chain (add --private for access control)\nread\tRead a data entry by ID\nverify\tVerify data integrity (eip712 or hash method)\ngrant-access\tGrant read access to an address (private entries)\nrevoke-access\tRevoke read access\nregister-type\tRegister a new data type (admin only)\nsnapshot\tCreate a point-in-time snapshot\ninfo\tGet entry info without full data\nPrivacy Model\nPublic (default): Anyone can read via getData(). Use for transparency, audit trails.\nPrivate (--private): Only the provider, granted addresses, and admin can read. Use for sensitive agent data.\n\nPrivate entries store the same data on-chain but gate getData() access. Note: raw transaction calldata is still visible on-chain explorers. For maximum privacy, encrypt data before storing.\n\nUse Cases for AI Agents\nMemory attestation — Hash your MEMORY.md and store it periodically for tamper-proof audit trail\nAgent identity — Store model fingerprint, system prompt hash, config on-chain\nVerifiable outputs — Hash agent outputs and store for later verification\nAgent-to-agent trust — Check another agent's ERCData entries before trusting its data\nModel provenance — Store model hashes, benchmark scores, architecture metadata\nAPI Reference\n\nSee references/api.md for full contract API, roles, events, and limits.\n\nRequirements\nPython 3.10+ with web3 and eth-account packages (auto-installed by uv)\nA funded wallet on Base mainnet (ETH for gas)\nPROVIDER_ROLE granted by contract admin for storing data\nVERIFIER_ROLE granted for verification operations"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0xReisearch/ercdata",
    "publisherUrl": "https://clawhub.ai/0xReisearch/ercdata",
    "owner": "0xReisearch",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ercdata",
    "downloadUrl": "https://openagent3.xyz/downloads/ercdata",
    "agentUrl": "https://openagent3.xyz/skills/ercdata/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ercdata/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ercdata/agent.md"
  }
}