Interact with Alchemy's Web3 APIs for blockchain data, NFTs, tokens, transfers, and webhooks across 80+ chains.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add NeverSight/skills_feed --skill alchemy-web3 --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Alchemy Web3?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/neversight-alchemy-web3)More formats (shields.io, HTML) on the badges page.
---
name: alchemy-web3
version: 1.0.2
description: Interact with Alchemy's Web3 APIs for blockchain data, NFTs, tokens, transfers, and webhooks across 80+ chains.
author: GizmoLab
website: https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill
homepage: https://github.com/0xGizmolab/alchemy-web3-skill
repository: https://github.com/0xGizmolab/alchemy-web3-skill
metadata:
{
"openclaw":
{
"requires": {
"env": ["ALCHEMY_API_KEY"]
}
}
}
---
# Alchemy Web3 Skill
Query blockchain data, NFTs, tokens, and transfers using Alchemy's production-grade APIs. Supports Ethereum, Polygon, Arbitrum, Base, Solana, and 80+ other chains.
**Built by [GizmoLab](https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill)** — Web3 development agency specializing in dApps, smart contracts, and blockchain infrastructure.
## Setup
### 1. Get API Key
1. Sign up at [alchemy.com](https://www.alchemy.com/?utm_source=gizmolab&utm_medium=skill&utm_campaign=alchemy-web3) (free tier available)
2. Create an app for your target chain
3. Copy your API key
> 💡 New to Web3 development? [GizmoLab](https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill) offers full-stack blockchain development services.
### 2. Configure
```bash
# Add to ~/.openclaw/.env
ALCHEMY_API_KEY=your_api_key_here
# Optional: Set default chain (defaults to eth-mainnet)
ALCHEMY_CHAIN=eth-mainnet
```
## Quick Reference
### Supported Chains
| Chain | Endpoint Prefix |
|-------|-----------------|
| 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` |
Full list: [alchemy.com/docs/chains](https://www.alchemy.com/docs/chains)
## CLI Usage
```bash
# Set your API key first
export ALCHEMY_API_KEY="your_key"
# Use the CLI
~/.openclaw/workspace/skills/alchemy-web3/scripts/alchemy.sh <command> [options]
```
### Commands
#### Get ETH Balance
```bash
./alchemy.sh balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
# Returns: 1234.56 ETH
```
#### Get Token Balances
```bash
./alchemy.sh tokens 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
# Returns: All ERC-20 tokens held by address
```
#### Get NFTs for Owner
```bash
./alchemy.sh nfts 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
# Returns: All NFTs owned by address
```
#### Get NFT Metadata
```bash
./alchemy.sh nft-metadata 0x5180db8F5c931aaE63c74266b211F580155ecac8 1590
# Returns: Metadata for specific NFT
```
#### Get Asset Transfers
```bash
./alchemy.sh transfers 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
# Returns: Transaction history (in/out)
```
#### Get Block Info
```bash
./alchemy.sh block latest
./alchemy.sh block 12345678
```
#### Get Transaction
```bash
./alchemy.sh tx 0x123...abc
```
#### Resolve ENS
```bash
./alchemy.sh ens vitalik.eth
# Returns: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
```
#### Switch Chain
```bash
./alchemy.sh --chain polygon-mainnet balance 0x...
./alchemy.sh --chain arb-mainnet nfts 0x...
```
## Direct API Examples
### Node API (JSON-RPC)
```bash
# Get ETH balance
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
```bash
# Get NFTs for owner
curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForOwner?owner=vitalik.eth&pageSize=10"
# Get NFT metadata
curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTMetadata?contractAddress=0x5180db8F5c931aaE63c74266b211F580155ecac8&tokenId=1590"
# Get NFTs for collection
curl "https://eth-mainnet.g.alchemy.com/nft/v3/$ALCHEMY_API_KEY/getNFTsForContract?contractAddress=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D&limit=10"
```
### Token API
```bash
# Get token balances
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
}'
# Get token metadata
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
}'
```
### Transfers API
```bash
# Get asset transfers (transaction history)
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 Examples
### Using Fetch (Node 18+)
```javascript
const apiKey = process.env.ALCHEMY_API_KEY;
const baseURL = `https://eth-mainnet.g.alchemy.com/v2/${apiKey}`;
// Get ETH Balance
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; // Convert to ETH
}
// Get NFTs
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();
}
```
### Using Alchemy SDK
```bash
npm install alchemy-sdk
```
```javascript
import { Alchemy, Network } from 'alchemy-sdk';
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET
});
// Get NFTs
const nfts = await alchemy.nft.getNftsForOwner('vitalik.eth');
console.log(nfts.ownedNfts);
// Get token balances
const balances = await alchemy.core.getTokenBalances('vitalik.eth');
console.log(balances);
// Get transaction history
const transfers = await alchemy.core.getAssetTransfers({
toAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
category: ['external', 'erc20']
});
```
## Webhooks (Real-time Notifications)
Receive HTTP POST requests when onchain events happen.
### Webhook Types
| Type | Use Case |
|------|----------|
| Address Activity | Track transfers to/from specific addresses |
| NFT Activity | Track NFT sales, transfers, mints |
| Mined Transactions | Track when your txs are mined |
| Dropped Transactions | Get notified if tx is dropped |
| Gas Price | Alert on gas price thresholds |
### Create Webhook (Dashboard)
1. Go to [dashboard.alchemy.com/webhooks](https://dashboard.alchemy.com/webhooks)
2. Click "Create Webhook"
3. Select type and configure
4. Add your endpoint URL
### Webhook Payload Example
```json
{
"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"
}]
}
}
```
## Common Patterns
### Portfolio Tracker
```bash
# Get all assets for a wallet
./alchemy.sh balance 0x... # ETH balance
./alchemy.sh tokens 0x... # ERC-20 tokens
./alchemy.sh nfts 0x... # NFTs
```
### Transaction History
```bash
# Get full tx history for address
./alchemy.sh transfers 0x... --category external,erc20,erc721
```
### NFT Collection Analysis
```bash
# Get all NFTs in a collection
./alchemy.sh collection 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D
```
### Multi-chain Query
```bash
# Check same address across chains
for chain in eth-mainnet polygon-mainnet arb-mainnet base-mainnet; do
echo "=== $chain ==="
./alchemy.sh --chain $chain balance 0x...
done
```
## Rate Limits
| Plan | Compute Units/sec | Monthly CUs |
|------|-------------------|-------------|
| Free | 330 | 300M |
| Growth | 660 | Unlimited |
| Scale | Custom | Custom |
Most endpoints cost 1-50 CUs. Check [alchemy.com/docs/rate-limits](https://www.alchemy.com/docs/rate-limits) for details.
## Error Handling
```json
// Rate limited
{"error": {"code": 429, "message": "Too Many Requests"}}
// Invalid API key
{"error": {"code": 401, "message": "Invalid API Key"}}
// Invalid params
{"error": {"code": -32602, "message": "Invalid params"}}
```
## Resources
- **Get API Key:** [alchemy.com](https://www.alchemy.com/?utm_source=gizmolab&utm_medium=skill&utm_campaign=alchemy-web3) (free tier)
- **Dashboard:** [dashboard.alchemy.com](https://dashboard.alchemy.com)
- **Docs:** [alchemy.com/docs](https://www.alchemy.com/docs)
- **SDK:** [github.com/alchemyplatform/alchemy-sdk-js](https://github.com/alchemyplatform/alchemy-sdk-js)
- **Status:** [status.alchemy.com](https://status.alchemy.com)
---
## About
**Built by [GizmoLab](https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill)** 🔧
GizmoLab is a Web3 development agency building dApps, smart contracts, and blockchain tools.
- 🌐 [gizmolab.io](https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill) — Agency services
- 🛠️ [tools.gizmolab.io](https://tools.gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill) — Free blockchain dev tools
- 🎨 [ui.gizmolab.io](https://ui.gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill) — Web3 UI components
Need custom blockchain development? [Get in touch](https://gizmolab.io?utm_source=alchemy-web3-skill&utm_medium=github&utm_campaign=skill)
## AI Agent Workflows
The skill is designed for both human developers AND AI agents. See `references/agent-workflows.md` for complete examples:
- **Whale Tracker** — Monitor large wallets for moves
- **Portfolio Monitor** — Track balances across chains
- **NFT Floor Alert** — Alert on price drops
- **Token Change Detector** — Detect incoming/outgoing tokens
- **Gas Optimizer** — Wait for low gas to transact
- **Mint Detector** — Watch for new NFT mints
- **Dashboard Generator** — Auto-generate wallet dashboards
### Agent Pattern
```
QUERY → STORE → ANALYZE → DECIDE → ACT → REPEAT
```
Example cron job for an agent:
```bash
# Every hour, check whale activity and alert if >100 ETH moved
0 * * * * ~/.openclaw/workspace/skills/alchemy-web3/scripts/whale-tracker.sh
```
## See Also
- `references/nft-api.md` - Full NFT API reference
- `references/token-api.md` - Full Token API reference
- `references/node-api.md` - Full Node API reference
- `references/chains.md` - All supported chains
- `references/agent-workflows.md` - AI agent automation examples
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!