{
  "schemaVersion": "1.0",
  "item": {
    "slug": "alchemy-web3",
    "name": "Alchemy Web3",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/gizmo-dev/alchemy-web3",
    "canonicalUrl": "https://clawhub.ai/gizmo-dev/alchemy-web3",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/alchemy-web3",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=alchemy-web3",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/agent-workflows.md",
      "references/chains.md",
      "references/nft-api.md",
      "references/node-api.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/alchemy-web3"
    },
    "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/alchemy-web3",
    "agentPageUrl": "https://openagent3.xyz/skills/alchemy-web3/agent",
    "manifestUrl": "https://openagent3.xyz/skills/alchemy-web3/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/alchemy-web3/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Alchemy Web3 Skill",
        "body": "Query blockchain data, NFTs, tokens, and transfers using Alchemy's production-grade APIs. Supports Ethereum, Polygon, Arbitrum, Base, Solana, and 80+ other chains.\n\nBuilt by GizmoLab — Web3 development agency specializing in dApps, smart contracts, and blockchain infrastructure."
      },
      {
        "title": "1. Get API Key",
        "body": "Sign up at alchemy.com (free tier available)\nCreate an app for your target chain\nCopy your API key\n\n💡 New to Web3 development? GizmoLab offers full-stack blockchain development services."
      },
      {
        "title": "2. Configure",
        "body": "# Add to ~/.openclaw/.env\nALCHEMY_API_KEY=your_api_key_here\n\n# Optional: Set default chain (defaults to eth-mainnet)\nALCHEMY_CHAIN=eth-mainnet"
      },
      {
        "title": "Supported Chains",
        "body": "ChainEndpoint PrefixEthereumeth-mainnet, eth-sepoliaPolygonpolygon-mainnet, polygon-amoyArbitrumarb-mainnet, arb-sepoliaOptimismopt-mainnet, opt-sepoliaBasebase-mainnet, base-sepoliaSolanasolana-mainnet, solana-devnetzkSynczksync-mainnetLinealinea-mainnetScrollscroll-mainnetBlastblast-mainnet\n\nFull list: alchemy.com/docs/chains"
      },
      {
        "title": "CLI Usage",
        "body": "# Set your API key first\nexport ALCHEMY_API_KEY=\"your_key\"\n\n# Use the CLI\n~/.openclaw/workspace/skills/alchemy-web3/scripts/alchemy.sh <command> [options]"
      },
      {
        "title": "Commands",
        "body": "Get ETH Balance\n\n./alchemy.sh balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: 1234.56 ETH\n\nGet Token Balances\n\n./alchemy.sh tokens 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: All ERC-20 tokens held by address\n\nGet NFTs for Owner\n\n./alchemy.sh nfts 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: All NFTs owned by address\n\nGet NFT Metadata\n\n./alchemy.sh nft-metadata 0x5180db8F5c931aaE63c74266b211F580155ecac8 1590\n# Returns: Metadata for specific NFT\n\nGet Asset Transfers\n\n./alchemy.sh transfers 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: Transaction history (in/out)\n\nGet Block Info\n\n./alchemy.sh block latest\n./alchemy.sh block 12345678\n\nGet Transaction\n\n./alchemy.sh tx 0x123...abc\n\nResolve ENS\n\n./alchemy.sh ens vitalik.eth\n# Returns: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n\nSwitch Chain\n\n./alchemy.sh --chain polygon-mainnet balance 0x...\n./alchemy.sh --chain arb-mainnet nfts 0x..."
      },
      {
        "title": "Node API (JSON-RPC)",
        "body": "# Get ETH balance\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"eth_getBalance\",\n    \"params\": [\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\", \"latest\"],\n    \"id\": 1\n  }'"
      },
      {
        "title": "NFT API",
        "body": "# Get NFTs for owner\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=vitalik.eth&pageSize=10\"\n\n# Get NFT metadata\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTMetadata?contractAddress=0x5180db8F5c931aaE63c74266b211F580155ecac8&tokenId=1590\"\n\n# Get NFTs for collection\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForContract?contractAddress=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D&limit=10\""
      },
      {
        "title": "Token API",
        "body": "# Get token balances\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getTokenBalances\",\n    \"params\": [\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"],\n    \"id\": 1\n  }'\n\n# Get token metadata\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getTokenMetadata\",\n    \"params\": [\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"],\n    \"id\": 1\n  }'"
      },
      {
        "title": "Transfers API",
        "body": "# Get asset transfers (transaction history)\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getAssetTransfers\",\n    \"params\": [{\n      \"fromBlock\": \"0x0\",\n      \"toBlock\": \"latest\",\n      \"toAddress\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\",\n      \"category\": [\"external\", \"erc20\", \"erc721\", \"erc1155\"],\n      \"maxCount\": \"0x14\"\n    }],\n    \"id\": 1\n  }'"
      },
      {
        "title": "Using Fetch (Node 18+)",
        "body": "const apiKey = process.env.ALCHEMY_API_KEY;\nconst baseURL = `https://eth-mainnet.g.alchemy.com/v2/${apiKey}`;\n\n// Get ETH Balance\nasync function getBalance(address) {\n  const response = await fetch(baseURL, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      jsonrpc: '2.0',\n      method: 'eth_getBalance',\n      params: [address, 'latest'],\n      id: 1\n    })\n  });\n  const data = await response.json();\n  return parseInt(data.result, 16) / 1e18; // Convert to ETH\n}\n\n// Get NFTs\nasync function getNFTs(owner) {\n  const url = `https://eth-mainnet.g.alchemy.com/nft/v3/${apiKey}/getNFTsForOwner?owner=${owner}`;\n  const response = await fetch(url);\n  return await response.json();\n}"
      },
      {
        "title": "Using Alchemy SDK",
        "body": "npm install alchemy-sdk\n\nimport { Alchemy, Network } from 'alchemy-sdk';\n\nconst alchemy = new Alchemy({\n  apiKey: process.env.ALCHEMY_API_KEY,\n  network: Network.ETH_MAINNET\n});\n\n// Get NFTs\nconst nfts = await alchemy.nft.getNftsForOwner('vitalik.eth');\nconsole.log(nfts.ownedNfts);\n\n// Get token balances\nconst balances = await alchemy.core.getTokenBalances('vitalik.eth');\nconsole.log(balances);\n\n// Get transaction history\nconst transfers = await alchemy.core.getAssetTransfers({\n  toAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',\n  category: ['external', 'erc20']\n});"
      },
      {
        "title": "Webhooks (Real-time Notifications)",
        "body": "Receive HTTP POST requests when onchain events happen."
      },
      {
        "title": "Webhook Types",
        "body": "TypeUse CaseAddress ActivityTrack transfers to/from specific addressesNFT ActivityTrack NFT sales, transfers, mintsMined TransactionsTrack when your txs are minedDropped TransactionsGet notified if tx is droppedGas PriceAlert on gas price thresholds"
      },
      {
        "title": "Create Webhook (Dashboard)",
        "body": "Go to dashboard.alchemy.com/webhooks\nClick \"Create Webhook\"\nSelect type and configure\nAdd your endpoint URL"
      },
      {
        "title": "Webhook Payload Example",
        "body": "{\n  \"webhookId\": \"wh_abc123\",\n  \"id\": \"evt_xyz789\",\n  \"createdAt\": \"2024-01-15T12:00:00.000Z\",\n  \"type\": \"ADDRESS_ACTIVITY\",\n  \"event\": {\n    \"network\": \"ETH_MAINNET\",\n    \"activity\": [{\n      \"fromAddress\": \"0x123...\",\n      \"toAddress\": \"0x456...\",\n      \"value\": 1.5,\n      \"asset\": \"ETH\"\n    }]\n  }\n}"
      },
      {
        "title": "Portfolio Tracker",
        "body": "# Get all assets for a wallet\n./alchemy.sh balance 0x...      # ETH balance\n./alchemy.sh tokens 0x...       # ERC-20 tokens\n./alchemy.sh nfts 0x...         # NFTs"
      },
      {
        "title": "Transaction History",
        "body": "# Get full tx history for address\n./alchemy.sh transfers 0x... --category external,erc20,erc721"
      },
      {
        "title": "NFT Collection Analysis",
        "body": "# Get all NFTs in a collection\n./alchemy.sh collection 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"
      },
      {
        "title": "Multi-chain Query",
        "body": "# Check same address across chains\nfor chain in eth-mainnet polygon-mainnet arb-mainnet base-mainnet; do\n  echo \"=== $chain ===\"\n  ./alchemy.sh --chain $chain balance 0x...\ndone"
      },
      {
        "title": "Rate Limits",
        "body": "PlanCompute Units/secMonthly CUsFree330300MGrowth660UnlimitedScaleCustomCustom\n\nMost endpoints cost 1-50 CUs. Check alchemy.com/docs/rate-limits for details."
      },
      {
        "title": "Error Handling",
        "body": "// Rate limited\n{\"error\": {\"code\": 429, \"message\": \"Too Many Requests\"}}\n\n// Invalid API key\n{\"error\": {\"code\": 401, \"message\": \"Invalid API Key\"}}\n\n// Invalid params\n{\"error\": {\"code\": -32602, \"message\": \"Invalid params\"}}"
      },
      {
        "title": "Resources",
        "body": "Get API Key: alchemy.com (free tier)\nDashboard: dashboard.alchemy.com\nDocs: alchemy.com/docs\nSDK: github.com/alchemyplatform/alchemy-sdk-js\nStatus: status.alchemy.com"
      },
      {
        "title": "About",
        "body": "Built by GizmoLab 🔧\n\nGizmoLab is a Web3 development agency building dApps, smart contracts, and blockchain tools.\n\n🌐 gizmolab.io — Agency services\n🛠️ tools.gizmolab.io — Free blockchain dev tools\n🎨 ui.gizmolab.io — Web3 UI components\n\nNeed custom blockchain development? Get in touch"
      },
      {
        "title": "AI Agent Workflows",
        "body": "The skill is designed for both human developers AND AI agents. See references/agent-workflows.md for complete examples:\n\nWhale Tracker — Monitor large wallets for moves\nPortfolio Monitor — Track balances across chains\nNFT Floor Alert — Alert on price drops\nToken Change Detector — Detect incoming/outgoing tokens\nGas Optimizer — Wait for low gas to transact\nMint Detector — Watch for new NFT mints\nDashboard Generator — Auto-generate wallet dashboards"
      },
      {
        "title": "Agent Pattern",
        "body": "QUERY → STORE → ANALYZE → DECIDE → ACT → REPEAT\n\nExample cron job for an agent:\n\n# Every hour, check whale activity and alert if >100 ETH moved\n0 * * * * ~/.openclaw/workspace/skills/alchemy-web3/scripts/whale-tracker.sh"
      },
      {
        "title": "See Also",
        "body": "references/nft-api.md - Full NFT API reference\nreferences/token-api.md - Full Token API reference\nreferences/node-api.md - Full Node API reference\nreferences/chains.md - All supported chains\nreferences/agent-workflows.md - AI agent automation examples"
      }
    ],
    "body": "Alchemy Web3 Skill\n\nQuery blockchain data, NFTs, tokens, and transfers using Alchemy's production-grade APIs. Supports Ethereum, Polygon, Arbitrum, Base, Solana, and 80+ other chains.\n\nBuilt by GizmoLab — Web3 development agency specializing in dApps, smart contracts, and blockchain infrastructure.\n\nSetup\n1. Get API Key\nSign up at alchemy.com (free tier available)\nCreate an app for your target chain\nCopy your API key\n\n💡 New to Web3 development? GizmoLab offers full-stack blockchain development services.\n\n2. Configure\n# Add to ~/.openclaw/.env\nALCHEMY_API_KEY=your_api_key_here\n\n# Optional: Set default chain (defaults to eth-mainnet)\nALCHEMY_CHAIN=eth-mainnet\n\nQuick Reference\nSupported Chains\nChain\tEndpoint Prefix\nEthereum\teth-mainnet, eth-sepolia\nPolygon\tpolygon-mainnet, polygon-amoy\nArbitrum\tarb-mainnet, arb-sepolia\nOptimism\topt-mainnet, opt-sepolia\nBase\tbase-mainnet, base-sepolia\nSolana\tsolana-mainnet, solana-devnet\nzkSync\tzksync-mainnet\nLinea\tlinea-mainnet\nScroll\tscroll-mainnet\nBlast\tblast-mainnet\n\nFull list: alchemy.com/docs/chains\n\nCLI Usage\n# Set your API key first\nexport ALCHEMY_API_KEY=\"your_key\"\n\n# Use the CLI\n~/.openclaw/workspace/skills/alchemy-web3/scripts/alchemy.sh <command> [options]\n\nCommands\nGet ETH Balance\n./alchemy.sh balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: 1234.56 ETH\n\nGet Token Balances\n./alchemy.sh tokens 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: All ERC-20 tokens held by address\n\nGet NFTs for Owner\n./alchemy.sh nfts 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: All NFTs owned by address\n\nGet NFT Metadata\n./alchemy.sh nft-metadata 0x5180db8F5c931aaE63c74266b211F580155ecac8 1590\n# Returns: Metadata for specific NFT\n\nGet Asset Transfers\n./alchemy.sh transfers 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n# Returns: Transaction history (in/out)\n\nGet Block Info\n./alchemy.sh block latest\n./alchemy.sh block 12345678\n\nGet Transaction\n./alchemy.sh tx 0x123...abc\n\nResolve ENS\n./alchemy.sh ens vitalik.eth\n# Returns: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\n\nSwitch Chain\n./alchemy.sh --chain polygon-mainnet balance 0x...\n./alchemy.sh --chain arb-mainnet nfts 0x...\n\nDirect API Examples\nNode API (JSON-RPC)\n# Get ETH balance\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"eth_getBalance\",\n    \"params\": [\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\", \"latest\"],\n    \"id\": 1\n  }'\n\nNFT API\n# Get NFTs for owner\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=vitalik.eth&pageSize=10\"\n\n# Get NFT metadata\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTMetadata?contractAddress=0x5180db8F5c931aaE63c74266b211F580155ecac8&tokenId=1590\"\n\n# Get NFTs for collection\ncurl \"https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForContract?contractAddress=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D&limit=10\"\n\nToken API\n# Get token balances\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getTokenBalances\",\n    \"params\": [\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"],\n    \"id\": 1\n  }'\n\n# Get token metadata\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getTokenMetadata\",\n    \"params\": [\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"],\n    \"id\": 1\n  }'\n\nTransfers API\n# Get asset transfers (transaction history)\ncurl -X POST \"https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"alchemy_getAssetTransfers\",\n    \"params\": [{\n      \"fromBlock\": \"0x0\",\n      \"toBlock\": \"latest\",\n      \"toAddress\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\",\n      \"category\": [\"external\", \"erc20\", \"erc721\", \"erc1155\"],\n      \"maxCount\": \"0x14\"\n    }],\n    \"id\": 1\n  }'\n\nJavaScript/Node.js Examples\nUsing Fetch (Node 18+)\nconst apiKey = process.env.ALCHEMY_API_KEY;\nconst baseURL = `https://eth-mainnet.g.alchemy.com/v2/${apiKey}`;\n\n// Get ETH Balance\nasync function getBalance(address) {\n  const response = await fetch(baseURL, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      jsonrpc: '2.0',\n      method: 'eth_getBalance',\n      params: [address, 'latest'],\n      id: 1\n    })\n  });\n  const data = await response.json();\n  return parseInt(data.result, 16) / 1e18; // Convert to ETH\n}\n\n// Get NFTs\nasync function getNFTs(owner) {\n  const url = `https://eth-mainnet.g.alchemy.com/nft/v3/${apiKey}/getNFTsForOwner?owner=${owner}`;\n  const response = await fetch(url);\n  return await response.json();\n}\n\nUsing Alchemy SDK\nnpm install alchemy-sdk\n\nimport { Alchemy, Network } from 'alchemy-sdk';\n\nconst alchemy = new Alchemy({\n  apiKey: process.env.ALCHEMY_API_KEY,\n  network: Network.ETH_MAINNET\n});\n\n// Get NFTs\nconst nfts = await alchemy.nft.getNftsForOwner('vitalik.eth');\nconsole.log(nfts.ownedNfts);\n\n// Get token balances\nconst balances = await alchemy.core.getTokenBalances('vitalik.eth');\nconsole.log(balances);\n\n// Get transaction history\nconst transfers = await alchemy.core.getAssetTransfers({\n  toAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',\n  category: ['external', 'erc20']\n});\n\nWebhooks (Real-time Notifications)\n\nReceive HTTP POST requests when onchain events happen.\n\nWebhook Types\nType\tUse Case\nAddress Activity\tTrack transfers to/from specific addresses\nNFT Activity\tTrack NFT sales, transfers, mints\nMined Transactions\tTrack when your txs are mined\nDropped Transactions\tGet notified if tx is dropped\nGas Price\tAlert on gas price thresholds\nCreate Webhook (Dashboard)\nGo to dashboard.alchemy.com/webhooks\nClick \"Create Webhook\"\nSelect type and configure\nAdd your endpoint URL\nWebhook Payload Example\n{\n  \"webhookId\": \"wh_abc123\",\n  \"id\": \"evt_xyz789\",\n  \"createdAt\": \"2024-01-15T12:00:00.000Z\",\n  \"type\": \"ADDRESS_ACTIVITY\",\n  \"event\": {\n    \"network\": \"ETH_MAINNET\",\n    \"activity\": [{\n      \"fromAddress\": \"0x123...\",\n      \"toAddress\": \"0x456...\",\n      \"value\": 1.5,\n      \"asset\": \"ETH\"\n    }]\n  }\n}\n\nCommon Patterns\nPortfolio Tracker\n# Get all assets for a wallet\n./alchemy.sh balance 0x...      # ETH balance\n./alchemy.sh tokens 0x...       # ERC-20 tokens\n./alchemy.sh nfts 0x...         # NFTs\n\nTransaction History\n# Get full tx history for address\n./alchemy.sh transfers 0x... --category external,erc20,erc721\n\nNFT Collection Analysis\n# Get all NFTs in a collection\n./alchemy.sh collection 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D\n\nMulti-chain Query\n# Check same address across chains\nfor chain in eth-mainnet polygon-mainnet arb-mainnet base-mainnet; do\n  echo \"=== $chain ===\"\n  ./alchemy.sh --chain $chain balance 0x...\ndone\n\nRate Limits\nPlan\tCompute Units/sec\tMonthly CUs\nFree\t330\t300M\nGrowth\t660\tUnlimited\nScale\tCustom\tCustom\n\nMost endpoints cost 1-50 CUs. Check alchemy.com/docs/rate-limits for details.\n\nError Handling\n// Rate limited\n{\"error\": {\"code\": 429, \"message\": \"Too Many Requests\"}}\n\n// Invalid API key\n{\"error\": {\"code\": 401, \"message\": \"Invalid API Key\"}}\n\n// Invalid params\n{\"error\": {\"code\": -32602, \"message\": \"Invalid params\"}}\n\nResources\nGet API Key: alchemy.com (free tier)\nDashboard: dashboard.alchemy.com\nDocs: alchemy.com/docs\nSDK: github.com/alchemyplatform/alchemy-sdk-js\nStatus: status.alchemy.com\nAbout\n\nBuilt by GizmoLab 🔧\n\nGizmoLab is a Web3 development agency building dApps, smart contracts, and blockchain tools.\n\n🌐 gizmolab.io — Agency services\n🛠️ tools.gizmolab.io — Free blockchain dev tools\n🎨 ui.gizmolab.io — Web3 UI components\n\nNeed custom blockchain development? Get in touch\n\nAI Agent Workflows\n\nThe skill is designed for both human developers AND AI agents. See references/agent-workflows.md for complete examples:\n\nWhale Tracker — Monitor large wallets for moves\nPortfolio Monitor — Track balances across chains\nNFT Floor Alert — Alert on price drops\nToken Change Detector — Detect incoming/outgoing tokens\nGas Optimizer — Wait for low gas to transact\nMint Detector — Watch for new NFT mints\nDashboard Generator — Auto-generate wallet dashboards\nAgent Pattern\nQUERY → STORE → ANALYZE → DECIDE → ACT → REPEAT\n\n\nExample cron job for an agent:\n\n# Every hour, check whale activity and alert if >100 ETH moved\n0 * * * * ~/.openclaw/workspace/skills/alchemy-web3/scripts/whale-tracker.sh\n\nSee Also\nreferences/nft-api.md - Full NFT API reference\nreferences/token-api.md - Full Token API reference\nreferences/node-api.md - Full Node API reference\nreferences/chains.md - All supported chains\nreferences/agent-workflows.md - AI agent automation examples"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/gizmo-dev/alchemy-web3",
    "publisherUrl": "https://clawhub.ai/gizmo-dev/alchemy-web3",
    "owner": "gizmo-dev",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/alchemy-web3",
    "downloadUrl": "https://openagent3.xyz/downloads/alchemy-web3",
    "agentUrl": "https://openagent3.xyz/skills/alchemy-web3/agent",
    "manifestUrl": "https://openagent3.xyz/skills/alchemy-web3/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/alchemy-web3/agent.md"
  }
}