使用 Alchemy 的 Web3 API 与 80+ 条链交互,获取区块链数据、NFT、Token、转账及 Webhook。
ALchemy Web3 Skill
功能概述
ALchemy Web3 Skill是一项面向实际任务的技能,主要用于Query块链数据,NFTs,符号,以及使用Alchemy生产级API的转移. 支持Ethereum,Polygon,Arbitrium, Base, Solana, 和80+其他链.;Built by G.。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Alchemy Web3 技能
使用 Alchemy 的生产级 API 查询区块链数据、NFT、代币及资产转移。支持 Ethereum、Polygon、Arbitrum、Base、Solana 及 80+ 其他链。
由 GizmoLab 构建 —— 专注于 dApp、智能合约与区块链基础设施开发的 Web3 开发机构。
配置说明
1. 获取 API Key
- 在 alchemy.com 注册(提供免费套餐)
- 为您的目标链创建应用
- 复制您的 API Key
💡 刚接触 Web3 开发?GizmoLab 提供全栈区块链开发服务。
2. 配置环境
# 添加至 ~/.openclaw/.env ALCHEMY_API_KEY=your_api_key_here # 可选:设置默认链(默认为 eth-mainnet) ALCHEMY_CHAIN=eth-mainnet
快速参考
支持的链
| 链 | 端点前缀 |
|---|---|
| Ethereum | eth-mainnet, eth-sepolia |
| Polygon | polygon-mainnet, polygon-amoy |
| Arbitrum | arb-mainnet, arb-sepolia |
| Optimism | opt-mainnet, opt-sepolia |
| Base | base-mainnet, base-sepolia |
| Solana | solana-mainnet, solana-devnet |
| zkSync | zksync-mainnet |
| Linea | linea-mainnet |
| Scroll | scroll-mainnet |
| Blast | blast-mainnet |
完整列表:alchemy.com/docs/chains
CLI 使用方法
# 首先设置 API Key export ALCHEMY_API_KEY="your_key" # 调用 CLI ~/.openclaw/workspace/skills/alchemy-web3/scripts/alchemy.sh[options]
命令列表
获取 ETH 余额
./alchemy.sh balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 # 返回:1234.56 ETH
获取代币余额
./alchemy.sh tokens 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 # 返回:该地址持有的全部 ERC-20 代币
获取所有 NFT(按所有者)
./alchemy.sh nfts 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 # 返回:该地址拥有的全部 NFT
获取 NFT 元数据
./alchemy.sh nft-metadata 0x5180db8F5c931aaE63c74266b211F580155ecac8 1590 # 返回:指定 NFT 的元数据
获取资产转移记录
./alchemy.sh transfers 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 # 返回:交易历史(转入/转出)
获取区块信息
./alchemy.sh block latest ./alchemy.sh block 12345678
获取交易详情
./alchemy.sh tx 0x123...abc
解析 ENS 名称
./alchemy.sh ens vitalik.eth # 返回:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
切换链
./alchemy.sh --chain polygon-mainnet balance 0x... ./alchemy.sh --chain arb-mainnet nfts 0x...
直接调用 API 示例
节点 API(JSON-RPC)
# 获取 ETH 余额
curl -X POST "https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"],
"id": 1
}'
NFT API
# 获取某所有者的 NFT 列表 curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=vitalik.eth&pageSize=10" # 获取 NFT 元数据 curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTMetadata?contractAddress=0x5180db8F5c931aaE63c74266b211F580155ecac8&tokenId=1590" # 获取某合约下的 NFT 列表 curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForContract?contractAddress=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D&limit=10"
代币 API
# 获取代币余额
curl -X POST "https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "alchemy_getTokenBalances",
"params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],
"id": 1
}'
# 获取代币元数据
curl -X POST "https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "alchemy_getTokenMetadata",
"params": ["0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"],
"id": 1
}'
转账 API
# 获取资产转账记录(交易历史)
curl -X POST "https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "alchemy_getAssetTransfers",
"params": [{
"fromBlock": "0x0",
"toBlock": "latest",
"toAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"category": ["external", "erc20", "erc721", "erc1155"],
"maxCount": "0x14"
}],
"id": 1
}'
JavaScript / Node.js 示例
使用 Fetch(Node 18+)
const apiKey = process.env.ALCHEMY_API_KEY;
const baseURL = `https://eth-mainnet.g.alchemy.com/v2/${apiKey}`;
// 获取 ETH 余额
async function getBalance(address) {
const response = await fetch(baseURL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_getBalance',
params: [address, 'latest'],
id: 1
})
});
const data = await response.json();
return parseInt(data.result, 16) / 1e18; // 转换为 ETH 单位
}
// 获取 NFT 列表
async function getNFTs(owner) {
const url = `https://eth-mainnet.g.alchemy.com/nft/v3/${apiKey}/getNFTsForOwner?owner=${owner}`;
const response = await fetch(url);
return await response.json();
}
使用 Alchemy SDK
npm install alchemy-sdk
import { Alchemy, Network } from 'alchemy-sdk';
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET
});
// 获取 NFT 列表
const nfts = await alchemy.nft.getNftsForOwner('vitalik.eth');
console.log(nfts.ownedNfts);
// 获取代币余额
const balances = await alchemy.core.getTokenBalances('vitalik.eth');
console.log(balances);
// 获取交易历史
const transfers = await alchemy.core.getAssetTransfers({
toAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
category: ['external', 'erc20']
});
Webhook(实时通知)
当链上事件发生时,接收 HTTP POST 请求。
Webhook 类型
| 类型 | 适用场景 |
|---|---|
| 地址活动(Address Activity) | 监控特定地址的转入/转出交易 |
| NFT 活动(NFT Activity) | 监控 NFT 的销售、转移、铸造事件 |
| 已打包交易(Mined Transactions) | 监控您发起的交易何时被打包上链 |
| 被丢弃交易(Dropped Transactions) | 当交易被网络丢弃时收到通知 |
| Gas 价格(Gas Price) | 当 Gas 价格达到设定阈值时发出告警 |
创建 Webhook(控制台操作)
- 访问 dashboard.alchemy.com/webhooks
- 点击 “Create Webhook”
- 选择类型并完成配置
- 填写您的接收端点 URL
Webhook 载荷示例
{
"webhookId": "wh_abc123",
"id": "evt_xyz789",
"createdAt": "2024-01-15T12:00:00.000Z",
"type": "ADDRESS_ACTIVITY",
"event": {
"network": "ETH_MAINNET",
"activity": [{
"fromAddress": "0x123...",
"toAddress": "0x456...",
"value": 1.5,
"asset": "ETH"
}]
}
}
常见使用模式
资产组合追踪器(Portfolio Tracker)
# 获取钱包全部资产 ./alchemy.sh balance 0x... # ETH 余额 ./alchemy.sh tokens 0x... # ERC-20 代币 ./alchemy.sh nfts 0x... # NFT
交易历史查询
# 获取地址完整交易历史 ./alchemy.sh transfers 0x... --category external,erc20,erc721
NFT 合约分析
# 获取某 NFT 合约下的全部 NFT ./alchemy.sh collection 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D
多链查询
# 跨链检查同一地址余额 for chain in eth-mainnet polygon-mainnet arb-mainnet base-mainnet; do echo "=== $chain ===" ./alchemy.sh --chain $chain balance 0x... done
速率限制
| 套餐 | 计算单元/秒(CUs/sec) | 月度计算单元配额(Monthly CUs) |
|---|---|---|
| Free(免费) | 330 | 3 亿 |
| Growth(成长) | 660 | 无限制 |
| Scale(企业) | 定制 | 定制 |
大多数端点消耗 1–50 CUs。详细信息请参阅 alchemy.com/docs/rate-limits。
错误处理
// 被限流
{"error": {"code": 429, "message": "Too Many Requests"}}
// API Key 无效
{"error": {"code": 401, "message": "Invalid API Key"}}
// 参数错误
{"error": {"code": -32602, "message": "Invalid params"}}
资源链接
- 获取 API Key: alchemy.com(提供免费套餐)
- 控制台: dashboard.alchemy.com
- 文档: alchemy.com/docs
- SDK: github.com/alchemyplatform/alchemy-sdk-js
- 服务状态: status.alchemy.com
关于
由 GizmoLab 构建 🔧
GizmoLab 是一家 Web3 开发机构,专注于构建 dApp、智能合约及区块链工具。
- 🌐 gizmolab.io —— 机构服务
- 🛠️ tools.gizmolab.io —— 免费区块链开发工具
- 🎨 ui.gizmolab.io —— Web3 UI 组件库
需要定制化区块链开发服务?欢迎联系我们。
AI Agent 工作流
本技能同时面向人类开发者与 AI Agent 设计。完整示例请参阅 references/agent-workflows.md:
- 鲸鱼追踪器(Whale Tracker) —— 监控大额钱包资金异动
- 资产组合监控器(Portfolio Monitor) —— 跨链追踪资产余额
- NFT 地板价告警(NFT Floor Alert) —— 在地板价下跌时触发通知
- 代币变动检测器(Token Change Detector) —— 检测代币的转入/转出行为
- Gas 优化器(Gas Optimizer) —— 等待低 Gas 时段执行交易
- 铸造监听器(Mint Detector) —— 监控新 NFT 铸造事件
- 仪表盘生成器(Dashboard Generator) —— 自动为钱包生成可视化仪表盘
Agent 模式
QUERY → STORE → ANALYZE → DECIDE → ACT → REPEAT
Agent 定时任务示例:
# 每小时检查鲸鱼活动,若单笔转移超 100 ETH 则告警 0 * * * * ~/.openclaw/workspace/skills/alchemy-web3/scripts/whale-tracker.sh
参见
references/nft-api.md—— 完整 NFT API 文档references/token-api.md—— 完整 Token API 文档references/node-api.md—— 完整 Node API 文档references/chains.md—— 所有支持链列表references/agent-workflows.md—— AI Agent 自动化示例
热门AI工具
相关专题
Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。
0
2026.10.21
Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。
0
2026.10.21
Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。
0
2026.10.21
Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。
0
2026.10.16
怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。
0
2026.10.16
Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。
0
2026.10.16
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.4万人学习
共6课时 | 54.7万人学习


