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: INLINECODE0
- Manifest (full schema): INLINECODE1
Endpoints
1. Contract facts (one address)
GET INLINECODE2
Returns full factual data for one contract: address, era, deployer, deployment block/timestamp, runtimebytecode, decompiledcode (when available), shortdescription, historicalsummary, historicalsignificance, historicalcontext, token metadata, heuristics, links, metadata. Use when the user provides or asks about a specific contract address.
Example: INLINECODE3
2. Discovery (list contracts)
GET INLINECODE4
Query params (all optional):
- -
era_id — Filter by era (e.g. frontier, homestead, dao, tangerine, spurious) - INLINECODE11 —
true or 1 for featured contracts only - INLINECODE14 —
true or 1 for contracts with no short_description yet - INLINECODE17 — Max 200, default 50
- INLINECODE18 — Pagination offset, default 0
Returns a list with minimal fields: address, eraid, deployeraddress, deploymenttimestamp, hasshortdescription, decompilationsuccess, etherscancontractname, tokenname, tokensymbol. Use for discovery; then fetch full facts via endpoint 1 if needed.
3. Temporal queries (by time range)
GET INLINECODE19
Query params:
- -
from_timestamp — ISO 8601 (e.g. 2015-07-30T00:00:00Z) - INLINECODE22 — ISO 8601
- INLINECODE23 ,
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)
CODEBLOCK0
Errors
- - 400 — Invalid address format. Body: INLINECODE28
- 404 — Contract not found. Body: INLINECODE29
- 500 — Server error. Body: INLINECODE30
2. Discovery / temporal — GET {BASE_URL}/api/agent/contracts
Request (query params, all optional)
| Param | Type | Description |
|---|
| INLINECODE32 | string | Era id: frontier, homestead, dao, tangerine, INLINECODE37 |
| INLINECODE38 |
string |
true or
1 = featured only;
false or
0 = no filter |
|
undocumented_only | string |
true or
1 = contracts with no short_description |
|
from_timestamp | string | ISO 8601; deployment_timestamp >= this |
|
to_timestamp | string | ISO 8601; deployment_timestamp <= this |
|
limit | number | 1–200, default 50 |
|
offset | number | Pagination offset, default 0 |
Success (200)
CODEBLOCK1
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 (shortdescription, etc.) is not yet documented, contract facts still include runtimebytecode and decompiled_code when available.
- For the full machine-readable manifest (capabilities, endpoints, terms), call
GET {BASE_URL}/api/agent/manifest.
Ethereum History — 代理技能
Ethereum History 提供关于以太坊主网历史合约的只读、事实性数据。当用户询问以下内容时使用此技能:
- - 特定合约地址(是什么、何时部署、由谁部署、字节码、反编译代码、有记录的历史)
- 早期以太坊合约、部署时代(Frontier、Homestead、DAO 分叉等),或未记录/值得关注的合约
- 合约事实:部署者、部署区块/时间戳、简短描述、历史摘要、链接、元数据
所有端点均为 仅 GET。无需身份验证。响应为 JSON 格式,使用 snake_case 键名。
基础 URL
- - 生产环境:https://ethereumhistory.com
- 清单(完整模式):GET {BASE_URL}/api/agent/manifest
端点
1. 合约事实(单个地址)
GET {BASE_URL}/api/agent/contracts/{address}
返回单个合约的完整事实数据:地址、时代、部署者、部署区块/时间戳、运行时字节码、反编译代码(如有)、简短描述、历史摘要、历史意义、历史背景、代币元数据、启发式信息、链接、元数据。当用户提供或询问特定合约地址时使用。
示例:GET https://ethereumhistory.com/api/agent/contracts/0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb
2. 发现(合约列表)
GET {BASE_URL}/api/agent/contracts
查询参数(均为可选):
- - eraid — 按时代筛选(例如 frontier、homestead、dao、tangerine、spurious)
- featured — true 或 1 仅显示精选合约
- undocumentedonly — true 或 1 仅显示尚无简短描述的合约
- limit — 最大 200,默认 50
- offset — 分页偏移量,默认 0
返回包含最少字段的列表:地址、时代 ID、部署者地址、部署时间戳、是否有简短描述、反编译是否成功、Etherscan 合约名称、代币名称、代币符号。用于发现;如需完整事实,可通过端点 1 获取。
3. 时间查询(按时间范围)
GET {BASEURL}/api/agent/contracts?fromtimestamp=...&to_timestamp=...
查询参数:
- - fromtimestamp — ISO 8601 格式(例如 2015-07-30T00:00:00Z)
- totimestamp — ISO 8601 格式
- era_id、limit、offset — 与发现端点相同
当用户询问在某个日期范围或时代内部署的合约时使用。
请求与响应
1. 合约事实 — GET {BASE_URL}/api/agent/contracts/{address}
请求
- - 路径:address — 以太坊地址(0x + 40 个十六进制字符)。必填。
成功(200)
json
{
data: {
address: string,
era_id: string | null,
era: { id: string, name: string, startblock: number, endblock: number | null, startdate: string, enddate: string | null } | null,
deployer_address: string | null,
deploymenttxhash: string | null,
deployment_block: number | null,
deployment_timestamp: string | null,
runtime_bytecode: string | null,
decompiled_code: string | null,
decompilation_success: boolean,
codesizebytes: number | null,
gas_used: number | null,
gas_price: string | null,
heuristics: { contracttype: string | null, confidence: number, isproxy: boolean, hasselfdestruct: boolean, iserc20_like: boolean },
etherscancontractname: 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, jsonvalue: unknown, sourceurl: string | null, created_at: string }]
},
meta: { timestamp: string (ISO 8601), cached: false }
}
错误
- - 400 — 地址格式无效。响应体:{ error: Invalid Ethereum address format. Must be 0x followed by 40 hex characters. }
- 404 — 未找到合约。响应体:{ error: Contract not found in our historical archive. }
- 500 — 服务器错误。响应体:{ error: string }
2. 发现/时间查询 — GET {BASE_URL}/api/agent/contracts
请求(查询参数,均为可选)
| 参数 | 类型 | 描述 |
|---|
| era_id | string | 时代 ID:frontier、homestead、dao、tangerine、spurious |
| featured |
string | true 或 1 = 仅精选;false 或 0 = 不过滤 |
| undocumented_only | string | true 或 1 = 无简短描述的合约 |
| from_timestamp | string | ISO 8601 格式;部署时间戳 >= 此值 |
| to_timestamp | string | ISO 8601 格式;部署时间戳 <= 此值 |
| limit | number | 1–200,默认 50 |
| offset | number | 分页偏移量,默认 0 |
成功(200)
json
{
data: [
{
address: string,
era_id: string | null,
deployer_address: string | null,
deployment_timestamp: string | null,
hasshortdescription: boolean,
decompilation_success: boolean,
etherscancontractname: string | null,
token_name: string | null,
token_symbol: string | null
}
],
meta: {
timestamp: string (ISO 8601),
cached: false,
limit: number,
offset: number,
count: number
}
}
当数据库未配置时,响应仍为 200,返回 data: [] 且 meta.message 指示发现功能需要 PostgreSQL。
3. 清单 — GET {BASE_URL}/api/agent/manifest
请求: 无。
成功(200): JSON 对象,包含 name、id、description、version、base_url、capabilities、endpoints、terms。完整结构请查看实时 URL。
使用说明
- - 只读。 无观点或编辑立场。数据以 EthereumHistory.com 记录为准。
- 仅事实。 描述某事物是什么和不是什么。无炒作或说服性内容。
- 当历史信息(简短描述等)尚未记录时,合约事实仍会包含运行时字节码和反编译代码(如有)。
- 如需完整的机器可读清单(功能、端点、条款),请调用 GET {BASE_URL}/api/agent/manifest。