Help with ILP documentation

I have a eth fork chain that i want to connect with ILP. I already have a connector working with one peer, however, the available tutorials on ILP are outdated / incomplete / not working. My question is: how do I link my chain to the ILP? What is the best approach to make it happen? Where can I find updated documentation? I mean, cmon! The ILP idea is amazing, but the documentation is really really bad. For instance, there are no tutorials on how to connect ILP on a private chain.
Thank you!

1 Like

Documentation was a topic discussed at the ILP summit, so hopefully the docs get better. Everyone has been investing in KTLO so docs have been backlogged.

Regarding requirements, I believe you will need an uplink. I’m pretty sure @karzak and @kincaid have some experience building uplinks, including ETH. Maybe they can offer some guidance.

You might also take a look at the uplinks that others have made. Try googling “moneyd uplink” and you should find several repos. The XRP uplink might be a good template to use since XRP is used by most if not all connectors on the ILP and is probably the best maintained.

1 Like

Hey Luis! Thanks for the comment. Myself along with a few other individuals are starting a working group focused on building out better documentation for the ILP community. Please keep an eye out early next week for some information on how to contribute if interested. Also, please let me know if there is anything in particular you’d like to see from documentation as we try to figure out the best way to go about creating this working group.


ILP is trying to attract devs to join ledgers, so I think we need a tutorial that’s just step by step, how do you go from never having used ILP to connecting a chain onto the livenet.


Totally agree!!! We need step by step tutorials

I would love to contribute, but I need to understand the basics first. I and my team are really excited about the ILP possibilities, however we are struggling with the documentation. Another thing is that javascript seems a little bit strange for this kind of stuff. Would be better to have Python or Go interface for most of the backend engineers.

1 Like

@Luis_Eduardo_Boiko Sorry the documentation’s been giving you such trouble!

We’re working on Rust and Java implementations of the protocol stack, as well as giving those HTTP APIs that will be easier to implement Python, Go, etc client libraries against. Hopefully that’ll start to be usable within a couple of weeks.

We’re also in the midst of an overhaul of how we integrate with ledgers, which is why there isn’t a great how-to on that right now. The previous integration method (“ledger plugins”) had to be written in Javascript and tightly coupled the communication method used between peers (initially only a Websocket-based protocol) with the settlement-related messages. The approach we’re working on now (“settlement engines”) is decoupled and will allow you to write a ledger integration in any language and have it interact with connector implementations written in different languages.

1 Like

Moneyd uplink ETH was a possible tool to send a payment, but to my knowledge it is not working at the moment.

You can use @kavaLabs “Switch API”.

However at this point, to my knowledge, it is not making atomic payments but stream. For example, to transfer a total amount of 20 ETH it would make many subsequent very fast small payments of 0.0XY ETH. The transfer of the total amount is still quick, so from an outsider’s perspective I think it can be assimilated to an atomic payment. If I am not mistaken, I think I read somewhere they are considering implementing atomic payments though.

It still uses plugins which need to be configured, so is compatible with the js ‘reference’ connectors. So you can hit the ground running with it.
You will need to deploy Machinomy contract on the ETH chain.

1 Like

Thank you @emschwartz! Is it dificult to setup a PoC with ILP linking to a private chain (eth based) with the current tech? Our company need to allows interoperability between our private chains and I’m thinking about using ILP, but I need to convince the “money guys”. It would be really good if you or one of the guys from the dev team can help us with this task. Thanks!

1 Like

I agree. Not that javascript is bad but providing interface with Go, Python or Java(Actually all 3 would be awesome :stuck_out_tongue: ) would catch more eyes. Since Js implementation is already available, I don’t think it’s that hard to port right! (just thinking over my head). I would personally involve myself if required, but it’s really hard at this point for me to understand lot of stuff that’s going on here. I am new to this :partying_face:, making as much time as I can to go through available reference links.

1 Like

Hey @Luis_Eduardo_Boiko!

The JavaScript Ethereum plugin is pretty hardened and should support using your own private chain. Some requirements:

  • Deploy the Machinomy payment channel contract to the local node (the bytecode for the contract is here)
  • Change the chainId for the local node to 3, 4 or 42 in order for the plugin to work properly
  • Configure the ethereumProvider property of the plugin with an Ethers provider that can connect to your local node

Unfortunately, right now there aren’t many tutorials or docs describing how all the pieces of the stack fit together – hopefully we can improve this soon!

With respect to using other programming languages such as Go or Python, as Evan noted, we’re moving the plugins to an HTTP-based API soon, which should make them much easier to use.

Also, if you want examples for running a multi-currency connector or sending cross-currency payments, check out the configuration we’re using for our live connector, and the SDK we developed for swaps between BTC, ETH and XRP.

Let me know if you have any questions!

1 Like

Correction: the ETH plugin doesn’t allow specificing a custom address for the Machinomy contract, so that might not work. I’ll make sure that’s added in the next update!