This project shows how to protect your RPC URL by creating a back-end server where you store the endpoint. Then, when you click the button to check the balance, the front end will send a request to the back-end server using the Solana getBalance method via the @solana/web3.js library.
Read the full guide on the Chainstack developer portal:
Clone the repository:
git clone https://github.com/akegaviar/express-proxy-server.gitEdit the .env.sample file to include your node RPC URL key and rename it to .env.
SOLANA_RPC_URL="YOUR_CHAINSTACK_SOLANA_NODE_URL"
PORT=4000Install dependencies:
npm installRun the server in dev mode with:
npm run devThe server is now running on http://localhost:4000/. You can send balance requests to your server with the following:
curl --location 'http://localhost:4000/balance' \
--header 'Content-Type: application/json' \
--data '{"address":"52C9T2T7JRojtxumYnYZhyUmrN7kqzvCLc4Ksvjk7TxD"}'You will also find a basic front end in the src directory. You can run it in your browser and test the proxy server.
- Insert the address you want to query in the input field.
- Click Check balance to send a request to your RPC node and retrieve the address' balance.
If you check the source code from the browser, you won't be able to find the API key used!
- Node.js: ^16.17.0— install Node
- A node RPC endpoint.
Deploy a node with Chainstack: