Skip to content


Repository files navigation

These are the legacy (v2.1) contracts. Bancor V3 contracts are available at

Bancor Protocol Contracts v0.7

Docs NPM Package


The solidity version of the Bancor smart contracts is composed of many different components that work together to create the Bancor Network deployment.

The main contracts are the BancorNetwork contract (entry point to the system) and the different converter contracts (implementation of liquidity pools and their reserves).


In order to use some plugins, API keys or custom network with secret config we need a config.json file. You can check hardhat.config.js for more details.

    "apiKeys": {
        "etherscan": ""

    "networks": {
        "mainnet": {
            "url": ""


All smart contract functions are public and all upgrades are opt-in. If significant improvements are made to the system a new version will be released. Token owners can choose between moving to the new system or staying in the old one. If possible, new versions will be backwards compatible and able to interact with the old versions.


The terms “reserves” and “connectors” have the same meaning throughout Bancor’s smart contract code and documentation. “Reserve ratio” and “connector weight” are also used interchangeably. “Connector balance” refers to the token inventories held in a liquidity pool's reserves.


Bancor is a work in progress. Make sure you understand the risks before using it.



  • node 12.20.0
  • yarn 1.22.0


  • yarn install


  • Verifying all the contracts:
    • yarn test (quick testing)
    • yarn coverage (full coverage)



Bancor Protocol is open source and distributed under the Apache License v2.0