60
/100
prowl
Benchmarked Apr 05, 2026

INFURA Ethereum

Interaction with the Ethereum mainnet and several testnets

cryptoai crypto_app
Benchmark Your API

Score Breakdown

Latency 9/10
Consistency 8/10
Documentation 8/10
Token Efficiency 8/10
Error Clarity 6/10
Auth Simplicity 6/10
Parseability 4/10
First-Try Success 3/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "crypto_app",
  "base_url": "https://mainnet.infura.io/v3",
  "auth_method": "api_key_header",
  "auth_config": {
    "key_location": "url_path",
    "header_name": "Authorization"
  },
  "endpoints": [
    {"path": "/v3/{project_id}", "method": "POST", "purpose": "JSON-RPC Ethereum calls"},
    {"path": "/v3/{project_id}/eth_blockNumber", "method": "POST", "purpose": "get latest block number"},
    {"path": "/v3/{project_id}/eth_getBalance", "method": "POST", "purpose": "get account balance"},
    {"path": "/v3/{project_id}/eth_sendRawTransaction", "method": "POST", "purpose": "broadcast transaction"},
    {"path": "/v3/{project_id}/eth_call", "method": "POST", "purpose": "call smart contract"},
    {"path": "/v3/{project_id}/eth_getLogs", "method": "POST", "purpose": "get event logs"}
  ],
  "pricing_model": {
    "type": "tiered", 
    "details": {
      "free_tier": "100k requests/day",
      "paid_tiers": "usage-based beyond free tier",
      "enterprise": "custom pricing"
    }
  },
  "rate_limits": {"rpm": 600, "daily": 100000},
  "capabilities": ["blockchain_access", "smart_contracts", "transaction_broadcast", "event_monitoring", "wallet_integration"],
  "crypto_specifics": {
    "supported_chains": ["ethereum", "ethereum_sepolia", "ethereum_goerli", "polygon", "arbitrum", "optimism"],
    "token_count": "all_erc20",
    "has_websocket": true,
    "has_orderbook": false,
    "fee_structure": "infrastructure_usage",
    "security_features": ["api_key_auth", "rate_limiting", "request_logging", "ddos_protection"],
    "node_type": "full_archive",
    "json_rpc": true,
    "ipfs_gateway": true
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_latest_block_number",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_blockNumber",
        "params": [],
        "id": 1
      },
      "expected_status": 200,
      "expected_behavior": "Returns current Ethereum block number in hex format",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]+$"
      }
    },
    {
      "name": "test_get_balance",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_getBalance",
        "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"],
        "id": 2
      },
      "expected_status": 200,
      "expected_behavior": "Returns ETH balance for given address in hex wei",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]*$"
      }
    },
    {
      "name": "test_get_transaction_count",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_getTransactionCount",
        "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"],
        "id": 3
      },
      "expected_status": 200,
      "expected_behavior": "Returns nonce count for given address",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]+$"
      }
    },
    {
      "name": "test_get_gas_price",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_gasPrice",
        "params": [],
        "id": 4
      },
      "expected_status": 200,
      "expected_behavior": "Returns current gas price in hex wei",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]+$"
      }
    },
    {
      "name": "test_smart_contract_call",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_call",
        "params": [
          {
            "to": "0xA0b86a33E6441c8e8F7c3e4D4a1c5A8f13E4dC8e",
            "data": "0x18160ddd"
          },
          "latest"
        ],
        "id": 5
      },
      "expected_status": 200,
      "expected_behavior": "Executes smart contract call and returns result",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "result",
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]*$"
      }
    },
    {
      "name": "test_invalid_method_error",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": {
        "jsonrpc": "2.0",
        "method": "invalid_method",
        "params": [],
        "id": 6
      },
      "expected_status": 200,
      "expected_behavior": "Returns JSON-RPC error for invalid method",
      "metrics": ["error_handling", "status_code"],
      "validation": {
        "field": "error.code",
        "type": "number",
        "value": -32601
      }
    },
    {
      "name": "test_malformed_json_error",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json"
      },
      "payload": "invalid json",
      "expected_status": 400,
      "expected_behavior": "Returns HTTP 400 for malformed JSON",
      "metrics": ["error_handling", "status_code"],
      "validation": {
        "field": "status_code",
        "type": "number",
        "value": 400
      }
    }
  ],
  "pricing_probes": [
    {
      "name": "verify_request_counting",
      "description": "Make multiple requests and check if rate limit headers reflect usage",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "payload": {
        "jsonrpc": "2.0",
        "method": "eth_blockNumber",
        "params": [],
        "id": 1
      },
      "check": "response headers should include rate limit information or usage tracking"
    },
    {
      "name": "verify_free_tier_limits",
      "description": "Confirm rate limits match advertised 600 RPM / 100k daily",
      "endpoint": "/v3/{project_id}",
      "method": "POST",
      "payload": {
        "j
Execute

0/7 tests passed

TestEndpointStatusLatency
test_latest_block_numberPOST /v3/{project_id}401117ms
test_get_balancePOST /v3/{project_id}40131ms
test_get_transaction_countPOST /v3/{project_id}40133ms
test_get_gas_pricePOST /v3/{project_id}40131ms
test_smart_contract_callPOST /v3/{project_id}40130ms
test_invalid_method_errorPOST /v3/{project_id}40131ms
test_malformed_json_errorPOST /v3/{project_id}40130ms
Interpret
```json
{
  "overall": 65,
  "dimensions": {
    "token_efficiency": 8.0,
    "first_try_success": 3.0,
    "response_parseability": 4.0,
    "error_clarity": 6.0,
    "doc_quality": 8.0,
    "auth_simplicity": 6.0,
    "latency": 9.0,
    "consistency": 8.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": 100000
  },
  "issues": [
    "All endpoints return 401 'invalid project id' - requires authentication setup",
    "Error responses are plain text instead of JSON-RPC format",
    "Cannot verify actual blockchain data functionality without valid credentials",
    "Non-standard error format makes agent parsing difficult"
  ],
  "recommendations": [
    "Provide sample project ID or sandbox environment for testing",
    "Return JSON-RPC formatted error responses with proper error codes",
    "Include authentication examples in API documentation",
    "Consider offering limited public endpoints for basic blockchain queries"
  ]
}
```

Agent Readiness

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

Embed your Prowl badge

Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.

Prowl agent-readiness badge
<a href="https://prowl.world/service/infura-ethereum">
  <img src="https://prowl.world/badge/infura-ethereum.svg" height="56" alt="Agent-readiness on Prowl">
</a>

Options: ?style=light|dark · ?size=sm|md · ?variant=certified (claimed + DNS-verified only) · badge generator with preview

Want the full interactive view?

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

Open in Dashboard