Let’s become a Provider on Lava Network

Welcome to the guide on how to become a Provider at Lava Network (or Lava-over-Lava provider) in less than 10 minutes by following 8 steps!

Before you begin, make sure you have completed the following tasks:

  1. Apply and get accepted into the incubation program by filling out the application form. We highly recommend reading the accompanying document before submitting your application.
  2. Install GO, ensuring that you have version 1.18 or higher.
  3. Set up your Lava blockchain node (note that being a validator is not mandatory). It is crucial to open the ports for RPC, API, and gRPC to ensure proper functionality of your node provider. For detailed instructions on installing your Lava node, refer to the AviaDoc documentation where you will find a Snapshot and more.
  4. Install the wallet that received the tokens from the incubation program. Please note that a minimum of 50000000000ulava tokens is required.

Are you ready? Let’s do it!


STEP 1 : chain-id

LAV1 is the chain ID to become a provider on the LAVA node. It is ideal for getting started, and it’s what we will use in our tutorial to initialize your node provider.

Later on, you will have the opportunity to expand your influence and become provider to other chains.

Here is an overview of all available chains, and more will be added in the future.🚀

STEP 2 – Amount to Stake


To become a provider, you must have a minimum of 50000000000ulava per chain. You can contribute more, but not less! If you intend to be a provider on multiple chains, we recommend sticking to the minimum requirement of 50000000000ulava.
Please take note that becoming a Provider comes with Testnet rewards and can be accumulated to become a provider on additional chains.
Note that this testnet is not incentivized and accumulated testnet tokens hold no real-world value and cannot be transferred to the mainnet.

STEP 3 – Where are you?


To specify the location of your server, it’s straightforward: US corresponds to 1, and EU corresponds to 2.

In the command lines, you need to input the number 1 or 2 to indicate the geolocation of your server.

STEP 4 – RPC | API | Grpc


RPC, API, and gRPC must be fully functional on your server.

If you need help please refer to our Discord Channel.

It is crucial to note that all provider requests are executed using gRPC. Therefore, it is imperative to have gRPC access properly set up on your node provider.

Please refer to the LAVA documentation below to see the available options and instructions :

STEP 5 – Setting up Provider on LAV1 (LAVA_CHAIN=”lava-testnet-1″)


lavad tx pairing stake-provider "LAV1" \
    "50000000000ulava" \
    "rpc.lava.aviaone.com:2221,tendermintrpc,2 api.lava.aviaone.com:2221,rest,2 grpc.lava.aviaone.com:2221,grpc,2" 2 \
    --from "Wallet_name_used_with_your_node" \
    --provider-moniker "YOUR_NAME_USED_TO_BE_PROVIDER" \
    --keyring-backend "test" \
    --chain-id "lava-testnet-1" \
    --gas="auto" \
    --gas-adjustment "1.5" \
	--fees 1ulava \
    --node "https://public-rpc.lavanet.xyz:443/rpc/"
"rpc.lava.aviaone.com:2221,tendermintrpc,2 api.lava.aviaone.com:2221,rest,2 grpc.lava.aviaone.com:2221,grpc,2" 2 \

You will, later on, be able to identify yourself as a provider and for that we recommend using a DNS mask to replace your IP-123.456.789 with something like rpc.your-name.com:2221. If you are not sure on how to do this, you can simply use your IP address as shown below.

"123.456.789:2221,tendermintrpc,2 123.456.789:2221,rest,2 123.456.789:2221,grpc,2" 2 \

Using your IP address instead of a domain name, code will look like the following. Please replace the IP address with your own:

lavad tx pairing stake-provider "LAV1" \
    "50000000000ulava" \
    "123.456.789:2221,tendermintrpc,2 123.456.789:2221,rest,2 123.456.789:2221,grpc,2" 2 \
    --from "Wallet_name_used_with_your_node" \
    --provider-moniker "YOUR_NAME_USED_TO_BE_PROVIDER" \
    --keyring-backend "test" \
    --chain-id "lava-testnet-1" \
    --gas="auto" \
    --gas-adjustment "1.5" \
	--fees 1ulava \
    --node "https://public-rpc.lavanet.xyz:443/rpc/"

Please note that you should not change the port number (2221) as it is unrelated to your RPC, API, or gRPC port numbers. This port number is for you to choose and inform others that your provider services will be operational at this address with this specific port number.

Have you just used the above command lines? Congratulations! You have officially declared yourself as a provider at LAVA!

You can verify that it is working successfully by following these steps :

lavad query pairing account-info \
YOUR@WALLET@ADDRESS \
--node https://public-rpc.lavanet.xyz:443/rpc/

To check other providers, please do the following :

lavad query pairing providers \
LAV1 \
--node https://public-rpc.lavanet.xyz:443/rpc/

STEP 6 – Interested on becoming provider for other chains?



Simply copy the above process and instead of “LAV1” replace it with the chain that suits you, such as “ETH1” or “COS3” etc…

lavad tx pairing stake-provider "ETH1" \
and with the same code showed above....

STEP 7 – The file rpcprovider.yml


Now that we have announced to the world that our RPC is functioning perfectly on rpc.lava.aviaone.com:2221 or 123.456.789:2221 (if you used your IP address), we need to configure our server so that rpc.lava.aviaone.com:2221 or 123.456.789:2221 can respond on this single address, even though our RPC, API, and gRPC are operating on different ports.

You need to create a file named “rpcprovider.yml” and add it to your configuration.

$HOME/.lava/config/rpcprovider.yml

Here is the content of this file for the LAV1 chain. If you want to operate multiple chains simultaneously, such as ETH1, you need to duplicate the lines below.
Don’t forget to change “chain-id: LAV1” to “chain-id: ETH1” accordingly.

endpoints:
  - api-interface: tendermintrpc
    chain-id: LAV1
    network-address: 0.0.0.0:2221
    node-urls:
      - url: wss://rpc.lava.aviaone.com/websocket
      - url: https://rpc.lava.aviaone.com
  - api-interface: grpc
    chain-id: LAV1
    network-address: 0.0.0.0:2221
    node-urls:
      - url: grpc.lava.aviaone.com:9094
  - api-interface: rest
    chain-id: LAV1
    network-address: 0.0.0.0:2221
    node-urls:
      - url: https://public-rpc.lavanet.xyz:443/rpc/

Do not change “network-address: 0.0.0.0:2221”; do not add “localhost” or anything else. “network-address: 0.0.0.0:2221” must remain exactly as it is and unchanged.

What you need to modify in this file are the information to indicate your RPC, API, and gRPC that you have configured when opening the ports. For example, if Aviaone has declared the RPC as “https://rpc.providers.lava-testnet-1.lava.aviaone.com,” you should replace it with your RPC. Similarly, for gRPC, replace “grpc.providers.lava-testnet-1.lava.aviaone.com:9094” with your own gRPC address. Remember to include the port number for gRPC, as gRPC works over HTTP/2 without “http” in the address but with the specified port number.

Please refer to the LAVA documentation to check available options and further guidance :

STEP 8 – Executing $HOME/.lava/config/rpcprovider.yml


lavad rpcprovider /.lava/config/rpcprovider.yml --geolocation 2 --from Wallet_Provider --keyring-backend test

Congratulations! You are now an active Provider on the LAV1 chain with the configuration “chain-id: LAV1”.

To verify your status, you can use the following command.

lavad test rpcprovider --from YOUR_WALLET_ADDRESS --keyring-backend test

Remember to create a service (systemD) to ensure that “/.lava/config/rpcprovider.yml” remains active even after closing your terminal. Alternatively, you can use a terminal multiplexer.

For more detailed instructions, please refer to the official Lava Network documentation. You can also visit the following link to view all the providers, including yourself: https://info.lavanet.xyz/providers.

I trust that you have found this information valuable and that it has inspired you to explore beeing a Provider.

Try it | Love it | Share it