Eternal Safe is a decentralized fork of Safe{Wallet}, forked at v1.26.2. Funded by the Safe Grants Program.
The latest version is always accesible at https://eternalsafe.eth.limo. For the IPFS CID or pinned ENS subdomain, please check the latest release.
- No analytics/tracking
- No backend services needed, only an RPC URL
- Easily runs on IPFS or locally
- And more: full list of changes
Eternal Safe relies completely on the provided RPC URL. It is very important to provide a stable and performant RPC node. Typically, public RPC URLs are not sufficient, and it is recommended to run against a private RPC URL or your own node directly.
Contributions, be it a bug report or a pull request, are very welcome. Please check our contribution guidelines beforehand.
Create a .env
file with environment variables. You can use the .env.example
file as a reference.
Here's the list of all the environment variables:
Env variable | Description |
---|---|
NEXT_PUBLIC_IS_PRODUCTION |
Set to true to build a minified production app |
NEXT_PUBLIC_SAFE_VERSION |
The latest version of the Safe contract, defaults to 1.3.0 |
NEXT_PUBLIC_WC_PROJECT_ID |
WalletConnect v2 project ID |
If you don't provide some of the variables, the corresponding features will be disabled in the UI.
Install the dependencies:
yarn
Run the development server:
yarn start
Open http://localhost:3000 with your browser to see the app.
ESLint:
yarn lint --fix
Prettier:
yarn prettier
Unit tests:
yarn test --watch
To create a new component from a template:
yarn cmp MyNewComponent
This app is built using the following frameworks:
- Safe Core SDK
- Next.js
- React
- Redux
- MUI
- ethers.js
- web3-onboard
- Currently need to use the
legacy-safe-core-sdk
branch, as that's what Safe{Wallet} depended on at time of fork.