This is an open-source repository for the Vault interface. You can customize this UI for your own vault on the Mainnet, Gnosis and Hoodi networks.
If you provide vault addresses for multiple networks, a dropdown menu will appear in the UI, allowing you to select the desired network.
Use the CLI to scaffold a configured project in seconds:
npx @stakewise/create-vault-interfaceIt will ask you a few questions (networks, vault addresses, RPC URLs, theme,
WalletConnect ID, etc.), generate a .env file, install dependencies, and
optionally deploy to Vercel. See cli/README.md for details.
- Clone the repository.
- Create a
.envfile in the root of the project. - Copy the contents of
.env.exampleinto your.envfile. - Replace the values in
.envwith your specific configurations:
-
Mainnet Vault:
- Add the vault address to
NEXT_PUBLIC_MAINNET_VAULT_ADDRESS. - Set the RPC URL in
NEXT_PUBLIC_MAINNET_NETWORK_URL. - Optionally, add
NEXT_PUBLIC_MAINNET_FALLBACK_URLfor a backup RPC connection.
- Add the vault address to
-
Gnosis Vault:
- Add the vault address to
NEXT_PUBLIC_GNOSIS_VAULT_ADDRESS. - Provide the RPC URL for
NEXT_PUBLIC_GNOSIS_NETWORK_URL.
- Add the vault address to
-
If you have vaults on both Mainnet and Gnosis, be sure to complete the previous steps for each network.
-
Testnet Vaults:
- Add the vault address to
NEXT_PUBLIC_HOODI_VAULT_ADDRESS. - Set the RPC URL in
NEXT_PUBLIC_HOODI_NETWORK_URL. - Test environment networks will appear in the network list only if the
VERCEL_ENVvariable is not set toproduction. In a production environment, you can switch to the testnet only through the wallet interface.
- Add the vault address to
-
Vault Ownership:
- Specify the owner’s domain in
NEXT_PUBLIC_OWNER_DOMAIN. - Add the X account for metadata as
NEXT_PUBLIC_OWNER_X_ACCOUNT.
- Specify the owner’s domain in
-
Wallet Connect:
- To enable Wallet Connect, set
NEXT_PUBLIC_WALLET_CONNECT_ID. Otherwise, it will not be available as a connection option.
- To enable Wallet Connect, set
-
Referrer Address:
- If you want to include a referrer address for staking and minting actions, assign a value to
NEXT_PUBLIC_REFERRER.
- If you want to include a referrer address for staking and minting actions, assign a value to
-
Language Configuration:
- The UI supports 7 languages by default (en, ru, fr, es, pt, de, zh). To exclude any languages, set the
NEXT_PUBLIC_LOCALESvariable. For instance, for English and Chinese only, useNEXT_PUBLIC_LOCALES=en, zh.
- The UI supports 7 languages by default (en, ru, fr, es, pt, de, zh). To exclude any languages, set the
-
Currency Configuration:
- The UI supports 7 currencies by default (usd, eur, gbp, cny, jpy, krw, aud). To exclude currencies, set the
NEXT_PUBLIC_CURRENCIESvariable. For example, for USD and EUR only, useNEXT_PUBLIC_CURRENCIES=usd, eur.
- The UI supports 7 currencies by default (usd, eur, gbp, cny, jpy, krw, aud). To exclude currencies, set the
-
Content-Security-Policy Configuration:
- If you want your site to open in a frame, you can list sites where this is possible.
NEXT_PUBLIC_CONTENT_SECURITY_POLICY=https://app.safe.global https://*.blockscout.com.
- If you want your site to open in a frame, you can list sites where this is possible.
- Verify Node Version: Ensure your Node.js version is
24.12.0or higher (see.nvmrc). - Install pnpm if you don't have it:
corepack enable && corepack prepare pnpm@latest --activate. - Run
pnpm installto install the necessary dependencies. - Start the Development Server: Run
pnpm devto start the server. Then navigate to http://localhost:5005 in your browser to view the application. - Build for Production using Vercel: Follow Vercel instructions to connect your repository to Vercel and automatically build and serve the app.
- Build for Production using hosting: Run
pnpm buildto prepare the app for production. After that, deploy the build files to your hosting service.
The vault interface allows you to perform the following actions:
- Deposit: Access this feature under the Stake tab.
- Mint: Available only if the vault has osToken enabled.
- Boost: Visible only if minting is enabled, vault is on the Ethereum network, and the vault version is higher than 2.
- Withdraw: Access this feature under the Unstake tab.
- Burn: Available only if the vault has osToken enabled.
- Unboost: Visible only if the vault has osToken enabled.
- Balance Tab: Displays current user stats, unstake/unboost queue data, and claim actions.
Add a .env file in the root of the project (or .env.local — both are gitignored).
Copy environment variables from the .env.example file and replace the values with the actual values.
Add vault address, rpc urls for the vault network, owner data, wallet connect id (if needed) and interface settings (locales, currencies).
There are light and dark themes available. By default the user will see a theme matching the system preference: light if the system theme is light, dark otherwise. The theme can be changed in the settings menu.
Colors are defined in the src/styles/settings.scss file and can be customized to your preferences.
After updating the colors, run pnpm colors — this script will generate RGB versions from your hex codes and update the following files:
src/styles/tailwind/layers/base.csssrc/styles/tailwind/theme.csssrc/styles/variables.scss
The favicon is a 16x16 image that is displayed in the browser tab. It is located in the public folder.
By default, osETH logo is used as the favicon.