diff --git a/src/redis/resources/IpRpcEndpointsIndex/IpRpcEndpointsData.ts b/src/redis/resources/IpRpcEndpointsIndex/IpRpcEndpointsData.ts index a691b5c..6c3de85 100644 --- a/src/redis/resources/IpRpcEndpointsIndex/IpRpcEndpointsData.ts +++ b/src/redis/resources/IpRpcEndpointsIndex/IpRpcEndpointsData.ts @@ -1,7 +1,8 @@ export interface ApiEndpoints { - rest: string[]; + rest?: string[]; tendermintrpc?: string[]; grpc?: string[]; + jsonrpc?: string[]; } export interface RequestStats { @@ -12,7 +13,7 @@ export interface RequestStats { export interface ChainEndpoint { chainId: string; - alias: "Mainnet" | "Testnet" | "Sepolia-Testnet"; + alias: "Mainnet" | "Testnet" | "Sepolia-Testnet" | "Alfajores-Testnet"; ChainDisplayName: string; DisplayName: string; geolocations: string[]; @@ -808,5 +809,337 @@ export const IpRpcEndpointsData: ChainEndpoint[] = [ "7d": 29643902, "30d": 190583249 } - } + }, + { + "chainId": "optimism", + "alias": "Mainnet", + "ChainDisplayName": "Optimism", + "DisplayName": "Optimism (OP)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://optimism.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/optimism.webp", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + // { + // "chainId": "optimismt", + // "alias": "Testnet", + // "ChainDisplayName": "Optimism", + // "DisplayName": "Optimism Testnet (OPT)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://optimismt.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/optimism.webp", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "polygont", + // "alias": "Testnet", + // "ChainDisplayName": "Polygon", + // "DisplayName": "Polygon Testnet (POLYGONT)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://polygont.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/polygon-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + { + "chainId": "eth1", + "alias": "Mainnet", + "ChainDisplayName": "Ethereum", + "DisplayName": "Ethereum (ETH)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://eth1.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/ethereum-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "osmosis", + "alias": "Mainnet", + "ChainDisplayName": "Osmosis", + "DisplayName": "Osmosis (OSMO)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://osmosis.rest.lava.build:443"], + "tendermintrpc": [ + "https://osmosis.tendermintrpc.lava.build:443", + "wss://osmosis.tendermintrpc.lava.build/websocket" + ], + "grpc": ["osmosis.grpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/osmosis-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "osmosist", + "alias": "Testnet", + "ChainDisplayName": "Osmosis", + "DisplayName": "Osmosis Testnet (OSMOT)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://osmosist.rest.lava.build:443"], + "tendermintrpc": [ + "https://osmosist.tendermintrpc.lava.build:443", + "wss://osmosist.tendermintrpc.lava.build/websocket" + ], + "grpc": ["osmosist.grpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/osmosis-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "celestia", + "alias": "Mainnet", + "ChainDisplayName": "Celestia", + "DisplayName": "Celestia (TIA)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://celestia.rest.lava.build:443"], + "tendermintrpc": [ + "https://celestia.tendermintrpc.lava.build:443", + "wss://celestia.tendermintrpc.lava.build/websocket" + ], + "grpc": ["celestia.grpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-assets.s3.amazonaws.com/icons/celestia.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "celestiatm", + "alias": "Testnet", + "ChainDisplayName": "Celestia", + "DisplayName": "Celestia Testnet (TIAT)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://celestiatm.rest.lava.build:443"], + "tendermintrpc": [ + "https://celestiatm.tendermintrpc.lava.build:443", + "wss://celestiatm.tendermintrpc.lava.build/websocket" + ], + "grpc": ["celestiatm.grpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-assets.s3.amazonaws.com/icons/celestia.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "base", + "alias": "Mainnet", + "ChainDisplayName": "Base", + "DisplayName": "Base (BASE)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://base.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/base-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + // { + // "chainId": "baset", + // "alias": "Testnet", + // "ChainDisplayName": "Base", + // "DisplayName": "Base Testnet (BASET)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://baset.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/base-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + { + "chainId": "avax", + "alias": "Mainnet", + "ChainDisplayName": "Avalanche", + "DisplayName": "Avalanche (AVAX)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://avax.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/avalanche-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + { + "chainId": "bsc", + "alias": "Mainnet", + "ChainDisplayName": "BNB Smart Chain", + "DisplayName": "BNB Smart Chain (BSC)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://bsc.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-assets.s3.us-east-1.amazonaws.com/icons/binance-smart-chain.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + // { + // "chainId": "bsct", + // "alias": "Testnet", + // "ChainDisplayName": "BNB Smart Chain", + // "DisplayName": "BNB Smart Chain Testnet (BSCT)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://bsct.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/bsc-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + { + "chainId": "solana", + "alias": "Mainnet", + "ChainDisplayName": "Solana", + "DisplayName": "Solana (SOL)", + "geolocations": ["US", "EU", "ASIA"], + "features": ["Archive"], + "apiEndpoints": { + "rest": ["https://solana.jsonrpc.lava.build:443"] + }, + "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/solana-icon.png", + "requests": { "24h": 0, "7d": 0, "30d": 0 } + }, + // { + // "chainId": "solanat", + // "alias": "Testnet", + // "ChainDisplayName": "Solana", + // "DisplayName": "Solana Testnet (SOLT)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://solanat.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/solana-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "berat2", + // "alias": "Testnet", + // "ChainDisplayName": "Berachain", + // "DisplayName": "Berachain Testnet (BERAT2)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://berat2.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/berachain-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "celo", + // "alias": "Mainnet", + // "ChainDisplayName": "Celo", + // "DisplayName": "Celo (CELO)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://celo.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/celo-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "celoa", + // "alias": "Alfajores-Testnet", + // "ChainDisplayName": "Celo", + // "DisplayName": "Celo Alfajores (CELOA)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://celoa.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/celo-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "fantom", + // "alias": "Mainnet", + // "ChainDisplayName": "Fantom", + // "DisplayName": "Fantom (FTM)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://fantom.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/fantom-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "fantomt", + // "alias": "Testnet", + // "ChainDisplayName": "Fantom", + // "DisplayName": "Fantom Testnet (FTMT)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://fantomt.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-staging-assets.s3.amazonaws.com/icons/fantom-icon.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "fuse", + // "alias": "Mainnet", + // "ChainDisplayName": "Fuse", + // "DisplayName": "Fuse (FUSE)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://fuse.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-assets.s3.us-east-1.amazonaws.com/icons/fuse_round.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "fuses", + // "alias": "Sepolia-Testnet", + // "ChainDisplayName": "Fuse", + // "DisplayName": "Fuse Sepolia (FUSES)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "jsonrpc": ["https://fuses.jsonrpc.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-assets.s3.us-east-1.amazonaws.com/icons/fuse_round.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "movement", + // "alias": "Mainnet", + // "ChainDisplayName": "Movement", + // "DisplayName": "Movement (MOVE)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://movement.rest.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-assets.s3.amazonaws.com/icons/movement.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, + // { + // "chainId": "movementt", + // "alias": "Testnet", + // "ChainDisplayName": "Movement", + // "DisplayName": "Movement Testnet (MOVET)", + // "geolocations": ["US", "EU", "ASIA"], + // "features": ["Archive"], + // "apiEndpoints": { + // "rest": ["https://movementt.rest.lava.build:443"] + // }, + // "logoURL": "https://gateway-fe-public-assets.s3.amazonaws.com/icons/movement.png", + // "requests": { "24h": 0, "7d": 0, "30d": 0 } + // }, ] \ No newline at end of file diff --git a/src/redis/resources/IpRpcEndpointsIndex/check_links.ts b/src/redis/resources/IpRpcEndpointsIndex/check_links.ts new file mode 100644 index 0000000..a716b8a --- /dev/null +++ b/src/redis/resources/IpRpcEndpointsIndex/check_links.ts @@ -0,0 +1,249 @@ +import axios from 'axios'; +import WebSocket from 'ws'; +import { IpRpcEndpointsData } from './IpRpcEndpointsData'; +import * as fs from 'fs'; +import * as path from 'path'; + +interface Pattern { + method: 'GET' | 'POST'; + path?: string; + body?: any; +} + +interface CheckResult { + status: 'healthy' | 'unhealthy' | 'skipped'; + url: string; + pattern?: string; + protocol?: string; + response_status?: number; + response_text?: string; + error?: string; +} + +interface ChainResult { + chain_id: string; + display_name: string; + endpoints: Record; +} + +const PATTERNS: Record = { + 'cosmos-blocks': { + method: 'GET', + path: '/cosmos/base/tendermint/v1beta1/blocks/latest' + }, + 'eth-block': { + method: 'POST', + body: { jsonrpc: '2.0', method: 'eth_blockNumber', params: [], id: 1 } + }, + 'near-block': { + method: 'POST', + body: { jsonrpc: '2.0', method: 'block', params: { finality: 'final' }, id: 1 } + }, + 'solana-height': { + method: 'POST', + body: { jsonrpc: '2.0', method: 'getBlockHeight', params: [], id: 1 } + }, + 'starknet-block': { + method: 'POST', + body: { jsonrpc: '2.0', method: 'starknet_blockNumber', params: [], id: 1 } + }, + 'aptos-block': { + method: 'GET', + path: '/v1/blocks/by_height/1' + } +}; + +async function checkEndpointWithPattern(url: string, patternName: string, pattern: Pattern): Promise { + try { + if (pattern.method === 'GET') { + const fullUrl = `${url}${pattern.path}`; + const response = await axios.get(fullUrl); + if (response.status === 200) { + console.log(`✅ ${patternName}: ${fullUrl}`); + } + return { + status: response.status === 200 ? 'healthy' : 'unhealthy', + url, + pattern: patternName, + response_status: response.status, + response_text: response.data?.toString().slice(0, 200), + error: response.status === 200 ? undefined : `Status ${response.status}` + }; + } else { + const response = await axios.post(url, pattern.body); + if (response.status === 200) { + console.log(`✅ ${patternName}: ${url}`); + } + return { + status: response.status === 200 ? 'healthy' : 'unhealthy', + url, + pattern: patternName, + response_status: response.status, + response_text: response.data?.toString().slice(0, 200), + error: response.status === 200 ? undefined : `Status ${response.status}` + }; + } + } catch (e) { + return { + status: 'unhealthy', + url, + pattern: patternName, + error: e.message + }; + } +} + +async function checkWebSocket(url: string): Promise { + return new Promise((resolve) => { + const ws = new WebSocket(url, { + rejectUnauthorized: false, + timeout: 5000 + }); + + const timeout = setTimeout(() => { + ws.close(); + resolve({ + status: 'unhealthy', + url, + protocol: 'websocket', + error: 'Connection timeout' + }); + }, 5000); + + ws.on('open', () => { + clearTimeout(timeout); + ws.close(); + resolve({ + status: 'healthy', + url, + protocol: 'websocket' + }); + }); + + ws.on('error', (error) => { + clearTimeout(timeout); + ws.close(); + resolve({ + status: 'unhealthy', + url, + protocol: 'websocket', + error: error.message + }); + }); + }); +} + +async function checkEndpoints() { + console.log(`Checking ${IpRpcEndpointsData.length} chains...`); + const results: Record = {}; + + for (const endpoint of IpRpcEndpointsData) { + console.log(`\n${endpoint.chainId} (${endpoint.DisplayName})`); + const chainId = endpoint.chainId; + results[chainId] = { + chain_id: chainId, + display_name: endpoint.DisplayName, + endpoints: {} + }; + + if (endpoint.apiEndpoints) { + for (const [protocol, urls] of Object.entries(endpoint.apiEndpoints)) { + console.log(`\n Protocol: ${protocol}`); + if (Array.isArray(urls)) { + results[chainId].endpoints[protocol] = []; + + for (const url of urls) { + console.log(` URL: ${url}`); + if (protocol === 'rest' || protocol === 'jsonrpc') { + console.log(' Trying all patterns...'); + // Try all patterns + const patternResults = []; + for (const [patternName, pattern] of Object.entries(PATTERNS)) { + const result = await checkEndpointWithPattern(url, patternName, pattern); + if (result.status === 'healthy') { + patternResults.push(result); + } + } + + // Store results + if (patternResults.length > 0) { + (results[chainId].endpoints[protocol] as CheckResult[]).push(...patternResults); + } else { + const defaultResult = await checkEndpointWithPattern( + url, + 'default-get', + { method: 'GET', path: '' } + ); + (results[chainId].endpoints[protocol] as CheckResult[]).push(defaultResult); + } + } else if (url.includes('websocket')) { + const result = await checkWebSocket(url); + results[chainId].endpoints[protocol].push(result); + } + // Note: Removed gRPC checks as they require different handling in TypeScript + } + } + } + } + } + + console.log('\nAll checks completed!'); + return results; +} + +async function main() { + console.log('Main function started'); + try { + console.log('Starting endpoint checks...'); + const results = await checkEndpoints(); + console.log('Endpoint checks completed'); + + const outputPath = path.join(__dirname, 'endpoint_check_results.json'); + console.log('Writing results to:', outputPath); + + fs.writeFileSync(outputPath, JSON.stringify(results, null, 2)); + console.log('Results written to file'); + + console.log('\nPrinting results summary:'); + let totalEndpoints = 0; + let healthyEndpoints = 0; + + for (const [chainId, chainData] of Object.entries(results)) { + console.log(`\nProcessing results for ${chainId}`); + + for (const [protocol, endpoints] of Object.entries(chainData.endpoints)) { + console.log(` Processing ${protocol} endpoints`); + for (const endpoint of (endpoints as Array)) { + totalEndpoints++; + if (endpoint.status === 'healthy') healthyEndpoints++; + } + } + } + + console.log('\nFinal Statistics:'); + console.log(`Total endpoints checked: ${totalEndpoints}`); + console.log(`Healthy endpoints: ${healthyEndpoints}`); + console.log(`Success rate: ${((healthyEndpoints / totalEndpoints) * 100).toFixed(2)}%`); + + } catch (error) { + console.error('Error in main:', error); + if (error instanceof Error) { + console.error('Stack trace:', error.stack); + } + process.exit(1); + } + console.log('Script completed successfully'); +} + +// Add error handler for uncaught exceptions +process.on('uncaughtException', (error) => { + console.error('Uncaught Exception:', error); + console.error('Stack:', error.stack); + process.exit(1); +}); + +console.log('Calling main function...'); +main().catch(e => { + console.error('Top level error:', e); + process.exit(1); +}); diff --git a/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250114_before_removing_not_working.json b/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250114_before_removing_not_working.json new file mode 100644 index 0000000..e13f547 --- /dev/null +++ b/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250114_before_removing_not_working.json @@ -0,0 +1,1219 @@ +{ + "lava": { + "chain_id": "lava", + "display_name": "Lava (LAVA)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://lava.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://lava.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "cosmoshub": { + "chain_id": "cosmoshub", + "display_name": "Cosmos Hub (COSMOSHUB)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://cosmoshub.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://cosmoshub.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "cosmoshubt": { + "chain_id": "cosmoshubt", + "display_name": "Cosmos Hub Testnet (COSMOSHUBT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://cosmoshubt.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://cosmoshubt.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "near": { + "chain_id": "near", + "display_name": "Near Mainnet (NEAR)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://near.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://near.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "neart": { + "chain_id": "neart", + "display_name": "Near Testnet (NEART)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://neart.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://neart.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "evmos": { + "chain_id": "evmos", + "display_name": "Evmos Mainnet (EVMOS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://evmos.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "evmost": { + "chain_id": "evmost", + "display_name": "Evmos Testnet (EVMOST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://evmost.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "strgz": { + "chain_id": "strgz", + "display_name": "Stargaze (STARS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://strgz.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://strgz.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "strgzt": { + "chain_id": "strgzt", + "display_name": "Stargaze Testnet (STARST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://strgzt.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://strgzt.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "axelar": { + "chain_id": "axelar", + "display_name": "Axelar Mainnet (AXELAR)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://axelar.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://axelar.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "axelart": { + "chain_id": "axelart", + "display_name": "Axelar Testnet (AXELART)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://axelart.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://axelart.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "arb1": { + "chain_id": "arb1", + "display_name": "Arbitrum (ARB1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arb1.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "blast": { + "chain_id": "blast", + "display_name": "Blast mainnet (BLAST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://blast.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "optm": { + "chain_id": "optm", + "display_name": "Optimism Mainnet (OPTM)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://optimism.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "polygon": { + "chain_id": "polygon", + "display_name": "Polygon (POLYGON)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://polygon.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "solana": { + "chain_id": "solana", + "display_name": "Solana (SOL)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "lav1": { + "chain_id": "lav1", + "display_name": "Lava Testnet (LAV1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://lav1.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://lav1.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "fvm": { + "chain_id": "fvm", + "display_name": "Filecoin Mainnet (FVM)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://filecoin.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://filecoin.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "fvmt": { + "chain_id": "fvmt", + "display_name": "Filecoin Testnet (FVMT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://filecoin-testnet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://filecoin-testnet.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "strk": { + "chain_id": "strk", + "display_name": "Starknet (STRK)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "strks": { + "chain_id": "strks", + "display_name": "Starknet Sepolia Testnet (STRKS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "apt1": { + "chain_id": "apt1", + "display_name": "Aptos Testnet (APT1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://apt1.lava.build:443", + "pattern": "default-get", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://apt1.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "arbn": { + "chain_id": "arbn", + "display_name": "Arbitrum-Nova (ARBN)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arbn.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "arbs": { + "chain_id": "arbs", + "display_name": "Arbitrum Sepolia Testnet (ARBS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arbs.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "optimism": { + "chain_id": "optimism", + "display_name": "Optimism (OP)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "optimismt": { + "chain_id": "optimismt", + "display_name": "Optimism Testnet (OPT)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://optimismt.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "polygont": { + "chain_id": "polygont", + "display_name": "Polygon Testnet (POLYGONT)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://polygont.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "eth1": { + "chain_id": "eth1", + "display_name": "Ethereum (ETH)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "osmosis": { + "chain_id": "osmosis", + "display_name": "Osmosis (OSMO)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://osmosis.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://osmosis.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "osmosist": { + "chain_id": "osmosist", + "display_name": "Osmosis Testnet (OSMOT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://osmosist.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://osmosist.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "celestia": { + "chain_id": "celestia", + "display_name": "Celestia (TIA)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://celestia.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://celestia.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "celestiatm": { + "chain_id": "celestiatm", + "display_name": "Celestia Testnet (TIAT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://celestiatm.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://celestiatm.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "base": { + "chain_id": "base", + "display_name": "Base (BASE)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "baset": { + "chain_id": "baset", + "display_name": "Base Testnet (BASET)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://baset.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "avax": { + "chain_id": "avax", + "display_name": "Avalanche (AVAX)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://avax.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "bsc": { + "chain_id": "bsc", + "display_name": "BNB Smart Chain (BSC)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "bsct": { + "chain_id": "bsct", + "display_name": "BNB Smart Chain Testnet (BSCT)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://bsct.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "solanat": { + "chain_id": "solanat", + "display_name": "Solana Testnet (SOLT)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://solanat.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "berat2": { + "chain_id": "berat2", + "display_name": "Berachain Testnet (BERAT2)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://berat2.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 405" + } + ] + } + }, + "celo": { + "chain_id": "celo", + "display_name": "Celo (CELO)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://celo.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "celoa": { + "chain_id": "celoa", + "display_name": "Celo Alfajores (CELOA)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://celoa.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "fantom": { + "chain_id": "fantom", + "display_name": "Fantom (FTM)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://fantom.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "fantomt": { + "chain_id": "fantomt", + "display_name": "Fantom Testnet (FTMT)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://fantomt.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "fuse": { + "chain_id": "fuse", + "display_name": "Fuse (FUSE)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://fuse.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "fuses": { + "chain_id": "fuses", + "display_name": "Fuse Sepolia (FUSES)", + "endpoints": { + "jsonrpc": [ + { + "status": "unhealthy", + "url": "https://fuses.jsonrpc.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "movement": { + "chain_id": "movement", + "display_name": "Movement (MOVE)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://movement.rest.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + }, + "movementt": { + "chain_id": "movementt", + "display_name": "Movement Testnet (MOVET)", + "endpoints": { + "rest": [ + { + "status": "unhealthy", + "url": "https://movementt.rest.lava.build:443", + "pattern": "default-get", + "error": "Request failed with status code 403" + } + ] + } + } +} \ No newline at end of file diff --git a/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250214_filtered_after_working_chains.json b/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250214_filtered_after_working_chains.json new file mode 100644 index 0000000..fc5c6b6 --- /dev/null +++ b/src/redis/resources/IpRpcEndpointsIndex/endpoint_check_results_250214_filtered_after_working_chains.json @@ -0,0 +1,1023 @@ +{ + "lava": { + "chain_id": "lava", + "display_name": "Lava (LAVA)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://lava.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://lava.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "cosmoshub": { + "chain_id": "cosmoshub", + "display_name": "Cosmos Hub (COSMOSHUB)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://cosmoshub.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://cosmoshub.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "cosmoshubt": { + "chain_id": "cosmoshubt", + "display_name": "Cosmos Hub Testnet (COSMOSHUBT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://cosmoshubt.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://cosmoshubt.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "near": { + "chain_id": "near", + "display_name": "Near Mainnet (NEAR)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://near.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://near.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "neart": { + "chain_id": "neart", + "display_name": "Near Testnet (NEART)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://neart.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://neart.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "evmos": { + "chain_id": "evmos", + "display_name": "Evmos Mainnet (EVMOS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmos.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://evmos.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "evmost": { + "chain_id": "evmost", + "display_name": "Evmos Testnet (EVMOST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://evmost.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://evmost.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "strgz": { + "chain_id": "strgz", + "display_name": "Stargaze (STARS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://strgz.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://strgz.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "strgzt": { + "chain_id": "strgzt", + "display_name": "Stargaze Testnet (STARST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://strgzt.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://strgzt.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "axelar": { + "chain_id": "axelar", + "display_name": "Axelar Mainnet (AXELAR)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://axelar.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://axelar.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "axelart": { + "chain_id": "axelart", + "display_name": "Axelar Testnet (AXELART)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://axelart.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://axelart.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "arb1": { + "chain_id": "arb1", + "display_name": "Arbitrum (ARB1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arb1.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arb1.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "blast": { + "chain_id": "blast", + "display_name": "Blast mainnet (BLAST)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://blast.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://blast.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "optm": { + "chain_id": "optm", + "display_name": "Optimism Mainnet (OPTM)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://optimism.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "polygon": { + "chain_id": "polygon", + "display_name": "Polygon (POLYGON)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://polygon.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://polygon.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "solana": { + "chain_id": "solana", + "display_name": "Solana (SOL)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://solana.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "lav1": { + "chain_id": "lav1", + "display_name": "Lava Testnet (LAV1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://lav1.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://lav1.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "fvm": { + "chain_id": "fvm", + "display_name": "Filecoin Mainnet (FVM)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://filecoin.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://filecoin.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "fvmt": { + "chain_id": "fvmt", + "display_name": "Filecoin Testnet (FVMT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://filecoin-testnet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://filecoin-testnet.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "strk": { + "chain_id": "strk", + "display_name": "Starknet (STRK)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "strks": { + "chain_id": "strks", + "display_name": "Starknet Sepolia Testnet (STRKS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://rpc.starknet-testnet.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "apt1": { + "chain_id": "apt1", + "display_name": "Aptos Testnet (APT1)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://apt1.lava.build:443", + "pattern": "default-get", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://apt1.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "arbn": { + "chain_id": "arbn", + "display_name": "Arbitrum-Nova (ARBN)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbn.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arbn.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "arbs": { + "chain_id": "arbs", + "display_name": "Arbitrum Sepolia Testnet (ARBS)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://arbs.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "unhealthy", + "url": "wss://arbs.tendermintrpc.lava.build/websocket", + "protocol": "websocket", + "error": "Connection timeout" + } + ], + "grpc": [] + } + }, + "optimism": { + "chain_id": "optimism", + "display_name": "Optimism (OP)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://optimism.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "eth1": { + "chain_id": "eth1", + "display_name": "Ethereum (ETH)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://eth1.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "osmosis": { + "chain_id": "osmosis", + "display_name": "Osmosis (OSMO)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://osmosis.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://osmosis.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "osmosist": { + "chain_id": "osmosist", + "display_name": "Osmosis Testnet (OSMOT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://osmosist.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://osmosist.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "celestia": { + "chain_id": "celestia", + "display_name": "Celestia (TIA)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://celestia.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://celestia.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "celestiatm": { + "chain_id": "celestiatm", + "display_name": "Celestia Testnet (TIAT)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://celestiatm.rest.lava.build:443", + "pattern": "cosmos-blocks", + "response_status": 200, + "response_text": "[object Object]" + } + ], + "tendermintrpc": [ + { + "status": "healthy", + "url": "wss://celestiatm.tendermintrpc.lava.build/websocket", + "protocol": "websocket" + } + ], + "grpc": [] + } + }, + "base": { + "chain_id": "base", + "display_name": "Base (BASE)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://base.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "avax": { + "chain_id": "avax", + "display_name": "Avalanche (AVAX)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://avax.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + }, + "bsc": { + "chain_id": "bsc", + "display_name": "BNB Smart Chain (BSC)", + "endpoints": { + "rest": [ + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "eth-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "near-block", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "solana-height", + "response_status": 200, + "response_text": "[object Object]" + }, + { + "status": "healthy", + "url": "https://bsc.jsonrpc.lava.build:443", + "pattern": "starknet-block", + "response_status": 200, + "response_text": "[object Object]" + } + ] + } + } +} \ No newline at end of file