Skip to content
This repository has been archived by the owner on Jul 12, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Archiving notice:

This library is no longer in use and maintenance. All further development related to chainbridge will happen in the new repo. More detailed information about chainbridge-core you can find in its readme or Discussions.

If you already running an old ChainBridge version please consider checking chainbridge-migration scripts that allow migrating to a newer version of chainbridge.


Build Status

Substrate implementation for ChainBridge.

This repo contains two pallets:


The core bridge logic. This handles voting and execution of proposals, administration of the relayer set and signaling transfers.


This pallet demonstrates how the chainbridge pallet can be integrated in to a substrate chain. It implements calls that can be executed through proposal only and to initiate a basic transfer across the bridge.


This pallet mimics an ERC721 token contract. It allows for minting, burning and transferring of tokens that consist of a token ID (U256) and some metadata (Vec<u8>). This is also integrated into example-pallet to demonstrate how non-fungibles can be transferred across the bridge.

ChainSafe Security Policy

Reporting a Security Bug

We take all security issues seriously, if you believe you have found a security issue within a ChainSafe project please notify us immediately. If an issue is confirmed, we will take all necessary precautions to ensure a statement and patch release is made in a timely manner.

Please email us a description of the flaw and any related information (e.g. reproduction steps, version) to security at chainsafe dot io.