[app] chain_id = 137 # a database is optional. it is used for user authentication and accounting # TODO: how do we find the optimal db_max_connections? too high actually ends up being slower db_max_connections = 20 # development runs cargo commands on the host and so uses "mysql://root:dev_web3_proxy@127.0.0.1:13306/dev_web3_proxy" for db_url # production runs inside docker and so uses "mysql://root:web3_proxy@db:3306/web3_proxy" for db_url db_url = "mysql://root:dev_web3_proxy@127.0.0.1:13306/dev_web3_proxy" deposit_factory_contract = "0x4e3bc2054788de923a04936c6addb99a05b0ea36" deposit_topic = "0x45fdc265dc29885b9a485766b03e70978440d38c7c328ee0a14fa40c76c6af54" # a timeseries database is optional. it is used for making pretty graphs influxdb_host = "http://127.0.0.1:18086" influxdb_org = "dev_org" influxdb_token = "dev_web3_proxy_auth_token" influxdb_bucket = "dev_web3_proxy" # thundering herd protection # only mark a block as the head block if the sum of their soft limits is greater than or equal to min_sum_soft_limit min_sum_soft_limit = 1_000 # only mark a block as the head block if the number of servers with it is great than or equal to min_synced_rpcs min_synced_rpcs = 1 # redis is optional. it is used for rate limits set by `hard_limit` # TODO: how do we find the optimal redis_max_connections? too high actually ends up being slower volatile_redis_max_connections = 20 # development runs cargo commands on the host and so uses "redis://127.0.0.1:16379/" for volatile_redis_url # production runs inside docker and so uses "redis://redis:6379/" for volatile_redis_url volatile_redis_url = "redis://127.0.0.1:16379/" # redirect_public_url is optional redirect_public_url = "https://llamanodes.com/public-rpc" # redirect_rpc_key_url is optional # it only does something if db_url is set redirect_rpc_key_url = "https://llamanodes.com/dashboard/keys?key={{rpc_key_id}}" # sentry is optional. it is used for browsing error logs # sentry_url = "https://SENTRY_KEY_A.ingest.sentry.io/SENTRY_KEY_B" # public limits are when no key is used. these are instead grouped by ip # 0 = block all public requests # Not defined = allow all requests #public_max_concurrent_requests = # 0 = block all public requests # Not defined = allow all requests #public_requests_per_period = public_recent_ips_salt = "" login_domain = "llamanodes.com" # 1GB of cache response_cache_max_bytes = 1_000_000_000 # allowed_origin_requests_per_period changes the min_sum_soft_limit for requests with the specified (AND SPOOFABLE) Origin header # origins not in the list for requests without an rpc_key will use public_requests_per_period instead [app.allowed_origin_requests_per_period] "https://chainlist.org" = 1_000 [balanced_rpcs] [balanced_rpcs.llama_public] disabled = false display_name = "LlamaNodes" http_url = "https://polygon.llamarpc.com" ws_url = "wss://polygon.llamarpc.com" soft_limit = 1_000 tier = 0 [balanced_rpcs.quicknode] disabled = false display_name = "Quicknode" http_url = "https://rpc-mainnet.matic.quiknode.pro" soft_limit = 10 tier = 2 [balanced_rpcs.maticvigil] disabled = false display_name = "Maticvigil" http_url = "https://rpc-mainnet.maticvigil.com" soft_limit = 10 tier = 2 [balanced_rpcs.matic-network] disabled = false display_name = "Matic Network" http_url = "https://rpc-mainnet.matic.network" soft_limit = 10 tier = 1 [balanced_rpcs.chainstack] disabled = false http_url = "https://matic-mainnet.chainstacklabs.com" soft_limit = 10 tier = 2 [balanced_rpcs.bware] disabled = false display_name = "Bware Labs" http_url = "https://matic-mainnet-full-rpc.bwarelabs.com" soft_limit = 10 tier = 2 [balanced_rpcs.bware_archive] disabled = false display_name = "Bware Labs Archive" http_url = "https://matic-mainnet-archive-rpc.bwarelabs.com" soft_limit = 10 tier = 2 [balanced_rpcs.polygonapi] disabled = false display_name = "Polygon API" http_url = "https://polygonapi.terminet.io/rpc" soft_limit = 10 tier = 2 [balanced_rpcs.one-rpc] disabled = false display_name = "1RPC" http_url = "https://1rpc.io/matic" soft_limit = 10 tier = 2 [balanced_rpcs.fastrpc] disabled = false display_name = "FastRPC" http_url = "https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf" soft_limit = 10 tier = 2 [balanced_rpcs.unifra] disabled = false display_name = "Unifra" http_url = "https://polygon-mainnet-public.unifra.io" soft_limit = 10 tier = 2 [balanced_rpcs.onfinality] disabled = false display_name = "Onfinality" http_url = "https://polygon.api.onfinality.io/public" soft_limit = 10 tier = 2 [balanced_rpcs.alchemy] disabled = false display_name = "Alchemy" heept_url = "https://polygon-mainnet.g.alchemy.com/v2/demo" soft_limit = 10 tier = 2 [balanced_rpcs.blockpi] disabled = false display_name = "Blockpi" http_url = "https://polygon.blockpi.network/v1/rpc/public" soft_limit = 100 tier = 2 [balanced_rpcs.polygon] backup = true disabled = false display_name = "Polygon" http_url = "https://polygon-rpc.com" soft_limit = 10 tier = 2 [balanced_rpcs.pokt] disabled = false display_name = "Pokt" http_url = "https://poly-rpc.gateway.pokt.network" soft_limit = 10 tier = 2 [balanced_rpcs.ankr] backup = true disabled = false display_name = "Ankr" http_url = "https://rpc.ankr.com/polygon" soft_limit = 10 tier = 2 [balanced_rpcs.blastapi] backup = true disabled = true display_name = "Blast" http_url = "https://polygon-mainnet.public.blastapi.io" hard_limit = 10 soft_limit = 10 tier = 2 [balanced_rpcs.omnia] disabled = true display_name = "Omnia" http_url = "https://endpoints.omniatech.io/v1/matic/mainnet/public" soft_limit = 10 tier = 2 [balanced_rpcs.bor] disabled = true http_url = "https://polygon-bor.publicnode.com" soft_limit = 10 tier = 2 [balanced_rpcs.blxr] disabled = false http_url = "https://polygon.rpc.blxrbdn.com" soft_limit = 10 tier = 2