38
/100
prowl
Benchmarked Apr 06, 2026

Block

Bitcoin Payment, Wallet & Transaction Data

cryptodata crypto_app
Benchmark Your API

Score Breakdown

Latency 9/10
Auth Simplicity 7/10
Documentation 5/10
Token Efficiency 5/10
First-Try Success 3/10
Error Clarity 2/10
Parseability 2/10
Consistency 1/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "crypto_app",
  "base_url": "https://block.io",
  "auth_method": "api_key_header",
  "auth_config": {},
  "endpoints": [
    {"path": "/api/v1/get_balance", "method": "GET", "purpose": "retrieve wallet balance"},
    {"path": "/api/v1/create_wallet", "method": "POST", "purpose": "create a new wallet"},
    {"path": "/api/v1/withdraw", "method": "POST", "purpose": "withdraw funds"}
  ],
  "pricing_model": {"type": "per_request", "details": {}},
  "rate_limits": {"rpm": 60},
  "capabilities": ["wallet", "bitcoin_transactions", "data_provision"],
  "crypto_specifics": {
    "supported_chains": ["bitcoin"],
    "token_count": 1,
    "has_websocket": false,
    "has_orderbook": false,
    "fee_structure": "transaction_fee",
    "security_features": ["2fa", "cold_storage"]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_get_balance_basic",
      "endpoint": "/api/v1/get_balance",
      "method": "GET",
      "headers": {"Authorization": "Bearer YOUR_API_KEY"},
      "payload": {},
      "expected_status": 200,
      "expected_behavior": "Returns balance data for a wallet",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "data.total_balance", "type": "number", "min_length": 0}
    },
    {
      "name": "test_create_wallet",
      "endpoint": "/api/v1/create_wallet",
      "method": "POST",
      "headers": {"Authorization": "Bearer YOUR_API_KEY"},
      "payload": {"label": "My new wallet"},
      "expected_status": 201,
      "expected_behavior": "Creates a new wallet and returns wallet details",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "data.wallet_id", "type": "string", "min_length": 1}
    },
    {
      "name": "test_withdraw_funds",
      "endpoint": "/api/v1/withdraw",
      "method": "POST",
      "headers": {"Authorization": "Bearer YOUR_API_KEY"},
      "payload": {
        "amount": "0.01",
        "to_address": "1BitcoinAddress..."
      },
      "expected_status": 200,
      "expected_behavior": "Withdraws the specified amount from the wallet",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "data.transaction_id", "type": "string", "min_length": 1}
    },
    {
      "name": "test_get_balance_invalid_auth",
      "endpoint": "/api/v1/get_balance",
      "method": "GET",
      "headers": {"Authorization": "Bearer INVALID_API_KEY"},
      "payload": {},
      "expected_status": 401,
      "expected_behavior": "Invalid authentication returns 401 status",
      "metrics": ["latency", "status_code"],
      "validation": {}
    },
    {
      "name": "test_withdraw_funds_missing_field",
      "endpoint": "/api/v1/withdraw",
      "method": "POST",
      "headers": {"Authorization": "Bearer YOUR_API_KEY"},
      "payload": {
        "amount": "0.01"
      },
      "expected_status": 400,
      "expected_behavior": "Missing 'to_address' field returns 400 status",
      "metrics": ["latency", "status_code"],
      "validation": {}
    }
  ],
  "pricing_probes": [
    {
      "name": "verify_pricing_per_request",
      "description": "Count requests and verify they're billed appropriately",
      "endpoint": "/api/v1/get_balance",
      "method": "GET",
      "payload": {},
      "check": "response.headers should include 'X-Used-Requests': 1"
    }
  ],
  "stress_profile": {
    "concurrent_requests": 5,
    "duration_seconds": 10,
    "ramp_up": true
  }
}
```
Execute

0/5 tests passed

TestEndpointStatusLatency
test_get_balance_basicGET /api/v1/get_balance30249ms
test_create_walletPOST /api/v1/create_wallet30215ms
test_withdraw_fundsPOST /api/v1/withdraw30214ms
test_get_balance_invalid_authGET /api/v1/get_balance30214ms
test_withdraw_funds_missing_fieldPOST /api/v1/withdraw30215ms
Interpret
```json
{
  "overall": 48,
  "dimensions": {
    "token_efficiency": 5.0,
    "first_try_success": 3.0,
    "response_parseability": 2.0,
    "error_clarity": 2.0,
    "doc_quality": 5.0,
    "auth_simplicity": 7.0,
    "latency": 9.0,
    "consistency": 1.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": null
  },
  "issues": [
    "status_code_302_for_all_requests",
    "lack_of_response_preview",
    "missing_security_headers",
    "inconsistent_response_handling"
  ],
  "recommendations": [
    "Ensure responses return appropriate status codes like 200 for successful requests.",
    "Improve error messages to make debugging easier.",
    "Enhance documentation to cover unexpected status codes and missing fields.",
    "Implement and document consistent security headers across responses."
  ]
}
```

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