{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ethereum-history",
    "name": "Ethereum History",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/cartoonitunes/ethereum-history",
    "canonicalUrl": "https://clawhub.ai/cartoonitunes/ethereum-history",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ethereum-history",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ethereum-history",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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-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/ethereum-history"
    },
    "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/ethereum-history",
    "agentPageUrl": "https://openagent3.xyz/skills/ethereum-history/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ethereum-history/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ethereum-history/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": "Ethereum History — Agent Skill",
        "body": "Ethereum History exposes read-only, factual data about historical Ethereum mainnet contracts. Use this skill when the user asks about:\n\nA specific contract address (what is it, when was it deployed, who deployed it, bytecode, decompiled code, documented history)\nEarly Ethereum contracts, deployment era (Frontier, Homestead, DAO fork, etc.), or undocumented/notable contracts\nContract facts: deployer, deployment block/timestamp, short description, historical summary, links, metadata\n\nAll endpoints are GET only. No authentication required. Responses are JSON with snake_case keys."
      },
      {
        "title": "Base URL",
        "body": "Production: https://ethereumhistory.com\nManifest (full schema): GET {BASE_URL}/api/agent/manifest"
      },
      {
        "title": "1. Contract facts (one address)",
        "body": "GET {BASE_URL}/api/agent/contracts/{address}\n\nReturns full factual data for one contract: address, era, deployer, deployment block/timestamp, runtime_bytecode, decompiled_code (when available), short_description, historical_summary, historical_significance, historical_context, token metadata, heuristics, links, metadata. Use when the user provides or asks about a specific contract address.\n\nExample: GET https://ethereumhistory.com/api/agent/contracts/0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb"
      },
      {
        "title": "2. Discovery (list contracts)",
        "body": "GET {BASE_URL}/api/agent/contracts\n\nQuery params (all optional):\n\nera_id — Filter by era (e.g. frontier, homestead, dao, tangerine, spurious)\nfeatured — true or 1 for featured contracts only\nundocumented_only — true or 1 for contracts with no short_description yet\nlimit — Max 200, default 50\noffset — Pagination offset, default 0\n\nReturns a list with minimal fields: address, era_id, deployer_address, deployment_timestamp, has_short_description, decompilation_success, etherscan_contract_name, token_name, token_symbol. Use for discovery; then fetch full facts via endpoint 1 if needed."
      },
      {
        "title": "3. Temporal queries (by time range)",
        "body": "GET {BASE_URL}/api/agent/contracts?from_timestamp=...&to_timestamp=...\n\nQuery params:\n\nfrom_timestamp — ISO 8601 (e.g. 2015-07-30T00:00:00Z)\nto_timestamp — ISO 8601\nera_id, limit, offset — Same as discovery\n\nUse when the user asks for contracts deployed in a date range or era."
      },
      {
        "title": "1. Contract facts — GET {BASE_URL}/api/agent/contracts/{address}",
        "body": "Request\n\nPath: address — Ethereum address (0x + 40 hex chars). Required.\n\nSuccess (200)\n\n{\n  \"data\": {\n    \"address\": \"string\",\n    \"era_id\": \"string | null\",\n    \"era\": { \"id\": \"string\", \"name\": \"string\", \"start_block\": number, \"end_block\": number | null, \"start_date\": \"string\", \"end_date\": \"string | null\" } | null,\n    \"deployer_address\": \"string | null\",\n    \"deployment_tx_hash\": \"string | null\",\n    \"deployment_block\": number | null,\n    \"deployment_timestamp\": \"string | null\",\n    \"runtime_bytecode\": \"string | null\",\n    \"decompiled_code\": \"string | null\",\n    \"decompilation_success\": boolean,\n    \"code_size_bytes\": number | null,\n    \"gas_used\": number | null,\n    \"gas_price\": \"string | null\",\n    \"heuristics\": { \"contract_type\": \"string | null\", \"confidence\": number, \"is_proxy\": boolean, \"has_selfdestruct\": boolean, \"is_erc20_like\": boolean },\n    \"etherscan_contract_name\": \"string | null\",\n    \"etherscan_verified\": boolean,\n    \"source_code\": \"string | null\",\n    \"abi\": \"string | null\",\n    \"token_name\": \"string | null\",\n    \"token_symbol\": \"string | null\",\n    \"token_decimals\": number | null,\n    \"token_logo\": \"string | null\",\n    \"short_description\": \"string | null\",\n    \"description\": \"string | null\",\n    \"historical_summary\": \"string | null\",\n    \"historical_significance\": \"string | null\",\n    \"historical_context\": \"string | null\",\n    \"verification_status\": \"string\",\n    \"links\": [{ \"id\": number, \"title\": \"string | null\", \"url\": \"string\", \"source\": \"string | null\", \"note\": \"string | null\", \"created_at\": \"string\" }],\n    \"metadata\": [{ \"key\": \"string\", \"value\": \"string | null\", \"json_value\": unknown, \"source_url\": \"string | null\", \"created_at\": \"string\" }]\n  },\n  \"meta\": { \"timestamp\": \"string (ISO 8601)\", \"cached\": false }\n}\n\nErrors\n\n400 — Invalid address format. Body: { \"error\": \"Invalid Ethereum address format. Must be 0x followed by 40 hex characters.\" }\n404 — Contract not found. Body: { \"error\": \"Contract not found in our historical archive.\" }\n500 — Server error. Body: { \"error\": \"string\" }"
      },
      {
        "title": "2. Discovery / temporal — GET {BASE_URL}/api/agent/contracts",
        "body": "Request (query params, all optional)\n\nParamTypeDescriptionera_idstringEra id: frontier, homestead, dao, tangerine, spuriousfeaturedstringtrue or 1 = featured only; false or 0 = no filterundocumented_onlystringtrue or 1 = contracts with no short_descriptionfrom_timestampstringISO 8601; deployment_timestamp >= thisto_timestampstringISO 8601; deployment_timestamp <= thislimitnumber1–200, default 50offsetnumberPagination offset, default 0\n\nSuccess (200)\n\n{\n  \"data\": [\n    {\n      \"address\": \"string\",\n      \"era_id\": \"string | null\",\n      \"deployer_address\": \"string | null\",\n      \"deployment_timestamp\": \"string | null\",\n      \"has_short_description\": boolean,\n      \"decompilation_success\": boolean,\n      \"etherscan_contract_name\": \"string | null\",\n      \"token_name\": \"string | null\",\n      \"token_symbol\": \"string | null\"\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"string (ISO 8601)\",\n    \"cached\": false,\n    \"limit\": number,\n    \"offset\": number,\n    \"count\": number\n  }\n}\n\nWhen the database is not configured, response is still 200 with \"data\": [] and meta.message indicating discovery requires PostgreSQL."
      },
      {
        "title": "3. Manifest — GET {BASE_URL}/api/agent/manifest",
        "body": "Request: None.\n\nSuccess (200): JSON object with name, id, description, version, base_url, capabilities, endpoints, terms. See the live URL for full shape."
      },
      {
        "title": "Usage notes",
        "body": "Read-only. No opinions or editorial stance. Data as documented on EthereumHistory.com.\nFactual only. What something is and is not. No hype or persuasion.\nWhen history (short_description, etc.) is not yet documented, contract facts still include runtime_bytecode and decompiled_code when available.\nFor the full machine-readable manifest (capabilities, endpoints, terms), call GET {BASE_URL}/api/agent/manifest."
      }
    ],
    "body": "Ethereum History — Agent Skill\n\nEthereum History exposes read-only, factual data about historical Ethereum mainnet contracts. Use this skill when the user asks about:\n\nA specific contract address (what is it, when was it deployed, who deployed it, bytecode, decompiled code, documented history)\nEarly Ethereum contracts, deployment era (Frontier, Homestead, DAO fork, etc.), or undocumented/notable contracts\nContract facts: deployer, deployment block/timestamp, short description, historical summary, links, metadata\n\nAll endpoints are GET only. No authentication required. Responses are JSON with snake_case keys.\n\nBase URL\nProduction: https://ethereumhistory.com\nManifest (full schema): GET {BASE_URL}/api/agent/manifest\nEndpoints\n1. Contract facts (one address)\n\nGET {BASE_URL}/api/agent/contracts/{address}\n\nReturns full factual data for one contract: address, era, deployer, deployment block/timestamp, runtime_bytecode, decompiled_code (when available), short_description, historical_summary, historical_significance, historical_context, token metadata, heuristics, links, metadata. Use when the user provides or asks about a specific contract address.\n\nExample: GET https://ethereumhistory.com/api/agent/contracts/0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb\n\n2. Discovery (list contracts)\n\nGET {BASE_URL}/api/agent/contracts\n\nQuery params (all optional):\n\nera_id — Filter by era (e.g. frontier, homestead, dao, tangerine, spurious)\nfeatured — true or 1 for featured contracts only\nundocumented_only — true or 1 for contracts with no short_description yet\nlimit — Max 200, default 50\noffset — Pagination offset, default 0\n\nReturns a list with minimal fields: address, era_id, deployer_address, deployment_timestamp, has_short_description, decompilation_success, etherscan_contract_name, token_name, token_symbol. Use for discovery; then fetch full facts via endpoint 1 if needed.\n\n3. Temporal queries (by time range)\n\nGET {BASE_URL}/api/agent/contracts?from_timestamp=...&to_timestamp=...\n\nQuery params:\n\nfrom_timestamp — ISO 8601 (e.g. 2015-07-30T00:00:00Z)\nto_timestamp — ISO 8601\nera_id, limit, offset — Same as discovery\n\nUse when the user asks for contracts deployed in a date range or era.\n\nRequests and responses\n1. Contract facts — GET {BASE_URL}/api/agent/contracts/{address}\n\nRequest\n\nPath: address — Ethereum address (0x + 40 hex chars). Required.\n\nSuccess (200)\n\n{\n  \"data\": {\n    \"address\": \"string\",\n    \"era_id\": \"string | null\",\n    \"era\": { \"id\": \"string\", \"name\": \"string\", \"start_block\": number, \"end_block\": number | null, \"start_date\": \"string\", \"end_date\": \"string | null\" } | null,\n    \"deployer_address\": \"string | null\",\n    \"deployment_tx_hash\": \"string | null\",\n    \"deployment_block\": number | null,\n    \"deployment_timestamp\": \"string | null\",\n    \"runtime_bytecode\": \"string | null\",\n    \"decompiled_code\": \"string | null\",\n    \"decompilation_success\": boolean,\n    \"code_size_bytes\": number | null,\n    \"gas_used\": number | null,\n    \"gas_price\": \"string | null\",\n    \"heuristics\": { \"contract_type\": \"string | null\", \"confidence\": number, \"is_proxy\": boolean, \"has_selfdestruct\": boolean, \"is_erc20_like\": boolean },\n    \"etherscan_contract_name\": \"string | null\",\n    \"etherscan_verified\": boolean,\n    \"source_code\": \"string | null\",\n    \"abi\": \"string | null\",\n    \"token_name\": \"string | null\",\n    \"token_symbol\": \"string | null\",\n    \"token_decimals\": number | null,\n    \"token_logo\": \"string | null\",\n    \"short_description\": \"string | null\",\n    \"description\": \"string | null\",\n    \"historical_summary\": \"string | null\",\n    \"historical_significance\": \"string | null\",\n    \"historical_context\": \"string | null\",\n    \"verification_status\": \"string\",\n    \"links\": [{ \"id\": number, \"title\": \"string | null\", \"url\": \"string\", \"source\": \"string | null\", \"note\": \"string | null\", \"created_at\": \"string\" }],\n    \"metadata\": [{ \"key\": \"string\", \"value\": \"string | null\", \"json_value\": unknown, \"source_url\": \"string | null\", \"created_at\": \"string\" }]\n  },\n  \"meta\": { \"timestamp\": \"string (ISO 8601)\", \"cached\": false }\n}\n\n\nErrors\n\n400 — Invalid address format. Body: { \"error\": \"Invalid Ethereum address format. Must be 0x followed by 40 hex characters.\" }\n404 — Contract not found. Body: { \"error\": \"Contract not found in our historical archive.\" }\n500 — Server error. Body: { \"error\": \"string\" }\n2. Discovery / temporal — GET {BASE_URL}/api/agent/contracts\n\nRequest (query params, all optional)\n\nParam\tType\tDescription\nera_id\tstring\tEra id: frontier, homestead, dao, tangerine, spurious\nfeatured\tstring\ttrue or 1 = featured only; false or 0 = no filter\nundocumented_only\tstring\ttrue or 1 = contracts with no short_description\nfrom_timestamp\tstring\tISO 8601; deployment_timestamp >= this\nto_timestamp\tstring\tISO 8601; deployment_timestamp <= this\nlimit\tnumber\t1–200, default 50\noffset\tnumber\tPagination offset, default 0\n\nSuccess (200)\n\n{\n  \"data\": [\n    {\n      \"address\": \"string\",\n      \"era_id\": \"string | null\",\n      \"deployer_address\": \"string | null\",\n      \"deployment_timestamp\": \"string | null\",\n      \"has_short_description\": boolean,\n      \"decompilation_success\": boolean,\n      \"etherscan_contract_name\": \"string | null\",\n      \"token_name\": \"string | null\",\n      \"token_symbol\": \"string | null\"\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"string (ISO 8601)\",\n    \"cached\": false,\n    \"limit\": number,\n    \"offset\": number,\n    \"count\": number\n  }\n}\n\n\nWhen the database is not configured, response is still 200 with \"data\": [] and meta.message indicating discovery requires PostgreSQL.\n\n3. Manifest — GET {BASE_URL}/api/agent/manifest\n\nRequest: None.\n\nSuccess (200): JSON object with name, id, description, version, base_url, capabilities, endpoints, terms. See the live URL for full shape.\n\nUsage notes\nRead-only. No opinions or editorial stance. Data as documented on EthereumHistory.com.\nFactual only. What something is and is not. No hype or persuasion.\nWhen history (short_description, etc.) is not yet documented, contract facts still include runtime_bytecode and decompiled_code when available.\nFor the full machine-readable manifest (capabilities, endpoints, terms), call GET {BASE_URL}/api/agent/manifest."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cartoonitunes/ethereum-history",
    "publisherUrl": "https://clawhub.ai/cartoonitunes/ethereum-history",
    "owner": "cartoonitunes",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ethereum-history",
    "downloadUrl": "https://openagent3.xyz/downloads/ethereum-history",
    "agentUrl": "https://openagent3.xyz/skills/ethereum-history/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ethereum-history/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ethereum-history/agent.md"
  }
}