The Prysm Web UI is a locally hosted website that is launched from the validator client to provide users with a visual alternative to the validator cli( command-line interface).
The website will provide users with a visual way to set up their Prysm Wallet, manage their keys, and provide information on the current state of their validator. You will also be able to see a peer map for users who decide to share their location among the peers in their network.
The website at this time does not provide additional metrics over those that you would find on your Grafana dashboards or beaconcha.in.
To begin, follow the instructions to run Prysm in mainnet or testnet:
To launch the web interface, you will need to restart your validator client from step 1 with the
--web flag. This will allow you to access the web interface by default on
http://localhost:7500 if running on the same computer as your validator client and using
prysm.bat or building from source.
Prysm protects web users with a special URL for authentication instead of requiring the user to remember a password. The URL can be retrieved in the terminal logs where the
validator --web command was run. please copy it into a web browser to initialize the website with authentication. The base url
http://localhost:7500 may differ based on your own validator settings.
example of URL in logs
[2021-10-21 14:07:28] INFO rpc: Once your validator process is running, navigate to the link below to authenticate with the Prysm web interface[2021-10-21 14:07:28] INFO rpc: http://127.0.0.1:7500/initialize?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzQzMzIyOTJ9.EgkawrXjxSkO26FcwuiB6IFI-KUMyLAc9FKkuLOTHl8&expiration=1634332292
Print your unique authentication URL again
Sometimes your browser cache gets cleared requiring you to reauthenticate, or you want to retrieve a new URL with token without restarting the validator.
In that case, you can run the following command
validator web generate-auth-token
Auth Token must be located inside the wallet directory you are running the validator on
--wallet-dir flag can also be added to the
validator web generate-auth-token command to specify the specific location where the auth token would apply. This is important when running the validator with a wallet directory that is not in the default directory. When this happens the website may return an invalid token page.
3rd party tools
Third party tools such as DAppNode will initialize the user without use of the cli commands and will automatically redirect users to the dashboard. These tools will typically use the generated
auth-token file located in the Prysm Wallet directory.
If it is the first time you have ran your Prysm validator and have not yet created a wallet, you will be faced with a wallet creation screen allowing you to import the keystores generated from the Ethereum
upon completion of onboarding, your web page should always redirect you to the main dashboard.
The web UI runs by default on port 7500 of the validator client if you are running with the
--web flag. To customize this port, change the following flag to your liking:
--grpc-gateway-port (default: 7500 for validator)
The available parameters to customize are:
|The host for the validator client's JSON-HTTP API, default |
|The port for the validator client's JSON-HTTP API, default |
--wallet-dir flag will determine the location where your auth token as well as other related configurations are stored. you can provide this flag with a file director to change it from the default location.
If you are running your beacon node and validator on some server that you want to access from the outside, we recommend SSH local port forwarding to access it. For example, you would do the following from your home computer:
ssh -L 7500:127.0.0.1:7500 user@host_ip
where you replace
user@host_ip with the user and host ip address of the remote machine you are trying to access. This will forward all requests from your home computer's localhost:7500 to the remote instance's localhost:7500, allowing you to visit
http://localhost:7500 from your favorite browser and then access the validator web interface! This is the safest approach to access it, as you are exposing the web interface to the open Internet.
Please use HTTPS
If you plan to expose the website to the open Internet, please look into protecting yourself with HTTPS. Prysm web does not come with certificates or HTTPS pre-configured. If you are running Prysm Web on the open internet without HTTPS you are running at your own risk.
If your browser cache was cleared, you're running on a new browser, or validator was restarted you may be stuck on the initialize page. All you need to do is retrieve the special URL again and you should be re-authenticated which will redirect you to the main dashboard.
|503 or 0||No server response, services having difficulty communicating, meaning network problems, or services being un available, or even firewalls or adblock settings.|
|401||Unauthorized, requiring to reauthenticate with the special url|
|500||Internal Server Error, something failed internally in Prysm services|
|404||API endpoint is not found|
The web interface is open source and located at github.com/prysmaticlabs/prysm-web-ui. It is an Angular application, and we always welcome your help!
- latest node
- ide (i.e. visual studio code)
after cloning the repo navigate to where the
package.json file and run
npm install to retrieve the dependencies you will need.
npm start in the folder path where
package.json lives and open the website on
Web UI in development mode uses mock data by default
The recommended way to run prysm web is from the validator client itself via the
--web flag. If you are building the web UI from source and doing
npm start, you will be using fake, mock data! Keep that in mind if you are trying to use real accounts with the web UI.
Develop URL login
for authentication in develop you may use any token in the url query parameter i.e.
npm run start:staging will run a 'like' production build where the backend expects to be connected to
localhost:7500. You will need to start the validator client with
--web but interact with your angular application on