This tutorial describes how to build a simple payment channel application on top of Ethereum using go-perun. The tutorial targets developers familiar with Golang and Ethereum. The source code is available at GitHub.

The picture below gives an overview of the setup. Alice and Bob are the payment channel clients. They have an on-chain connection to an Ethereum blockchain backend for funding and withdrawing assets onto their payment channel. They also have a direct off-chain connection for operating their payment channel and sending payments without blockchain interaction.

Components of payment channel application