{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ethereum",
    "name": "Ethereum",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/ivangdavila/ethereum",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/ethereum",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ethereum",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ethereum",
    "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-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/ethereum"
    },
    "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",
    "agentPageUrl": "https://openagent3.xyz/skills/ethereum/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ethereum/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ethereum/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": "Nonce and Stuck Transactions",
        "body": "Every Ethereum account has a nonce that increments with each transaction — if tx with nonce 5 is pending, nonces 6+ are blocked until 5 confirms\nTo unstick: send a new tx with the SAME nonce and higher gas — this replaces the pending tx (even a 0 ETH self-transfer works)\nMetaMask \"Speed up\" and \"Cancel\" buttons do exactly this — they resubmit with same nonce and higher priority fee\nNonce gaps cause permanent stuck state — if nonce 3 was never broadcast but 4 was, 4 will never confirm until 3 is sent"
      },
      {
        "title": "Gas (EIP-1559)",
        "body": "maxFeePerGas = max total you'll pay per gas unit. maxPriorityFeePerGas = tip to validator. baseFee = burned, set by protocol\nActual cost: min(baseFee + priorityFee, maxFee) × gasUsed — unused gas is refunded, but failed txs still consume gas\nGas limit is separate from gas price — setting limit too low causes \"out of gas\" revert, but you still pay for gas used up to that point\nCheck current base fee at etherscan.io/gastracker or via eth_gasPrice RPC — wallets often overestimate by 20-50%"
      },
      {
        "title": "Token Approvals (Critical Security)",
        "body": "ERC-20 approve() grants a contract permission to spend your tokens — many dApps request unlimited (type(uint256).max) approval\nIf that contract gets hacked, attacker can drain all approved tokens even years later — audit approvals at revoke.cash\nRecommend users approve only the exact amount needed, or revoke after each use\nApprovals persist forever until explicitly revoked — changing wallets doesn't help if the old address still has tokens"
      },
      {
        "title": "Failed Transactions",
        "body": "A reverted transaction is mined and consumes gas — you pay even though nothing happened\nCommon causes: slippage exceeded, deadline passed, insufficient token balance, contract paused\n\"Transaction failed\" in explorer means it executed but reverted — completely different from \"pending\" (not yet mined)\nSimulating transactions before sending (via Tenderly or wallet preview) catches most revert conditions"
      },
      {
        "title": "L2 Bridges and Withdrawals",
        "body": "Optimistic rollups (Optimism, Arbitrum, Base) have 7-day withdrawal period to mainnet — this is not a bug, it's the security model\nZK rollups (zkSync, Starknet) have faster finality but bridging back still takes 1-24 hours depending on liquidity\nThird-party bridges (Hop, Across) offer faster exits but charge fees and have smart contract risk\nNever bridge more than you can afford to wait 7 days for — or use a fast bridge and accept the fee"
      },
      {
        "title": "MEV Protection",
        "body": "Public mempool transactions can be frontrun or sandwiched — especially swaps on DEXs\nFlashbots Protect RPC (protect.flashbots.net) hides transactions from public mempool until mined\nPrivate transaction options: MEV Blocker, Flashbots Protect, or DEXs with native protection (CoW Swap)\nSigns of sandwich attack: swap executed at worse price than quoted, with suspicious txs immediately before and after yours"
      },
      {
        "title": "Address Validation",
        "body": "Ethereum addresses are case-insensitive but the checksum (mixed case) catches typos — 0xABC... vs 0xabc... are the same address\nENS domains can expire — always verify current owner before sending to a .eth name\nContract addresses vs EOA: contracts can reject ETH transfers or behave unexpectedly — check on etherscan if address has code\nSome tokens have multiple addresses (official + scam clones) — verify contract address on CoinGecko or project's official site"
      }
    ],
    "body": "Nonce and Stuck Transactions\nEvery Ethereum account has a nonce that increments with each transaction — if tx with nonce 5 is pending, nonces 6+ are blocked until 5 confirms\nTo unstick: send a new tx with the SAME nonce and higher gas — this replaces the pending tx (even a 0 ETH self-transfer works)\nMetaMask \"Speed up\" and \"Cancel\" buttons do exactly this — they resubmit with same nonce and higher priority fee\nNonce gaps cause permanent stuck state — if nonce 3 was never broadcast but 4 was, 4 will never confirm until 3 is sent\nGas (EIP-1559)\nmaxFeePerGas = max total you'll pay per gas unit. maxPriorityFeePerGas = tip to validator. baseFee = burned, set by protocol\nActual cost: min(baseFee + priorityFee, maxFee) × gasUsed — unused gas is refunded, but failed txs still consume gas\nGas limit is separate from gas price — setting limit too low causes \"out of gas\" revert, but you still pay for gas used up to that point\nCheck current base fee at etherscan.io/gastracker or via eth_gasPrice RPC — wallets often overestimate by 20-50%\nToken Approvals (Critical Security)\nERC-20 approve() grants a contract permission to spend your tokens — many dApps request unlimited (type(uint256).max) approval\nIf that contract gets hacked, attacker can drain all approved tokens even years later — audit approvals at revoke.cash\nRecommend users approve only the exact amount needed, or revoke after each use\nApprovals persist forever until explicitly revoked — changing wallets doesn't help if the old address still has tokens\nFailed Transactions\nA reverted transaction is mined and consumes gas — you pay even though nothing happened\nCommon causes: slippage exceeded, deadline passed, insufficient token balance, contract paused\n\"Transaction failed\" in explorer means it executed but reverted — completely different from \"pending\" (not yet mined)\nSimulating transactions before sending (via Tenderly or wallet preview) catches most revert conditions\nL2 Bridges and Withdrawals\nOptimistic rollups (Optimism, Arbitrum, Base) have 7-day withdrawal period to mainnet — this is not a bug, it's the security model\nZK rollups (zkSync, Starknet) have faster finality but bridging back still takes 1-24 hours depending on liquidity\nThird-party bridges (Hop, Across) offer faster exits but charge fees and have smart contract risk\nNever bridge more than you can afford to wait 7 days for — or use a fast bridge and accept the fee\nMEV Protection\nPublic mempool transactions can be frontrun or sandwiched — especially swaps on DEXs\nFlashbots Protect RPC (protect.flashbots.net) hides transactions from public mempool until mined\nPrivate transaction options: MEV Blocker, Flashbots Protect, or DEXs with native protection (CoW Swap)\nSigns of sandwich attack: swap executed at worse price than quoted, with suspicious txs immediately before and after yours\nAddress Validation\nEthereum addresses are case-insensitive but the checksum (mixed case) catches typos — 0xABC... vs 0xabc... are the same address\nENS domains can expire — always verify current owner before sending to a .eth name\nContract addresses vs EOA: contracts can reject ETH transfers or behave unexpectedly — check on etherscan if address has code\nSome tokens have multiple addresses (official + scam clones) — verify contract address on CoinGecko or project's official site"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/ethereum",
    "publisherUrl": "https://clawhub.ai/ivangdavila/ethereum",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ethereum",
    "downloadUrl": "https://openagent3.xyz/downloads/ethereum",
    "agentUrl": "https://openagent3.xyz/skills/ethereum/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ethereum/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ethereum/agent.md"
  }
}