- Welcome to the Caravan - Cross chain ERC 4337 compatible browser extensions Extension repository. This extension aims to deliver a seamless user experience for managing, transferring, and interacting with assets across multiple blockchain networks, all from a single interface. By abstracting away the complexities inherent in cross-chain operations.
-
Multi-Network Compatibility: Caravan's browser-based wallet is engineered for compatibility with more than 7 blockchain networks. This functionality aims to simplify cross-chain transactions and reduce the complexity of managing multiple wallets, each tied to a specific network.
-
Smart Payment System: Caravan's architecture accommodates transactions both with and without the involvement of paymasters. This flexibility allows users to opt for traditional transaction fee structures or to leverage subsidized fees, depending on their requirements.
-
Asset Management and Security: Two key features distinguish Caravan's approach to asset management. First, a social recovery mechanism using OTP ensures that wallet access is recoverable across multiple devices. Second, an automated staking feature for DAI (sDAI) allows users to earn yield on idle assets, with the option for convenient conversion back to DAI.
Caravan leverages several cutting-edge technologies to offer a secure and seamless experience
- Implemented Tableland to store all same-chain and cross-chain transactions. Code Link
- Studio team name:- Suhel / Caravan.
- Dev Address:- 0xb7Bd02B95B13F3F0536BdCCb425D7086564B5fBA. Tableland Table link
- To fecilitate fast and cheap cross-chain transfers across all 7 networks, we used accross's across bridge which is built on top of UMA's optimisic oracle.
- Code Link
- We implemented Auto Deposit such that when the user is not using his funds, the idle liquidity can be used to earn yeild, which is why we used Spark's sDAI to fulfill this goal.
- Code Link
- Deployed our Contract Account and Verifying Paymaster on scroll to deploy ERC 4337 accounts and enable transactions.
- Contract Account Scroll Etherscan Contract and Caravan Paymaster Contract Scroll Etherscan
- Deployed our Contract Account and Verifying Paymaster on Mantle Network to deploy ERC 4337 accounts and enable transactions.
- Contract Account Contract on Mantle
- Caravan Paymaster Contract on Mantle
- Tweet Link
Deployed our Contract Account and Verifying Paymaster on Polygon Mainnet and Testnet to deploy ERC 4337 accounts and enable transactions.
- Contract Account Contract on Polygon Mainnet
- Caravan Paymaster Contract on Polygon Mainnet
- Contract Account Contract on Mumbai Testnet
- Caravan Paymaster Contract on Mumbai Testnet
Run with one-liner:
curl -fsSL https://skandha.run | bashOr follow the steps below:
- install all dependencies by running
yarn - build
yarn build && yarn bootstrap cp config.json.default config.json- edit
config.json - Export env variables of the networks that you want to support.
- (optional) run local geth-node from
test/geth-dev - run
./skandha - Skandha will run for all chains available in
config.json - Networks will be available at
http://localhost:14337/{chainId}/(e.g. for devhttp://localhost:14337/1337/)
cd tablelandyarnornpm install- Add
DB_PVT_KEY,OFFCHAIN_SIGNER_PRIVATE_KEYandACCOUNT_OWNER_PRIVATE_KEYin the.envfile. - To start the server:
node index.js
- Verify that your Node.js version is >= 18.12.0.
- Clone this repository.
- Make sure you configure the
providerinsrc/exconfig.tsto theGoerlinetwork. - Edit the
bundlerURL pointing to your preferred network(s) ( for examplegoerliand accepting EntryPoint=0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 - Run
yarn installto install the dependencies. - Run
yarn start - Load your extension in Chrome by following these steps:
- Go to
chrome://extensions/ - Enable
Developer mode - Click on
Load unpacked extension - Select the
buildfolder.
- Go to
- Happy hacking.
Warning Auto refresh is disabled by default, so you will have to manually refresh the page. If you make changes in background script or account-api, you will also have to refresh the background page. Check instructions on how to do that below.
Warning Logs of all the blockchain interactions are shown in the background script. Do keep it open for faster debugging.
- Open extension's page:
chrome://extensions/ - Find the Trampoline extension, and click Details.
- Check the
Inspect viewsarea and click onbackground pageto inspect it's logs - To refresh click
cmd + rorctrl + rin the background inspect page to refresh the background script. - You can reload the extension completely too, the state is always kept in localstorage so nothing will be lost.
Config of the extension can be set in exconfig.ts file.
This project is licensed under the MIT License - See the LICENSE file for details.
- Trampoline - Extension Base
- etherspot/skandha - Bundler Base
- Spark
- Tableland
- OpenZeppelin
- Polygon
- Scroll
- Across
- Mantle
- ETHOnline Team