16
/100
prowl
Benchmarked Apr 06, 2026

Alchemy Ethereum

Ethereum Node-as-a-Service Provider

crypto crypto_app
Benchmark Your API

Score Breakdown

Latency 8/10
Error Clarity 7/10
Documentation 2/10
Consistency 0/10
Auth Simplicity 0/10
Token Efficiency 0/10
First-Try Success 0/10
Parseability 0/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "crypto_app",
  "base_url": "https://eth-mainnet.alchemyapi.io/v2",
  "auth_method": "api_key_header",
  "auth_config": {
    "header_name": "X-API-Key",
    "also_supports_url_path": true
  },
  "endpoints": [
    {"path": "/eth_getBalance", "method": "POST", "purpose": "get account balance"},
    {"path": "/eth_getTransactionByHash", "method": "POST", "purpose": "get transaction details"},
    {"path": "/eth_call", "method": "POST", "purpose": "execute contract call"},
    {"path": "/alchemy_getTokenBalances", "method": "POST", "purpose": "get all token balances"},
    {"path": "/alchemy_getTokenMetadata", "method": "POST", "purpose": "get token metadata"},
    {"path": "/getNFTs", "method": "GET", "purpose": "get NFTs for address"},
    {"path": "/getTransfers", "method": "GET", "purpose": "get asset transfers"}
  ],
  "pricing_model": {
    "type": "tiered",
    "details": {
      "free_tier": "300M compute units/month",
      "paid_tiers": "starts at $49/month",
      "billing_unit": "compute_units"
    }
  },
  "rate_limits": {
    "rpm": 330,
    "rps": 25,
    "note": "varies by plan and endpoint"
  },
  "capabilities": [
    "ethereum_node", 
    "enhanced_apis", 
    "nft_apis", 
    "webhooks", 
    "trace_apis", 
    "mempool", 
    "analytics"
  ],
  "crypto_specifics": {
    "supported_chains": [
      "ethereum", 
      "polygon", 
      "arbitrum", 
      "optimism", 
      "base", 
      "solana"
    ],
    "token_count": "all_erc20_tokens",
    "has_websocket": true,
    "has_orderbook": false,
    "fee_structure": "compute_unit_based",
    "security_features": [
      "api_key_auth",
      "webhook_signatures", 
      "rate_limiting",
      "ddos_protection"
    ],
    "enhanced_features": [
      "trace_api",
      "debug_namespace", 
      "nft_api",
      "token_api",
      "notify_api"
    ]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_eth_get_balance",
      "endpoint": "/eth_getBalance",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "X-API-Key": "{api_key}"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "eth_getBalance",
        "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns ETH balance in wei for vitalik.eth address",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]+$"
      }
    },
    {
      "name": "test_get_transaction_by_hash",
      "endpoint": "/eth_getTransactionByHash", 
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "X-API-Key": "{api_key}"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "eth_getTransactionByHash",
        "params": ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns transaction details for known ETH transaction",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result.hash",
        "type": "string",
        "equals": "0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"
      }
    },
    {
      "name": "test_alchemy_get_token_balances",
      "endpoint": "/alchemy_getTokenBalances",
      "method": "POST", 
      "headers": {
        "Content-Type": "application/json",
        "X-API-Key": "{api_key}"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "alchemy_getTokenBalances",
        "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns token balances for address",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result.tokenBalances",
        "type": "array",
        "min_length": 0
      }
    },
    {
      "name": "test_alchemy_get_token_metadata",
      "endpoint": "/alchemy_getTokenMetadata",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json", 
        "X-API-Key": "{api_key}"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "alchemy_getTokenMetadata",
        "params": ["0xA0b86a33E6411CFf7Bc207F9D52A9C2D5AE6cF41"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns metadata for USDT token",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result.name",
        "type": "string",
        "min_length": 1
      }
    },
    {
      "name": "test_get_nfts",
      "endpoint": "/getNFTs",
      "method": "GET",
      "headers": {
        "X-API-Key": "{api_key}"
      },
      "payload": {},
      "query_params": {
        "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        "withMetadata": "true"
      },
      "expected_status": 200,
      "expected_behavior": "Returns NFTs owned by address",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "ownedNfts",
        "type": "array",
        "min_length": 0
      }
    },
    {
      "name": "test_get_transfers",
      "endpoint": "/getTransfers",
      "method": "GET", 
      "headers": {
        "X-API-Key": "{api_key}"
      },
      "payload": {},
      "query_params": {
        "fromAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        "category": ["erc20", "erc721", "erc1155"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns asset transfers from address",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "transfers",
        "type": "array",
        "min_length": 0
      }
    },
    {
      "name": "test_invalid_address_error_handling",
      "endpoint": "/eth_getBalance",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "X-API-Key": "{api_key}"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "eth_getBalance", 
        "params": ["invalid_address", "latest"]
      },
      "expected_status": 200,
      "expected_behavior": "Returns JSON-RPC error for invalid address",
      "metrics": ["latency", "error_handling", "status_code"],
      "validation": {
        "field": "error.code",
        "type": "number",
        "not_null": true
      }
    },
    {
      "name": "test_missing_auth_error",
      "endpoint": "/eth_getBalance",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "eth_getBalance",
        "params
Execute

0/8 tests passed

TestEndpointStatusLatency
test_eth_get_balancePOST /eth_getBalance41097ms
test_get_transaction_by_hashPOST /eth_getTransactionByHash41051ms
test_alchemy_get_token_balancesPOST /alchemy_getTokenBalances41059ms
test_alchemy_get_token_metadataPOST /alchemy_getTokenMetadata41051ms
test_get_nftsGET /getNFTs40561ms
test_get_transfersGET /getTransfers40550ms
test_invalid_address_error_handlingPOST /eth_getBalance41064ms
test_missing_auth_errorPOST /eth_getBalance41052ms
Interpret
Looking at these benchmark results, this appears to be Alchemy's deprecated API endpoint. All tests are failing with HTTP 410 errors indicating the service has been permanently moved.

```json
{
  "overall": 18,
  "dimensions": {
    "token_efficiency": 0.0,
    "first_try_success": 0.0,
    "response_parseability": 0.0,
    "error_clarity": 7.0,
    "doc_quality": 2.0,
    "auth_simplicity": 0.0,
    "latency": 8.0,
    "consistency": 0.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": null
  },
  "issues": [
    "Service completely deprecated - all endpoints return HTTP 410",
    "Zero functional endpoints for blockchain data retrieval",
    "Documentation points to non-functional domain (alchemyapi.io)",
    "HTTP method mismatches (GET vs POST requirements)",
    "No security headers present in responses"
  ],
  "recommendations": [
    "Migrate to g.alchemy.com as indicated in error messages",
    "Update API documentation to reflect current endpoints",
    "Fix HTTP method specifications for REST endpoints",
    "Implement proper error handling for deprecated services",
    "Add security headers for production readiness"
  ]
}
```

**Analysis Summary:**
- **Complete service failure**: All 8 tests failed due to deprecated endpoints
- **Clear migration path**: Error messages properly direct users to new domain
- **Good latency**: 50-97ms response times when functional
- **Poor agent experience**: Zero success rate makes this unusable for automated systems

The service gets credit only for clear error messaging and low latency, but fails on all functional dimensions since no blockchain data can be retrieved.

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
None
Agent Auth
Unknown
SDKs
None listed
MCP Support
No

Want the full interactive view?

See operational metrics, LLM evaluations, agent readiness, and more.

Open in Dashboard