Institutional Wallet proof-of-concept for trading carbon credits. Built using the Safe Core SDK to make use of latest Account Abstraction features https://docs.safe.global/safe-core-aa-sdk/safe-apps.
- MongoDB Instance: This is required for user management.
- Web3Auth Instance: This is required for SSO, it also provides a keypair used throughout the application for signing transactions, fees, etc.
- Run
yarn
from the project root to install the node modules. - Deploy a funded Safe by following the instructions in the
deploy-safe
directory README, found in deploy-safe/README.md. - Deploy the RBAC contracts found in the contracts/ directory and enable that module using the deploy-safe/custom-module/enable-module script.
- Deploy your own MONGODB for user management https://www.mongodb.com/free-cloud-database. Then update your
.env
file. - Once you have a funded Safe change into the
apps/Wallet
directory and runyarn
to install dependencies. - Create a
.env
file with the necessary data, check the example in apps/Wallet/.env.example. - Run
yarn dev
(oryarn dev:celo
for Celo mainnet) fromapps/Wallet
, app should run onhttp://localhost:3000
- Yarn v4.0.0
- NodeJS v18.13.0
- EthersJS v5.7.2
- Safe-contracts v1.4.1
-
Single Sign-On (SSO) EOA Authentication:
- Users can access an Externally Owned Account (EOA) on the Celo chain using corporate authentication, such as an email address.
- Eliminates the need for users to manage private keys, as this step is handled transparently by our software in the background.
-
EOA Abstracted Account Authentication:
- Users connecting their EOAs gain access to institutional abstracted accounts, facilitating transaction submissions.
-
Add/Remove Users:
- Administrative functionality to add and remove delegated wallet users.
- User accounts can be as simple as email addresses for SSO.
-
Account Recovery:
- Implement account recovery features, allowing users to regain access to their wallets using a new password through the SSO provider.