A trustless bridge between Polkadot and Ethereum
See the codeSnowbridge is a trustless bridge between Polkadot and Ethereum. For documentation, visit https://docs.snowbridge.network.
Found a security issue in Snowbridge? Please view our bug bounty programme to submit a finding.
The Snowbridge project lives in two repositories:
Polkadot parachain and our pallets. See https://github.com/Snowfork/polkadot-sdk.
Ethereum contracts and unit tests. See contracts/README.md
Off-chain relayer services for relaying messages between Polkadot and Ethereum. See relayer/README.md
Scripts to provision a local testnet, running the above services to bridge between local deployments of Polkadot and Ethereum. See web/packages/test/README.md.
Integration tests for our local testnet. See smoketest/README.md.
We use the Nix package manager to provide a reproducible and maintainable developer environment.
After installing Nix, enable flakes:
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
Then activate a developer shell in the root of our repo, where
flake.nix is located:
nix develop
Also make sure to run this initialization script once:
scripts/init.sh
To ensure your code editor (such as VS Code) can execute tools in the nix shell, startup your editor within the interactive shell.
Example for VS Code:
nix develop
code .
The developer shell is bash by default. To preserve your existing shell:
nix develop --command $SHELL
To automatically enter the developer shell whenever you open the project, install
direnv and use the template .envrc:
cp .envrc.example .envrc
direnv allow
Sometimes we would like to upgrade rust toolchain. First update polkadot-sdk/rust-toolchain.toml as required and then
update flake.lock running
nix flake lock --update-input rust-overlay
Check the contents of all .envrc files.
Remove untracked files:
git clean -idx
Ensure that the current Rust toolchain is the one selected in scripts/init.sh.
Ensure submodules are up-to-date:
git submodule update
Check untracked files & directories:
git clean -ndx | awk '{print $3}'
After removing node_modules directories (eg. with git clean above), clear the pnpm cache:
pnpm store prune
Check Nix config in ~/.config/nix/nix.conf.
Run a pure developer shell (note that this removes access to your local tools):
nix develop -i --pure-eval
The security policy and procedures can be found in SECURITY.md.
(top 30 of 44)
TypeScript
39.2%
Go
22.8%
Solidity
18.1%
Rust
16.2%
Shell
2.5%
A trustless bridge between Polkadot and Ethereum
See the codeSnowbridge is a trustless bridge between Polkadot and Ethereum. For documentation, visit https://docs.snowbridge.network.
Found a security issue in Snowbridge? Please view our bug bounty programme to submit a finding.
The Snowbridge project lives in two repositories:
Polkadot parachain and our pallets. See https://github.com/Snowfork/polkadot-sdk.
Ethereum contracts and unit tests. See contracts/README.md
Off-chain relayer services for relaying messages between Polkadot and Ethereum. See relayer/README.md
Scripts to provision a local testnet, running the above services to bridge between local deployments of Polkadot and Ethereum. See web/packages/test/README.md.
Integration tests for our local testnet. See smoketest/README.md.
We use the Nix package manager to provide a reproducible and maintainable developer environment.
After installing Nix, enable flakes:
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
Then activate a developer shell in the root of our repo, where
flake.nix is located:
nix develop
Also make sure to run this initialization script once:
scripts/init.sh
To ensure your code editor (such as VS Code) can execute tools in the nix shell, startup your editor within the interactive shell.
Example for VS Code:
nix develop
code .
The developer shell is bash by default. To preserve your existing shell:
nix develop --command $SHELL
To automatically enter the developer shell whenever you open the project, install
direnv and use the template .envrc:
cp .envrc.example .envrc
direnv allow
Sometimes we would like to upgrade rust toolchain. First update polkadot-sdk/rust-toolchain.toml as required and then
update flake.lock running
nix flake lock --update-input rust-overlay
Check the contents of all .envrc files.
Remove untracked files:
git clean -idx
Ensure that the current Rust toolchain is the one selected in scripts/init.sh.
Ensure submodules are up-to-date:
git submodule update
Check untracked files & directories:
git clean -ndx | awk '{print $3}'
After removing node_modules directories (eg. with git clean above), clear the pnpm cache:
pnpm store prune
Check Nix config in ~/.config/nix/nix.conf.
Run a pure developer shell (note that this removes access to your local tools):
nix develop -i --pure-eval
The security policy and procedures can be found in SECURITY.md.
(top 30 of 44)
TypeScript
39.2%
Go
22.8%
Solidity
18.1%
Rust
16.2%
Shell
2.5%