All Projects → interlay → interbtc

interlay / interbtc

Licence: Apache-2.0 License
interBTC: Trustless Bitcoin on Polkadot | kBTC: Trustless Bitcoin on Kusama

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to interbtc

polkaswap-web
Polkaswap is a non-custodial, cross-chain AMM DEX protocol for swapping tokens based on Polkadot and Kusama relay chains, Polkadot and Kusama parachains, and blockchains directly connected via bridges. Polkaswap removes trusted intermediaries and provides the opportunity for faster trading.
Stars: ✭ 43 (-68.38%)
Mutual labels:  substrate, polkadot, defi, kusama
crunch
Crunch is a command-line interface (CLI) and Matrix Bot to claim staking rewards every Era for Substrate-based chains
Stars: ✭ 34 (-75%)
Mutual labels:  substrate, polkadot, kusama
Astar
The dApp hub for blockchains of the future
Stars: ✭ 533 (+291.91%)
Mutual labels:  substrate, polkadot, kusama
substrate-debug-kit
A collection of debug tools, scripts and libraries on top of substrate.
Stars: ✭ 96 (-29.41%)
Mutual labels:  substrate, polkadot, kusama
polkabtc-ui
interBTC App - Mint 1:1 backed BTC on Polkadot and Kusama
Stars: ✭ 12 (-91.18%)
Mutual labels:  polkadot, kusama, interbtc
reef-chain
EVM compatible chain with NPoS/PoC consensus
Stars: ✭ 142 (+4.41%)
Mutual labels:  substrate, polkadot, defi
nft-gallery
NFT Explorer 🗺 🧭 running on Kusama and Polkadot
Stars: ✭ 281 (+106.62%)
Mutual labels:  substrate, polkadot
jupiter
Wasm smart contract networks powered by Substrate FRAME Contracts pallet in Polkadot ecosystem.
Stars: ✭ 49 (-63.97%)
Mutual labels:  substrate, polkadot
bittensor
Internet-scale Neural Networks
Stars: ✭ 97 (-28.68%)
Mutual labels:  substrate, polkadot
datdot-node-rust
datdot blockchain node in rust
Stars: ✭ 43 (-68.38%)
Mutual labels:  substrate, polkadot
trustbase
Smart Contract parachain interoperate with Polkadot and Ethereum
Stars: ✭ 22 (-83.82%)
Mutual labels:  substrate, polkadot
py-substrate-interface
Python Substrate Interface
Stars: ✭ 125 (-8.09%)
Mutual labels:  substrate, polkadot
rmrk-substrate
Nested, conditional & Multi-resourced NFTs.
Stars: ✭ 44 (-67.65%)
Mutual labels:  substrate, polkadot
interbtc-spec
interBTC specification for a trust-minimized Bitcoin to Polkadot (and beyond) bridge
Stars: ✭ 16 (-88.24%)
Mutual labels:  bridge, interbtc
ts
Misc. TypeScript definitions that are not yet available on DefinitelyTyped but required by other projects in this repo. Should be merged with upstream projects or the DT project.
Stars: ✭ 13 (-90.44%)
Mutual labels:  substrate, polkadot
polkascan-pre-harvester
Polkascan PRE Harvester
Stars: ✭ 23 (-83.09%)
Mutual labels:  substrate, polkadot
polkawallet-flutter
Replace to: https://github.com/polkawallet-io/app
Stars: ✭ 107 (-21.32%)
Mutual labels:  substrate, polkadot
sdk
Li.Fi - Bridge & DEX aggregation: Any-to-Any Cross-Chain-Swap SDK
Stars: ✭ 18 (-86.76%)
Mutual labels:  bridge, defi
interbtc-api
interBTC TypeScript API
Stars: ✭ 21 (-84.56%)
Mutual labels:  polkadot, interbtc
polkadot-apps
Fork of Polkadot.js Apps with Subsocial types.
Stars: ✭ 17 (-87.5%)
Mutual labels:  substrate, polkadot

interBTC

interBTC

A trust-minimized bridge from Bitcoin to Polkadot.
Explore the specification »

Report Bug · Request Feature

This repository is hosted on GitHub: https://github.com/interlay/interbtc with a mirror on GitLab and radicle.

Table of Contents

About the Project

The interBTC runtime allows the creation of interBTC, a fungible token that represents Bitcoin in the Polkadot ecosystem. Each interBTC is backed by Bitcoin 1:1 and allows redeeming of the equivalent amount of Bitcoins by relying on a collateralized third-party.

The project uses the concept of Cryptocurrency-backed Assets to lock Bitcoin on the Bitcoin blockchain and issue BTC-backed tokens on the BTC Parachain. The implementation is based on the interBTC specification.

Built with

The interBTC project is built with:

Development Progress

The Substrate runtime makes use of various custom pallets that are found in the crates folder.

  • annuity: Block rewards for stake-to-vote and vaults.
  • bitcoin: Library for Bitcoin type, parsing and verification functions.
  • btc-relay: Stateful SPV client for Bitcoin. Stores Bitcoin main chain, tracks forks, verifies Merkle proofs and validates specific transaction formats.
  • currency Handles currencies used as backing collateral (e.g. DOT/KSM) and issued tokens (e.g. interBTC).
  • democracy: Optimistic governance fork of pallet-democracy.
  • escrow: Rust implementation of Curve's Voting Escrow contract.
  • fee: Participant reward calculation and distribution.
  • issue: Handles issuing of interBTC for BTC on Bitcoin.
  • nomination: Interface for vault nomination.
  • oracle: Trusted providers use this to set exchange rates and Bitcoin fee estimates.
  • redeem: Handles redeeming of interBTC for BTC on Bitcoin.
  • refund: Handles refunds for when a vault receives more BTC than it can cover.
  • relay: Handles block submission and theft reporting.
  • replace: Handles replacing vaults.
  • reward: Scalable reward distribution.
  • security: Handles status and error changes.
  • staking: Core logic for vault nomination and slashing.
  • supply: Token minting and inflation.
  • vault-registry: Handles registration, collateral and liquidation of vaults.

Getting started

Prerequisites

curl https://sh.rustup.rs -sSf | sh

Please also install the following dependencies:

  • cmake
  • clang (>=10.0.0)
  • clang-dev
  • libc6-dev
  • libssl-dev

Installation

Building requires a specific rust toolchain and nightly compiler version. The requirements are specified in the ./rust-toolchain.toml override file.

Running rustup show from the root directory of this repo should be enough to set up the toolchain and you can inspect the output to verify that it matches the version specified in the override file.

To build, run:

cargo build

For more detailed development instructions see here.

Testing

cargo test

To run with coverage, using cargo-cov:

cargo install cargo-cov

# clean up previous coverage result
cargo cov clean

# test the code
cargo cov test

# open the coverage report
cargo cov report --open

Running - Standalone

To run a local development node, use the dev chain spec.

cargo run --release --bin interbtc-standalone -- --dev

Clear the database using the purge-chain command.

cargo run --release --bin interbtc-standalone -- purge-chain --dev

Additional CLI usage options are available and may be shown by running cargo run --bin interbtc-standalone -- --help.

Running - Parachain

To run a local development node, use the dev chain spec.

cargo run --release --bin interbtc-parachain -- --dev

To connect with a local relay-chain follow these instructions.

Test Coverage

Test coverage reports available under docs/testcoverage.html

Substrate Chain Configuration

The Substrate runtime configuration is in the parachain folder.

Javascript / Typescript

When interacting via polkadot{.js} you will need to use our custom types. Please also checkout interbtc-js for a more complete (strongly-typed) library.

Contributing

If you would like to contribute, please file an issue on GitHub or reach out to us.

We are hiring!

License

(C) Copyright 2021 Interlay Ltd

interBTC is currently licensed under the terms of the Apache License (Version 2.0). See LICENSE

Contact

Website: Interlay.io

Twitter: @interlayHQ

Email: [email protected]

Acknowledgements

This project is supported by a Web3 Foundation grant.

We would also like to thank the following teams for their continuous support:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].