🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

@bgd-labs/rpc-env

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bgd-labs/rpc-env

When working on multichain projects it is a tedious task to setup private RPCs and managing them in your local environment or github actions. This repository is a suite of tools to streamline the handling of RPC environment variables, by automating the cr

2.3.3
latest
npm
Version published
Weekly downloads
3.2K
1.67%
Maintainers
2
Weekly downloads
 
Created
Source

BGD RPC ENV

When working on multichain projects it is a tedious task to setup private RPCs and managing them in your local environment or github actions. This repository is a suite of tools to streamline the handling of RPC environment variables, by automating the creation and injection of environment variables following a common naming scheme.

NodeJS: @bgd-labs/rpc-env

NPM Version

Usage as a library

import { getRPCUrl, ChainId } from "@bgd-labs/rpc-env";

// will fetch the rpc based on a opinionated priorization and does not error if no rpc is found
// 1. checks if `RPC_MAINNET` is set, otherwise
// 2. checks if alchemy key was provided & if alchemy supports the network, otherwise
// 3. checks if quicknode key was provided & if quicknode supports the network, otherwise
// 4. checks if a public rpc is configured
const url = getRPCUrl(ChainId.mainnet, {
  alchemyKey?: "[YOUR_ALCHEMY_KEY]",
  quicknodeToken?: "[QUICKNODE_TOKEN]",
  quicknodeEndpointName?: "[QUICKNODE_ENDPOINT_NAME]"
});

// alternatively you can use the explicit getters, which will throw if no rpc is found
const url = getExplicitRPC(ChainId.mainnet);
const url = getAlchemyRPC(ChainId.mainnet, alchemyKey);
const url = getQuickNodeRpc(ChainId.mainnet, {quicknodeEndpointName, quicknodeToken});
const url = getPublicRpc(ChainId.mainnet);

Usage as cli

The cli will emit explicit rps and a foundry.toml configuration for each network.

export ALCHEMY_API_KEY=[YOUR_ALCHEMY_KEY]
export QUICKNODE_TOKEN=[QUICKNODE_TOKEN]
export QUICKNODE_ENDPOINT_NAME=[QUICKNODE_ENDPOINT_NAME]
npx @bgd-labs/rpc-env

Action: action-rpc-env

This action iterates over the supported chain ids and sets the corresponding env var.

Inputs

ALCHEMY_API_KEY

Alchemy API key

If given, the action substitute missing RPC_URLs with one constructed from the given key.

QUICKNODE_TOKEN & QUICKNODE_ENDPOINT_NAME

Quicknode API key and endpoint name

If given, the action substitute missing RPC_URLs with one constructed from the given token & name pair.

Supported Environment Variables

The supported environment variables are documented in this test.

Usage

- uses: bgd-labs/action-rpc-env@main
  with:
    ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
    QUICKNODE_TOKEN: ${{ secrets.QUICKNODE_TOKEN }}
    QUICKNODE_ENDPOINT_NAME: ${{ secrets.QUICKNODE_ENDPOINT_NAME }}
  env:
    RPC_POLYGON: "https://rpc.polygon.com"

FAQs

Package last updated on 24 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts