Client to Ethereum Asym Server

Usage no npm install needed!

<script type="module">
  import ilpPluginEthereumAsymClient from '';


ILP Plugin Ethereum Asym Client

Client to Ethereum Asym Server


This plugin is still under development. Don't use it for large amounts of money.

This is an implementation of an ILP integration with Ethereum. It uses simple unidirectional payment channels on Ethereum, by making use of the Machinomy library.

One party must run an Ethereum Asym Server instance, and then any number of clients can connect by using this Asym Client. Each client opens a payment channel to the server, and will immediately send a claim. This claim is to cover the transaction fee of the server opening a channel to the client. The end result is that the server and client have two payment channels, allowing either one to send and receive.

Interleger packets are passed over the websocket connection that the client and server share, and then are periodically settled by passing claims over the websocket connection. The ILP Connector will manage this logic for you.

Because this plugin allows you to connect to the Interledger, you can use your Ether to pay anyone else on the network, regardless of what system they choose to use.


You must have a local ethereum provider running in order to use this plugin. The Machinomy contracts must be deployed on the chain that you connect to.

new PluginEthereumAsymClient({
  account: '0x....', // Your ethereum account
  db: 'machinomy_db', // The db file created by machinomy
  provider: 'http://localhost:8545', // ethereum provider 
  minimumChannelAmount: '10000', // amount with which to fund the channel

Connecting to a local server

export SECRET=ietah3IeZ0Zun4Se2daf3ieVia8Xeengahx8quo0
npm install
DEBUG=* node scripts/test-infura-local.js

Connecting to the testnet (easy way)

  • Sign up on and get your PROVIDER_URL from them
  • That service doesn't support private accounts, so for that, choose a SECRET
  • Using this PROVIDER_URL and SECRET, run:
export SECRET=ietah3IeZ0Zun4Se2daf3ieVia8Xeengahx8quo0
npm install
DEBUG=* node scripts/test-infura.js

Connecting to the testnet (hard way)

npm install
DEBUG=* ADDRESS=0xb9458d0076cc76d4568ebaac482ace6f1b30becb node scripts/test-geth.js

Local test

Against ilp-plugin-ethereum-asym-server:

npm install
export SECRET="repair good hover betray buddy deal night wide mean round great tackle"
DEBUG=* node scripts/test-infura-local.js