# EVM Proxy by Quoraxis — Full API Reference > Base URL: https://evm.quoraxis.com > Version: 0.3.0 > Operator: Quoraxis LLC (Wyoming, USA) > OpenAPI spec: https://evm.quoraxis.com/openapi.json ## Authentication Get an API key instantly (no browser, no password): POST /auth/agent/register Body: {"name": "my-agent"} Returns: {"success": true, "api_key": "evmq_...", "rate_limit": 60} Use key as query param (?apikey=evmq_...) or header (X-API-Key: evmq_...). Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining. Check usage: GET /auth/agent/usage?apikey=evmq_... ## Supported Chains (16) eth: Ethereum Mainnet (chainId 1, 12s blocks, full Etherscan compat) base: Base (chainId 8453, 2s blocks, full Etherscan compat) arbitrum: Arbitrum One (chainId 42161, 0.25s blocks, full Etherscan compat) optimism: Optimism (chainId 10, 2s blocks, full Etherscan compat) polygon: Polygon PoS (chainId 137, 2s blocks, full Etherscan compat) polygon-zkevm: Polygon zkEVM (chainId 1101, 5s blocks, full Etherscan compat) zksync: zkSync Era (chainId 324, 1s blocks, full Etherscan compat) scroll: Scroll (chainId 534352, 3s blocks, full Etherscan compat) linea: Linea (chainId 59144, 2s blocks, full Etherscan compat) blast: Blast (chainId 81457, 2s blocks, full Etherscan compat) mantle: Mantle (chainId 5000, 2s blocks, full Etherscan compat) gnosis: Gnosis Chain (chainId 100, 5s blocks, full Etherscan compat) celo: Celo (chainId 42220, 5s blocks, full Etherscan compat) bsc: BNB Smart Chain (chainId 56, 3s blocks, RPC only) avalanche: Avalanche C-Chain (chainId 43114, 2s blocks, RPC only) fantom: Fantom Opera (chainId 250, 1s blocks, RPC only) Chains with "full Etherscan compat" support: balance, txlist, tokentx, contractABI, contractSource, mevDetection. Chains with "RPC only" support: balance, gasPrice, blockNumber, call, estimateGas, getCode, getTransaction, getReceipt. ## Etherscan-Compatible API GET /api?module=MODULE&action=ACTION&chain=CHAIN&apikey=KEY ### module=account action=balance — address=0x...&tag=latest → balance in wei action=balancemulti — address=0x1,0x2,...&tag=latest → array of balances (max 20) action=txlist — address=0x...&startblock=0&endblock=latest&page=1&offset=10 → tx list action=tokentx — address=0x...&startblock=0&endblock=latest → token transfers ### module=transaction action=getstatus — txhash=0x... → {isError, errDescription} action=gettxreceiptstatus — txhash=0x... → {status} (1=success, 0=fail) ### module=block action=getblockreward — blockno=12345 → block details ### module=contract action=getabi — address=0x... → ABI JSON string action=getsourcecode — address=0x... → source code, compiler, etc. ### module=proxy (JSON-RPC passthrough) action=eth_blockNumber action=eth_getBlockByNumber — tag=latest&boolean=true action=eth_getTransactionByHash — txhash=0x... action=eth_getTransactionReceipt — txhash=0x... action=eth_call — to=0x...&data=0x...&tag=latest action=eth_getCode — address=0x...&tag=latest action=eth_gasPrice action=eth_estimateGas — to=0x...&data=0x...&value=0x0 ### module=gastracker action=gasoracle → {SafeGasPrice, ProposeGasPrice, FastGasPrice, suggestBaseFee} ### module=mev action=check — txhash=0x... → sandwich attack analysis action=scan — address=0x...&limit=20 → scan recent txs for MEV ## Agent-Optimized Composite Endpoints (v1) These endpoints are designed for AI agents — fewer round trips, richer data, cross-chain. ### Wallet Overview GET /v1/wallet/:address?chain=eth GET /v1/wallet/:address?chain=all ← cross-chain scan (all 16 chains) Returns: native balance, ERC-20 tokens, recent txs, contract status, nonce. ### Multi-chain Balances (lightweight) GET /v1/wallet/:address/balances Returns: native balance on all 16 chains in one call. ### Transaction Decoder GET /v1/tx/:hash?chain=eth Returns: human-readable description, method name, token transfers, events, gas costs. Understands: ERC-20 transfers/approvals, Uniswap V2/V3 swaps, WETH wrap/unwrap, NFT transfers, multicalls. ### Batch Transaction Decode POST /v1/tx/batch Body: {"hashes": ["0x...", "0x..."], "chain": "eth"} Decode up to 20 transactions at once. ### Cross-chain Gas Prices GET /v1/gas Returns: gas price in gwei for all 16 chains. Find the cheapest chain. ### Cross-chain Block Numbers GET /v1/blocks Returns: current block number for all 16 chains. ### Chain Status (live) GET /v1/chains Returns: all chains with latency, block height, online/offline status, Blockscout availability. ### Contract Info GET /v1/contract/:address?chain=eth Returns: verification status, ABI availability, proxy detection, compiler version. ### Cross-chain Contract Finder GET /v1/contract/:address/chains Returns: whether the contract is deployed on each of the 16 chains. ### AI Agent Tool Schemas (no auth) GET /tools — full reference with curl examples GET /tools/openai — OpenAI function calling format GET /tools/anthropic — Anthropic tool use format GET /tools/mcp — Model Context Protocol format ### MCP Server Run: node dist/mcp.js Configure in Claude Code settings to use all endpoints as native MCP tools. ## JSON-RPC Proxy POST /rpc/{chain} Body: {"jsonrpc": "2.0", "id": 1, "method": "eth_blockNumber", "params": []} Drop-in replacement for Alchemy/Infura. Supports batch requests (max 50). Blocked methods: eth_sendRawTransaction, eth_sign, debug_*, personal_*. Supported methods include: eth_blockNumber, eth_getBlockByNumber, eth_getBlockByHash, eth_getTransactionByHash, eth_getTransactionReceipt, eth_getBalance, eth_getCode, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory, eth_getTransactionCount, eth_getStorageAt, eth_getLogs, eth_chainId, net_version, web3_clientVersion. ## MEV Sandwich Detection Check single transaction: GET /api?module=mev&action=check&txhash=0x...&chain=eth&apikey=KEY GET /mev?chain=eth&txhash=0x...&apikey=KEY Scan address for sandwiched transactions: GET /api?module=mev&action=scan&address=0x...&chain=eth&limit=20&apikey=KEY GET /mev?chain=eth&address=0x...&limit=20&apikey=KEY Returns: {txHash, sandwiched, details: [{pool, dex, attacker, frontrunTx, backrunTx, estimatedGasCost}]} ## Beacon Chain Validators (no auth required) GET /validator/{index_or_pubkey} Returns: index, pubkey, status, balance (gwei + ETH), effective balance, activation/exit epochs, slashed status, withdrawal credentials, proposer duties, sync committee membership. ## Validator Monitoring Alerts (requires user account) POST /alerts — create Discord webhook alert for validator state changes GET /alerts — list your alerts DELETE /alerts/:id — remove alert PATCH /alerts/:id — toggle enabled Monitors: status changes, block proposals, sync committee, balance drops. Alerts fire once per state change (no spam). ## Discovery Endpoints (no auth) GET /chains — all supported chains with features GET /pricing — tiers, payment methods, limits GET /info — version, chains, cache stats GET /health — uptime check ## Caching Immutable data (tx receipts, historical blocks, logs) cached permanently. Mutable data (balances, gas prices) cached 5-60 seconds. Latest block number cached ~5 seconds. Total cache capacity: 8000MB with LRU eviction. ## Rate Limits Free tier: 60 requests/minute. Rate limit info in response headers: X-RateLimit-Limit, X-RateLimit-Remaining. 429 status on exceeded. Resets every minute. ## Error Format Etherscan endpoints: {"status": "0", "message": "NOTOK", "result": "error description"} Other endpoints: {"success": false, "error": "error description"} ## Links OpenAPI 3.1: https://evm.quoraxis.com/openapi.json LLMs.txt: https://evm.quoraxis.com/llms.txt Sitemap: https://evm.quoraxis.com/sitemap.xml Agent plugin: https://evm.quoraxis.com/.well-known/ai-plugin.json Agent protocol: https://evm.quoraxis.com/.well-known/agent.json