NoShore: On-the-go offline payments for Monero
NoShore is a set of four tools which, when used together, can enable offline payments in physical settings.
Communication is taken care of by an Internet-enabled device that coordinates the several steps, from preparing the transaction as well as having it signed and published to the network.
Wherever such a coordinating device is present, users may authorize payments by presenting their personal signing device without having to communicate with the Monero network itself.
Overview
Once each tool is set up as per the below documentation, the process looks like this:
- Create a full wallet on sentry
- Export the full wallet to ghost
- Export a view-only wallet to tower
- Have ghost+gate request tower to prepare transactions
- [optional] Periodically have sentry inform tower about spends
Installation
Complete each tool's installation in any order. Instructions:
Setup and Usage
Follow each tool's "Setup" section in this specific order:
- sentry - Create a full wallet on sentry
- tower - Have tower watch it
- ghost - Import it to ghost
- gate - Allow access from ghost
Usage
From the user's perspective, requesting a transaction is a simple two-step process:
Tell gate which amount to charge next:
gate cost 0.1337
Have ghost initiate the payment process:
ghost trigger
Upon successful execution, gate receives the requested amount to its wallet.
Support
Please ask your questions in monero.town's c/XMRID area.
Contributions
Be aware that, at this stage of development, there are no means for discovering the charging device automatically. Its location (an ssh-path) must be manually configured on the signing device.
Furthermore, since communication happens over ssh, the signing device will have to join a TCP-network where it can reach the charging device.
Contributions that make this frictionless, such as code to transfer via NFC, UR, Bluetooth and the like are particularly welcome.
Simpler tasks to work on can be found in the source code as comments marked "TODO" and some of the tools list ideas for improvements in their "roadmap" section of their respective README files.
Source code and issues are managed on Gitlab.