/wallet

Eternal Safe is a decentralized fork of Safe{Wallet}.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Eternal Safe

License Tests

Eternal Safe is a decentralized fork of Safe{Wallet}, forked at v1.27.0. 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.

Differences from Safe{Wallet}

  • No analytics/tracking
  • No backend services needed, only an RPC URL
  • Easily runs on IPFS or locally
  • And more: full list of changes

RPC

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.

Contributing

Contributions, be it a bug report or a pull request, are very welcome. Please check our contribution guidelines beforehand.

Getting started with local development

Environment variables

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.

Running the app locally

Install the dependencies:

yarn

Run the development server:

yarn start

Open http://localhost:3000 with your browser to see the app.

Lint

ESLint:

yarn lint --fix

Prettier:

yarn prettier

Tests

Unit tests:

yarn test --watch

Component template

To create a new component from a template:

yarn cmp MyNewComponent

Frameworks

This app is built using the following frameworks:

Notes

  • Currently need to use the legacy-safe-core-sdk branch, as that's what Safe{Wallet} depended on at time of fork.