From alchemy-pack
Generates Alchemy SDK debug bundles: tests connectivity to core/enhanced/NFT APIs across networks, captures SDK version, environment, latency, errors for support tickets.
How this skill is triggered — by the user, by Claude, or both
Slash command
/alchemy-pack:alchemy-debug-bundleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Collect diagnostic data for Alchemy support tickets: connectivity tests, SDK version, network status, CU usage, and recent error logs.
Collect diagnostic data for Alchemy support tickets: connectivity tests, SDK version, network status, CU usage, and recent error logs.
// src/debug/alchemy-debug.ts
import { Alchemy, Network } from 'alchemy-sdk';
interface DebugBundle {
timestamp: string;
sdkVersion: string;
environment: Record<string, string>;
connectivity: Record<string, any>;
networkStatus: Record<string, any>;
}
async function generateDebugBundle(): Promise<DebugBundle> {
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
const bundle: DebugBundle = {
timestamp: new Date().toISOString(),
sdkVersion: require('alchemy-sdk/package.json').version,
environment: {
nodeVersion: process.version,
platform: process.platform,
apiKeySet: process.env.ALCHEMY_API_KEY ? 'yes (redacted)' : 'NO — missing',
network: process.env.ALCHEMY_NETWORK || 'ETH_MAINNET',
},
connectivity: {},
networkStatus: {},
};
// Test core connectivity
try {
const start = Date.now();
const blockNumber = await alchemy.core.getBlockNumber();
bundle.connectivity.core = {
status: 'ok',
latencyMs: Date.now() - start,
latestBlock: blockNumber,
};
} catch (err: any) {
bundle.connectivity.core = { status: 'failed', error: err.message };
}
// Test Enhanced API
try {
const start = Date.now();
await alchemy.core.getTokenBalances('0x0000000000000000000000000000000000000000');
bundle.connectivity.enhancedApi = { status: 'ok', latencyMs: Date.now() - start };
} catch (err: any) {
bundle.connectivity.enhancedApi = { status: 'failed', error: err.message };
}
// Test NFT API
try {
const start = Date.now();
await alchemy.nft.getContractMetadata('0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D');
bundle.connectivity.nftApi = { status: 'ok', latencyMs: Date.now() - start };
} catch (err: any) {
bundle.connectivity.nftApi = { status: 'failed', error: err.message };
}
// Multi-network status
for (const [name, network] of Object.entries({
ethereum: Network.ETH_MAINNET,
polygon: Network.MATIC_MAINNET,
arbitrum: Network.ARB_MAINNET,
})) {
try {
const client = new Alchemy({ apiKey: process.env.ALCHEMY_API_KEY, network });
const block = await client.core.getBlockNumber();
bundle.networkStatus[name] = { status: 'ok', block };
} catch (err: any) {
bundle.networkStatus[name] = { status: 'failed', error: err.message };
}
}
const filename = `alchemy-debug-${Date.now()}.json`;
require('fs').writeFileSync(filename, JSON.stringify(bundle, null, 2));
console.log(`Debug bundle saved: ${filename}`);
return bundle;
}
generateDebugBundle().catch(console.error);
#!/bin/bash
echo "=== Alchemy Quick Diagnostics ==="
echo "API Key: ${ALCHEMY_API_KEY:+SET (redacted)}"
echo -n "ETH Mainnet: "
curl -s "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}" \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":0}' \
| jq -r '.result // .error.message'
echo -n "Polygon: "
curl -s "https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}" \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":0}' \
| jq -r '.result // .error.message'
echo "=== Done ==="
For rate limit handling, see alchemy-rate-limits.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin alchemy-packDiagnoses and fixes Alchemy SDK errors including rate limits, RPC failures, invalid parameters, authentication issues, and blockchain queries.
Wires Alchemy APIs (EVM, Solana, Sui, NFT, Token, Webhooks) into application code using an API key. For server/backend/dApp integration, not live agent queries.
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.