Skip to content
Substrate implementation of the AdEx Protocol v4: OUTPACE & Registry
Rust Shell
Branch: rebase
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial clone from template node Nov 26, 2018
Cargo.lock use a helper function for the merkle proof Feb 27, 2019
Cargo.toml Initial clone from template node Nov 26, 2018


The AdEx Protocol implemented on top of Substrate. Bootstrapped from substrate-node-template.

What is it?


The AdExOUTPACE module implements Offchain Unidirectional Trustless Payment Channels described here:

The OUTPACE module consists of:

  • channel_open: opens a channel, therefore locking up a deposit
  • channel_withdraw_expired: after the channel is expired, the creator may invoke this to withdraw the remainder of their deposit
  • channel_withdraw: at any time before expiry, anyone who earned from this channel may withdraw their earnings


The upcoming AdExRegistry module implements the AdEx registry.

It is a component where AdEx validators can stake tokens to get exposure. Furhermore, users may launch challenges against validators to prove their misbehavior. Most of the challenges involve replicating the off-chain behavior of the validator stack, employing a pattern referred to as counterfactuality.

For more details, read

Build and run

cargo run -- --dev

With some old Rust crates, you might need to do export PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig if you're running OpenSSL 1.1

Bootstrap an UI

First, complete the "Prerequisites" step from

Then, execute:

substrate-ui-new adex-protocol-substrate
You can’t perform that action at this time.