Ethereum History

Read-only factual data about historical Ethereum mainnet contracts. Use when the user asks about a specific contract address, early Ethereum contracts, deployment era, deployer, bytecode, decompiled code, or documented history (what a contract is and is not). Data is non-opinionated and includes runtime bytecode, decompiled code, and editorial history when available. Base URL https://ethereumhistory.com (or set BASE_URL for local/staging).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Ethereum History" with this command: npx skills add cartoonitunes/ethereum-history

Ethereum History — Agent Skill

Ethereum History exposes read-only, factual data about historical Ethereum mainnet contracts. Use this skill when the user asks about:

  • A specific contract address (what is it, when was it deployed, who deployed it, bytecode, decompiled code, documented history)
  • Early Ethereum contracts, deployment era (Frontier, Homestead, DAO fork, etc.), or undocumented/notable contracts
  • Contract facts: deployer, deployment block/timestamp, short description, historical summary, links, metadata

All endpoints are GET only. No authentication required. Responses are JSON with snake_case keys.

Base URL

  • Production: https://ethereumhistory.com
  • Manifest (full schema): GET {BASE_URL}/api/agent/manifest

Endpoints

1. Contract facts (one address)

GET {BASE_URL}/api/agent/contracts/{address}

Returns 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.

Example: GET https://ethereumhistory.com/api/agent/contracts/0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb

2. Discovery (list contracts)

GET {BASE_URL}/api/agent/contracts

Query params (all optional):

  • era_id — Filter by era (e.g. frontier, homestead, dao, tangerine, spurious)
  • featuredtrue or 1 for featured contracts only
  • undocumented_onlytrue or 1 for contracts with no short_description yet
  • limit — Max 200, default 50
  • offset — Pagination offset, default 0

Returns 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.

3. Temporal queries (by time range)

GET {BASE_URL}/api/agent/contracts?from_timestamp=...&to_timestamp=...

Query params:

  • from_timestamp — ISO 8601 (e.g. 2015-07-30T00:00:00Z)
  • to_timestamp — ISO 8601
  • era_id, limit, offset — Same as discovery

Use when the user asks for contracts deployed in a date range or era.

Requests and responses

1. Contract facts — GET {BASE_URL}/api/agent/contracts/{address}

Request

  • Path: address — Ethereum address (0x + 40 hex chars). Required.

Success (200)

{
  "data": {
    "address": "string",
    "era_id": "string | null",
    "era": { "id": "string", "name": "string", "start_block": number, "end_block": number | null, "start_date": "string", "end_date": "string | null" } | null,
    "deployer_address": "string | null",
    "deployment_tx_hash": "string | null",
    "deployment_block": number | null,
    "deployment_timestamp": "string | null",
    "runtime_bytecode": "string | null",
    "decompiled_code": "string | null",
    "decompilation_success": boolean,
    "code_size_bytes": number | null,
    "gas_used": number | null,
    "gas_price": "string | null",
    "heuristics": { "contract_type": "string | null", "confidence": number, "is_proxy": boolean, "has_selfdestruct": boolean, "is_erc20_like": boolean },
    "etherscan_contract_name": "string | null",
    "etherscan_verified": boolean,
    "source_code": "string | null",
    "abi": "string | null",
    "token_name": "string | null",
    "token_symbol": "string | null",
    "token_decimals": number | null,
    "token_logo": "string | null",
    "short_description": "string | null",
    "description": "string | null",
    "historical_summary": "string | null",
    "historical_significance": "string | null",
    "historical_context": "string | null",
    "verification_status": "string",
    "links": [{ "id": number, "title": "string | null", "url": "string", "source": "string | null", "note": "string | null", "created_at": "string" }],
    "metadata": [{ "key": "string", "value": "string | null", "json_value": unknown, "source_url": "string | null", "created_at": "string" }]
  },
  "meta": { "timestamp": "string (ISO 8601)", "cached": false }
}

Errors

  • 400 — Invalid address format. Body: { "error": "Invalid Ethereum address format. Must be 0x followed by 40 hex characters." }
  • 404 — Contract not found. Body: { "error": "Contract not found in our historical archive." }
  • 500 — Server error. Body: { "error": "string" }

2. Discovery / temporal — GET {BASE_URL}/api/agent/contracts

Request (query params, all optional)

ParamTypeDescription
era_idstringEra id: frontier, homestead, dao, tangerine, spurious
featuredstringtrue or 1 = featured only; false or 0 = no filter
undocumented_onlystringtrue or 1 = contracts with no short_description
from_timestampstringISO 8601; deployment_timestamp >= this
to_timestampstringISO 8601; deployment_timestamp <= this
limitnumber1–200, default 50
offsetnumberPagination offset, default 0

Success (200)

{
  "data": [
    {
      "address": "string",
      "era_id": "string | null",
      "deployer_address": "string | null",
      "deployment_timestamp": "string | null",
      "has_short_description": boolean,
      "decompilation_success": boolean,
      "etherscan_contract_name": "string | null",
      "token_name": "string | null",
      "token_symbol": "string | null"
    }
  ],
  "meta": {
    "timestamp": "string (ISO 8601)",
    "cached": false,
    "limit": number,
    "offset": number,
    "count": number
  }
}

When the database is not configured, response is still 200 with "data": [] and meta.message indicating discovery requires PostgreSQL.


3. Manifest — GET {BASE_URL}/api/agent/manifest

Request: None.

Success (200): JSON object with name, id, description, version, base_url, capabilities, endpoints, terms. See the live URL for full shape.


Usage notes

  • Read-only. No opinions or editorial stance. Data as documented on EthereumHistory.com.
  • Factual only. What something is and is not. No hype or persuasion.
  • When history (short_description, etc.) is not yet documented, contract facts still include runtime_bytecode and decompiled_code when available.
  • For the full machine-readable manifest (capabilities, endpoints, terms), call GET {BASE_URL}/api/agent/manifest.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

API Gateway

Connect to 100+ APIs (Google Workspace, Microsoft 365, GitHub, Notion, Slack, Airtable, HubSpot, etc.) with managed OAuth. Use this skill when users want to...

Registry SourceRecently Updated
73.2K369byungkyu
Coding

FRITZ!Box

Control AVM FRITZ!Box routers and Smarthome devices via TR-064 and Web API. Use when the user wants to manage their FRITZ!Box router (WLAN, connected devices...

Registry SourceRecently Updated
Coding

Meeting Assistant

会议全流程自动化:日历/窗口检测 → 弹窗询问 → ScreenCaptureKit 录制系统音频 + 麦克风 → whisper-cli 本地转写 → OpenClaw agent 生成纪要 → 推送到多端。基于 AudioDaemon 原生录制,不需要 BlackHole 等虚拟声卡。Use when: (1...

Registry SourceRecently Updated
Coding

Anygen Shared

anygen CLI: Shared patterns for authentication, global flags, and output formatting.

Registry SourceRecently Updated