Skip to content

Watr-Protocol/watr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twitter URL Medium

Watr

Watr Protocol is Watr’s decentralized and public blockchain platform that is open to everyone who wants to build, create and collaborate on it. Watr gives developers, entrepreneurs and investors direct access to commodities as a platform. It is a Polkadot Parachain, leveraging the shared security of the Polkadot ecosystem as well as high transaction throughput, connectivity with the other parachains and regular upgrades.

Building & Running Locally

  1. Clone and build the Watr node

    git clone https://github.com/Watr-Protocol/watr.git
    cd watr
    
    # Build. Be patient, it can take a long time :)
    cargo build --release
  2. Build Polkadot

    git clone https://github.com/paritytech/polkadot.git
    cd polkadot
    
    # Build with fast-runtime enabled
    cargo build --release --features fast-runtime
  3. Copy the polkadot binary stored at target/release/polkadot into the watr/bin directory

    # In polkadot root. Assuming watr is one directory up.
    cp target/release/polkadot ../watr/bin
  4. Start the local testnet

    To start Mainnet:

    zombienet -p native spawn zombienet-config/mainnet.toml

    To start Devnet:

    zombienet -p native spawn zombienet-config/devnet.toml

Run Tests

cargo test

Guides

Runtime Details

Substrate

  • pallet-scheduler allows extrinsic calls to be scheduled for a later time
  • pallet-balances maintains the native Watr currency
  • pallet-sudo provides a single Root-privileged account. Will be removed
  • pallet-multisig allows for several accounts to manage a single multisig account
  • pallet-identity is a simple, federated, identity system that allows users to add a nickname, social medias, and more
  • pallet-collective creates the Council
  • pallet-motion provides root-level origin for the Council
  • pallet-membership makes managing Council members easier
  • pallet-treasury provides a pot for holding Council governed funds
  • pallet-assets creates and manages new tokens
  • pallet-utility provides dispatch management (such as batched calls)

EVM / Frontier

  • pallet-ethereum provides Ethereum compatibilty and RPCs
  • pallet-evm Adds an Ethereum Virtual Machine. Provides support for EVM contracts
  • pallet-base-fee follows EIP-1559's fee mechanism
  • pallet-evm-precompile-assets-erc20 (aka XC-20s) allows EVM smart contracts to access pallet-assets using an ERC-20 interface

XCM

  • cumulus-pallet-xcmp-queue
  • pallet-xcm
  • cumulus-pallet-xcm
  • cumulus-pallet-dmp-queue
  • XCM is configured to allow certain asset transfers to and from Statemint (e.g., USDt)

Devnet

A current Devnet is running on the Rococo relay chain.

Endpoint: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.dev.watr.org%3A443#/explorer

Cumulus

This project was originally forked from the Substrate Parachain Template.

The stand-alone version of this template is hosted on the Substrate Devhub Parachain Template for each release of Polkadot. It is generated directly to the upstream Parachain Template in Cumulus at each release branch using the Substrate Template Generator.

👉 Learn more about parachains here, and parathreads here.

🧙 Learn about how to use this template and run your own parachain testnet for it in the Devhub Cumulus Tutorial.