Interledger

The protocol for connecting

Try It Out

Register for the Interledger meetups in San Francisco and Singapore or a possible workshop in Tokyo

Interledger is an open protocol suite for sending payments across different ledgers. Like routers on the Internet, connectors route packets of money across independent payment networks. The open architecture and minimal protocol enable interoperability for any value transfer system. Interledger is not tied to any one company, blockchain, or currency. Interested in connecting ledgers, building with micropayments or getting involved in the protocol development? Join the Interledger W3C Community Group!


Code With Money

Add payments without being tied to a single currency or payment provider.

Multi-Hop Routing

Send payments to other ledgers, even if they are multiple hops away.

Simple Protocol

Inspired by TCP/IP, Interledger is easy to implement and use.


Simple Sending

Interledger makes it easy to send money, no matter what ledger you or the recipient are on.

import { SPSP } from 'ilp'
import PluginBells from 'ilp-plugin-bells'

const plugin = new PluginBells({
  account: 'https://red.ilpdemo.org/ledger/accounts/alice',
  password: 'secret'
})

SPSP.quote(plugin, {
  receiver: '[email protected]',
  destinationAmount: '0.01'
}).then((payment) => {
  payment.memo = { message: 'Still love you!' }

  return SPSP.sendPayment(plugin, payment)
}).then(() => {
  console.log('Sent!')
})

Automated Routing

Interledger takes care of getting your money from ledger A to ledger Z, so you can get back to building awesome things! If you’re interested, learn more about how the magic works.

Receiving Money

Interledger allows you to receive money from any ledger, without setting up accounts on lots of different services.

import PluginBells from 'ilp-plugin-bells'

const plugin = new PluginBells({
  account: 'https://blue.ilpdemo.org/ledger/accounts/bob',
  password: 'secret'
})

plugin.connect().then(() => {
  plugin.on('incoming_fulfill', (transfer) => {
    console.log('Received ' + transfer.amount + ' euros!')
  })
})