The Argo bridge is a cross-chain token bridge that allows users to transfer JOY tokens between Joystream and Base networks. Even though those are the only networks supported at the moment, the bridge can be generalized to support bridging between any Substrate/EVM chains.
The bridge is semi-manual - all transfers are manually approved by a list of trusted signers and can be executed only by reaching a threshold of approvals. For more details, see the architecture document.
The bridge consists of 4 main components:
- EVM smart contracts and deployment, found in the packages/contracts directory.
- Joystream runtime pallet, found in the Joystream monorepo.
- Subsquid indexer, found in the packages/indexer directory.
- Frontend app, found in the packages/app directory.
Additionally, the repo contains a core package that contains reusable code for the other components.
Lastly, in the tests directory, you can find the integration tests for all the bridge components.
Each component contains its own README file with more details.
To install all the dependencies, run:
npm install
Then, you should also build the @joystream/argo-core
package:
npm run build:core
Once dependencies are ready, you can visit the respective component's README file for more details on how to run them.