Blox Staking - Desktop App
Blox is an open-source, fully non-custodial staking platform for Ethereum 2.0. The platform serves as an easy and accessible way to stake Ether and earn rewards on Eth2, while ensuring participants retain complete control over their private keys. Our goal at Blox is to simplify staking while ensuring Ethereum stays fair and decentralized.
The Blox Live Desktop App is the gateway to convenient non-custodial staking on Eth2. Admin actions are performed in Blox Live for validator set up and management. Blox Live is run locally, offering the highest level of security and is responsible for the following key features:
- Key Management
- KeyVault Remote Signer Management
- Validator Monitoring Dashboard
Blox Live bundles together all of the functionality for securely managing backups, key imports, creating and managing validators, and more. Live maintains direct connectivity with Blox Infra and the user’s cloud service, on which KeyVault remote signer is installed.
Eth2 Staking Services
When considering an Eth2 staking service, it is important to understand how these services manage user private keys. Generally, the more centralized the service, the higher the security risks and penalties its users may face.
Custodial vs. Non-Custodial Staking
A major differentiator between staking services is level of custodianship; meaning, how a service stores user private keys. Most staking services are custodial or ‘centralized.’ Custodial staking services manage the entire ETH staking process on behalf of the user and have ‘custody’ over user private keys. This level of third party involvement raises major security breach concerns. Additionally, should the service inadvertently partake in a slashable event, its users face steep penalties given that slashing penalties grow exponentially the more validators are involved in an event. The larger the centralized service, the larger the potential penalties.
Our Non-Custodial Staking Solution
In order to be truly non-custodial we developed a solution that ensures that user keys cannot be compromised in any way, all the while, segregating user private keys from Blox The result ---> an open-source Desktop app, (AKA Blox Live), which grants a user management access to an individualized remote signing environment in which validator keys are securely stored and signing requests are properly managed.
Download the app from https://www.bloxstaking.com/download
BloxStaking app development run smoothly with Yarn
Run development version
Different dev modes
Zoom the app
zoom=-1 yarn dev
See Zoom Levels
BloxStaking desktop app can run on MacOs and Windows. You can create a package from your development enviroment.
Pacakage for MacOS release
Pacakage for Windows release
You can find the release files under release directory.
Logger has two appenders, file
logger.trace - console.log only logger.debug - console.log only logger.info - console.log + trace.log file logger.warn - console.log + trace.log file logger.error - console.log + trace.log file
For development and testing purposes you can set range of flags
blox.json in order to change application behavior.
- Set KeyVault version to be able to run update/reinstall
- Show test page in menu
- If auth:expired:test is true it will emulate token expired scenario and will make request to refresh token only once, and will change auth:expired:test value back to false
- For testing purposes add your country to list of restricted countries:
"compliance:restricted:test": "North Korea"
- Specifically set network for beaconcha API
- Specifically set network for validators import feature.
By default, it is
- ElectronJS To create a cross desktop app for all operating systems.
- Express, Webpack and Babel - For development purpose and build file creation
- React 16.8 - To handle front end tasks in scale
- React Router - For application navigation and routing
- Redux and Redux Saga - A UI state management and middleware to handle async operations
- Axios - Promise based HTTP client
- Styled Components - A CSS-in-JS library to make styling more dynamic and easy
- Auth0 JS - To authenticate and authorize users in the app
- TypeScript and ESlint - For better development experience, linting errors, type checking, auto complete and more
- Jest JS and React Test Renderer - Testing tools for React applications
- Coveralls - Code testing coverage
See our docs and guides here
GPL © Blox Live