<p>Stepan Snigirev had basically provided an explanation how to do the tricky part described at <a href="https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-June/002009.html" rel="nofollow noreferrer">https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-June/002009.html</a></p>

<p>The idea is that the vending machine creates an invoice with a routing hint that goes through the online node and the online node can construct the preimage from the onion that will be send. </p>

<p>Another way would be to have a deterministic way of preimage generation as explained in this video:  <a href="https://youtu.be/bihYeAeNi0g" rel="nofollow noreferrer">https://youtu.be/bihYeAeNi0g</a> - which was already inspired by Stepan but is not as elegant as his solution. </p>

<p>Regarding the proof of payment the phone would just display a qr code of the preimage which a vending machine could scan</p>

CC BY-SA 4.0
2020-02-25T19:06:20.653Z
2020-02-25T19:06:20.653Z
Rene Pickhardt
<p>I'm considering building a Lightning Network vending machine that is offline but has the capability to create LN invoices and verify payments.</p>

<p>As an example the scheme has:</p>

<ul>
<li>One offline vending machine.</li>
<li>One online node to validate payments.</li>
<li>One user (online with a cellphone).</li>
</ul>

<p>For that there must be:</p>

<ul>
<li>A way for the vending machine to provide valid invoices that can be paid to the online node.</li>
<li>A way for the user to communicate a prof-of-payment to the vending machine. </li>
</ul>

<p>Is this currently viable? Is this something that can/should be standardized so every wallet can implement it?</p>

<lightning-network>
How to provide a proof-of-payment to an offline Lightning Network vending machine?
My Quid Pro Quo
# How to provide a proof-of-payment to an offline Lightning Network vending machine?

(Asked by: username_0 on 2020-02-25)

I'm considering building a Lightning Network vending machine that is offline but has the capability to create LN invoices and verify payments.

As an example the scheme has:

* One offline vending machine.
* One online node to validate payments.
* One user (online with a cellphone).

For that there must be:

* A way for the vending machine to provide valid invoices that can be paid to the online node.
* A way for the user to communicate a prof-of-payment to the vending machine.

Is this currently viable? Is this something that can/should be standardized so every wallet can implement it?

**Tags:** lightning-network


---

## 1 answers

### Answer by username_1 on 2020-02-25. Score: 3

Stepan Snigirev had basically provided an explanation how to do the tricky part described at <https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-June/002009.html>

The idea is that the vending machine creates an invoice with a routing hint that goes through the online node and the online node can construct the preimage from the onion that will be send.

Another way would be to have a deterministic way of preimage generation as explained in this video: <https://youtu.be/bihYeAeNi0g> - which was already inspired by Stepan but is not as elegant as his solution.

Regarding the proof of payment the phone would just display a qr code of the preimage which a vending machine could scan


---

