alchemy-api by alchemyplatform/skills
npx skills add https://github.com/alchemyplatform/skills --skill alchemy-api在首次网络调用或实施步骤之前,必须向用户提出以下问题并等待明确答复:
您想使用现有的 Alchemy API 密钥,还是我应该改用代理网关流程?
如果用户选择 API 密钥路径,则继续使用此技能。如果用户选择代理网关路径,请立即切换到 agentic-gateway 技能并遵循其现有的钱包流程。如果用户选择 API 密钥路径但 ALCHEMY_API_KEY 未设置或为空,请告知他们可以在 https://dashboard.alchemy.com/ 创建免费的 API 密钥,或者切换到 agentic-gateway 技能。
除非用户明确要求使用该端点,否则不得调用任何无密钥或公共回退端点(包括 .../v2/demo)。在此关口评估完成之前,不要执行任何网络调用。
应急出口: 仅当用户明确要求切换到带有 API 密钥的 alchemy-api 技能时,才重新评估路由关口。环境中或对话中出现密钥不会自动触发切换——必须由用户提出请求。
重复项解决: 如果此技能同时安装在本地和全局,本地副本将覆盖全局副本。不要混合使用不同副本的行为。
在首次网络调用之前,内部评估:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
ALCHEMY_API_KEY 是否存在且非空?agentic-gateway 技能。不允许使用演示和公共端点。不要将此内部检查清单输出给用户。
一份独立的指南,供 AI 代理使用 API 密钥集成 Alchemy API。仅此文件就应足以完成基本集成。使用参考文件获取深度信息、边缘情况和高级工作流。
开发者始终可以在 https://dashboard.alchemy.com/ 创建免费的 API 密钥。
$ALCHEMY_API_KEY 是否已设置(例如 echo $ALCHEMY_API_KEY)。agentic-gateway 技能。agentic-gateway 技能,并让其处理现有钱包与新钱包的提示。| 产品 | 基础 URL | 认证 | 备注 |
|---|---|---|---|
| Ethereum RPC (HTTPS) | https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 标准 EVM 读取和写入。 |
| Ethereum RPC (WSS) | wss://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 订阅和实时通信。 |
| Base RPC (HTTPS) | https://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | EVM L2。 |
| Base RPC (WSS) | wss://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 订阅和实时通信。 |
| Arbitrum RPC (HTTPS) | https://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | EVM L2。 |
| Arbitrum RPC (WSS) | wss://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 订阅和实时通信。 |
| BNB RPC (HTTPS) | https://bnb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | EVM L1。 |
| BNB RPC (WSS) | wss://bnb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 订阅和实时通信。 |
| Solana RPC (HTTPS) | https://solana-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | URL 中的 API 密钥 | Solana JSON-RPC。 |
| Solana Yellowstone gRPC | https://solana-mainnet.g.alchemy.com | X-Token: $ALCHEMY_API_KEY | gRPC 流式传输 (Yellowstone)。 |
| NFT API | https://<network>.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY | URL 中的 API 密钥 | NFT 所有权和元数据。 |
| Prices API | https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 按符号或地址获取价格。 |
| Portfolio API | https://api.g.alchemy.com/data/v1/$ALCHEMY_API_KEY | URL 中的 API 密钥 | 多链钱包视图。 |
| Notify API | https://dashboard.alchemy.com/api | X-Alchemy-Token: <ALCHEMY_NOTIFY_AUTH_TOKEN> | 在仪表板中生成令牌。 |
| 您需要 | 使用此方法 | 技能 / 文件 |
|---|---|---|
| EVM 读/写 | JSON-RPC eth_* | references/node-json-rpc.md |
| 实时事件 | eth_subscribe | references/node-websocket-subscriptions.md |
| 代币余额 | alchemy_getTokenBalances | references/data-token-api.md |
| 代币元数据 | alchemy_getTokenMetadata | references/data-token-api.md |
| 转账历史 | alchemy_getAssetTransfers | references/data-transfers-api.md |
| NFT 所有权 | GET /getNFTsForOwner | references/data-nft-api.md |
| NFT 元数据 | GET /getNFTMetadata | references/data-nft-api.md |
| 价格(现货) | GET /tokens/by-symbol | references/data-prices-api.md |
| 价格(历史) | POST /tokens/historical | references/data-prices-api.md |
| 投资组合(多链) | POST /assets/*/by-address | references/data-portfolio-apis.md |
| 模拟交易 | alchemy_simulateAssetChanges | references/data-simulation-api.md |
| 创建 Webhook | POST /create-webhook | references/webhooks-details.md |
| Solana NFT 数据 | getAssetsByOwner (DAS) | references/solana-das-api.md |
没有 API 密钥? 请改用
agentic-gateway技能。将 API 密钥 URL 替换为https://x402.alchemy.com/rpc/eth-mainnet并添加Authorization: SIWE <token>。有关设置,请参阅agentic-gateway技能。
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"alchemy_getTokenBalances","params":["0x00000000219ab540356cbb839cbe05303d7705fa"]}'
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"alchemy_getAssetTransfers","params":[{"fromBlock":"0x0","toBlock":"latest","toAddress":"0x00000000219ab540356cbb839cbe05303d7705fa","category":["erc20"],"withMetadata":true,"maxCount":"0x3e8"}]}'
curl -s "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=0x00000000219ab540356cbb839cbe05303d7705fa"
curl -s "https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY/tokens/by-symbol?symbols=ETH&symbols=USDC"
curl -s -X POST "https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY/tokens/historical" \
-H "Content-Type: application/json" \
-d '{"symbol":"ETH","startTime":"2024-01-01T00:00:00Z","endTime":"2024-01-02T00:00:00Z"}'
curl -s -X POST "https://dashboard.alchemy.com/api/create-webhook" \
-H "Content-Type: application/json" \
-H "X-Alchemy-Token: $ALCHEMY_NOTIFY_AUTH_TOKEN" \
-d '{"network":"ETH_MAINNET","webhook_type":"ADDRESS_ACTIVITY","webhook_url":"https://example.com/webhook","addresses":["0x00000000219ab540356cbb839cbe05303d7705fa"]}'
import crypto from "crypto";
export function verify(rawBody: string, signature: string, secret: string) {
const hmac = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(signature));
}
eth-mainnet。ETH_MAINNET。| 端点 | 限制 | 备注 |
|---|---|---|
alchemy_getTokenBalances | maxCount <= 100 | 使用 pageKey 进行分页。 |
alchemy_getAssetTransfers | maxCount 默认 0x3e8 | 使用 pageKey 进行分页。 |
| 投资组合代币余额 | 3 个地址/网络对,总共 20 个网络 | 支持 pageKey。 |
| 投资组合 NFT | 2 个地址/网络对,每个网络 15 个 | 支持 pageKey。 |
| 按地址获取价格 | 25 个地址,3 个网络 | POST 请求体 addresses[]。 |
| 交易历史(测试版) | 1 个地址/网络对,2 个网络 | 仅限 ETH 和 BASE 主网。 |
| 代币 | 链 | 地址 |
|---|---|---|
| ETH | ethereum | 0x0000000000000000000000000000000000000000 |
| WETH | ethereum | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| USDC | ethereum | 0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eB48 |
| USDC | base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
429 表示达到速率限制。使用带抖动的指数退避策略。error 字段中。pageKey 恢复分页。有关按产品领域(节点、数据、Webhooks、Solana、钱包、Rollups、配方、运维、生态系统)组织的所有 82+ 个参考文件的完整索引,请参阅 references/skill-map.md。
快速类别概览:
$ALCHEMY_API_KEY 是否已设置:echo $ALCHEMY_API_KEYreferences/operational-allowlists.md)references/operational-rate-limits-and-compute-units.mdeth-mainnet、base-mainnetETH_MAINNET、BASE_MAINNETreferences/operational-supported-networks.mderror 字段中返回 JSON-RPC 错误response.error每周安装次数
173
代码仓库
GitHub Stars
26
首次出现
14 天前
安全审计
安装于
opencode173
gemini-cli173
codex173
cursor173
github-copilot173
kimi-cli171
Before the first network call or implementation step, you MUST ask the user the following question and wait for an explicit answer:
Do you want to use an existing Alchemy API key, or should I use the agentic gateway flow instead?
If the user chooses the API key path, continue with this skill. If the user chooses the agentic gateway path, switch to the agentic-gateway skill immediately and follow its existing wallet flow. If the user chooses the API key path but ALCHEMY_API_KEY is unset or empty, tell them they can create a free API key at https://dashboard.alchemy.com/ or switch to the agentic-gateway skill.
You MUST NOT call any keyless or public fallback (including .../v2/demo) unless the user explicitly asks for that endpoint. Execute no network calls before this gate is evaluated.
Escape hatch: Only re-evaluate the routing gate if the user explicitly requests to switch to the alchemy-api skill with an API key. A key appearing in the environment or conversation does not automatically trigger a switch — the user must ask for it.
Duplicate resolution: If this skill is installed both locally and globally, the local copy overrides the global copy. Do not mix behavior from different copies.
Before the first network call, internally evaluate:
ALCHEMY_API_KEY present and non-empty?agentic-gateway skill immediately. Demo and public endpoints are disallowed.Do not output this internal checklist to the user.
A self-contained guide for AI agents integrating Alchemy APIs using an API key. This file alone should be enough to ship a basic integration. Use the reference files for depth, edge cases, and advanced workflows.
Developers can always create a free API key at https://dashboard.alchemy.com/.
$ALCHEMY_API_KEY is set (e.g., echo $ALCHEMY_API_KEY).agentic-gateway skill.agentic-gateway skill and let it handle the existing wallet vs new wallet prompt.| Product | Base URL | Auth | Notes |
|---|---|---|---|
| Ethereum RPC (HTTPS) | https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | Standard EVM reads and writes. |
| Ethereum RPC (WSS) | wss://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | Subscriptions and realtime. |
| Base RPC (HTTPS) | https://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | EVM L2. |
| Base RPC (WSS) | wss://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY |
| You need | Use this | Skill / File |
|---|---|---|
| EVM read/write | JSON-RPC eth_* | references/node-json-rpc.md |
| Realtime events | eth_subscribe | references/node-websocket-subscriptions.md |
| Token balances | alchemy_getTokenBalances | references/data-token-api.md |
| Token metadata |
No API key? Use the
agentic-gatewayskill instead. Replace API-key URLs withhttps://x402.alchemy.com/rpc/eth-mainnetand addAuthorization: SIWE <token>. See theagentic-gatewayskill for setup.
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"alchemy_getTokenBalances","params":["0x00000000219ab540356cbb839cbe05303d7705fa"]}'
curl -s https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"alchemy_getAssetTransfers","params":[{"fromBlock":"0x0","toBlock":"latest","toAddress":"0x00000000219ab540356cbb839cbe05303d7705fa","category":["erc20"],"withMetadata":true,"maxCount":"0x3e8"}]}'
curl -s "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=0x00000000219ab540356cbb839cbe05303d7705fa"
curl -s "https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY/tokens/by-symbol?symbols=ETH&symbols=USDC"
curl -s -X POST "https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY/tokens/historical" \
-H "Content-Type: application/json" \
-d '{"symbol":"ETH","startTime":"2024-01-01T00:00:00Z","endTime":"2024-01-02T00:00:00Z"}'
curl -s -X POST "https://dashboard.alchemy.com/api/create-webhook" \
-H "Content-Type: application/json" \
-H "X-Alchemy-Token: $ALCHEMY_NOTIFY_AUTH_TOKEN" \
-d '{"network":"ETH_MAINNET","webhook_type":"ADDRESS_ACTIVITY","webhook_url":"https://example.com/webhook","addresses":["0x00000000219ab540356cbb839cbe05303d7705fa"]}'
import crypto from "crypto";
export function verify(rawBody: string, signature: string, secret: string) {
const hmac = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(signature));
}
eth-mainnet.ETH_MAINNET.| Endpoint | Limit | Notes |
|---|---|---|
alchemy_getTokenBalances | maxCount <= 100 | Use pageKey for pagination. |
alchemy_getAssetTransfers | maxCount default 0x3e8 | Use pageKey for pagination. |
| Portfolio token balances | 3 address/network pairs, 20 networks total |
| Token | Chain | Address |
|---|---|---|
| ETH | ethereum | 0x0000000000000000000000000000000000000000 |
| WETH | ethereum | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| USDC | ethereum | 0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eB48 |
| USDC | base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
429 means rate limit. Use exponential backoff with jitter.error fields even with HTTP 200.pageKey to resume pagination after failures.For the complete index of all 82+ reference files organized by product area (Node, Data, Webhooks, Solana, Wallets, Rollups, Recipes, Operational, Ecosystem), see references/skill-map.md.
Quick category overview:
$ALCHEMY_API_KEY is set: echo $ALCHEMY_API_KEYreferences/operational-allowlists.md)references/operational-rate-limits-and-compute-units.md for limits per planeth-mainnet, base-mainnetETH_MAINNET, BASE_MAINNETreferences/operational-supported-networks.md for the full listerror field even with a 200 status coderesponse.error in addition to HTTP statusWeekly Installs
173
Repository
GitHub Stars
26
First Seen
14 days ago
Security Audits
Gen Agent Trust HubPassSocketFailSnykWarn
Installed on
opencode173
gemini-cli173
codex173
cursor173
github-copilot173
kimi-cli171
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
140,500 周安装
| API key in URL |
| Subscriptions and realtime. |
| Arbitrum RPC (HTTPS) | https://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | EVM L2. |
| Arbitrum RPC (WSS) | wss://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | Subscriptions and realtime. |
| BNB RPC (HTTPS) | https://bnb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | EVM L1. |
| BNB RPC (WSS) | wss://bnb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | Subscriptions and realtime. |
| Solana RPC (HTTPS) | https://solana-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | Solana JSON-RPC. |
| Solana Yellowstone gRPC | https://solana-mainnet.g.alchemy.com | X-Token: $ALCHEMY_API_KEY | gRPC streaming (Yellowstone). |
| NFT API | https://<network>.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY | API key in URL | NFT ownership and metadata. |
| Prices API | https://api.g.alchemy.com/prices/v1/$ALCHEMY_API_KEY | API key in URL | Prices by symbol or address. |
| Portfolio API | https://api.g.alchemy.com/data/v1/$ALCHEMY_API_KEY | API key in URL | Multi-chain wallet views. |
| Notify API | https://dashboard.alchemy.com/api | X-Alchemy-Token: <ALCHEMY_NOTIFY_AUTH_TOKEN> | Generate token in dashboard. |
alchemy_getTokenMetadata |
references/data-token-api.md |
| Transfers history | alchemy_getAssetTransfers | references/data-transfers-api.md |
| NFT ownership | GET /getNFTsForOwner | references/data-nft-api.md |
| NFT metadata | GET /getNFTMetadata | references/data-nft-api.md |
| Prices (spot) | GET /tokens/by-symbol | references/data-prices-api.md |
| Prices (historical) | POST /tokens/historical | references/data-prices-api.md |
| Portfolio (multi-chain) | POST /assets/*/by-address | references/data-portfolio-apis.md |
| Simulate tx | alchemy_simulateAssetChanges | references/data-simulation-api.md |
| Create webhook | POST /create-webhook | references/webhooks-details.md |
| Solana NFT data | getAssetsByOwner (DAS) | references/solana-das-api.md |
pageKey supported. |
| Portfolio NFTs | 2 address/network pairs, 15 networks each | pageKey supported. |
| Prices by address | 25 addresses, 3 networks | POST body addresses[]. |
| Transactions history (beta) | 1 address/network pair, 2 networks | ETH and BASE mainnets only. |