From alchemy-skills
Integrates Alchemy blockchain APIs (EVM RPC, Solana RPC, NFT, Prices, Webhooks) via API key authentication. Requires $ALCHEMY_API_KEY or falls back to the alchemy-agentic-gateway skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/alchemy-skills:alchemy-apiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. Create a free API key at https://dashboard.alchemy.com/
export ALCHEMY_API_KEY=<your-key>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 alchemy-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 alchemy-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.
| 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. |
| Arbitrum RPC (HTTPS) | https://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | EVM L2. |
| BNB RPC (HTTPS) | https://bnb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY | API key in URL | EVM L1. |
| 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. |
| You need | Use this |
|---|---|
| EVM read/write | JSON-RPC eth_* |
| Realtime events | eth_subscribe (WebSocket) |
| Token balances | alchemy_getTokenBalances |
| Token metadata | alchemy_getTokenMetadata |
| Transfers history | alchemy_getAssetTransfers |
| NFT ownership | GET /getNFTsForOwner |
| NFT metadata | GET /getNFTMetadata |
| Prices (spot) | GET /tokens/by-symbol |
| Prices (historical) | POST /tokens/historical |
| Portfolio (multi-chain) | POST /assets/*/by-address |
| Simulate tx | alchemy_simulateAssetChanges |
| Create webhook | POST /create-webhook |
| Solana NFT data | getAssetsByOwner (DAS) |
Full reference: https://www.alchemy.com/docs
No API key? Use the
alchemy-agentic-gatewayskill instead.
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"]}'
To verify webhook signatures, use HMAC-SHA256 with the webhook signing key from your dashboard. See https://www.alchemy.com/docs/webhooks for details.
eth-mainnet, base-mainnetETH_MAINNET, BASE_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 | pageKey supported. |
| Portfolio NFTs | 2 address/network pairs, 15 networks each | pageKey supported. |
| Prices by address | 25 addresses, 3 networks | POST body addresses[]. |
| 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.echo $ALCHEMY_API_KEYeth-mainnet, base-mainnetETH_MAINNET, BASE_MAINNETerror field even with a 200 status coderesponse.error in addition to HTTP statusnpx claudepluginhub moonpay/skills --plugin moonpay-skillsWires Alchemy APIs (EVM, Solana, Sui, NFT, Token, Webhooks) into application code using an API key. For server/backend/dApp integration, not live agent queries.
Accesses Alchemy APIs for RPC, tokens, NFTs, transfers, and transaction simulation. Supports API key, x402 (USDC), and MPP (USDC/Stripe) auth on EVM and SVM.
Implements Alchemy SDK patterns for multi-chain client factories, response caching, and singleton clients in Web3 TypeScript applications.