By Alessandro Viganò and Colin LeMahieu
The following article is an overview of Manta, an open, multi-currency payment protocol developed to solve problems in the existing payment ecosystem. We’ll go over the motivations for its design and a high level technical look at how it operates.
Manta’s Design Motivations
Manta is designed to be decentralized; it is not a payment processor by itself, instead it is a protocol payment which providers can use to interact with Manta compatible wallets. The reason Manta is designed to be decentralized is to avoid a situation where a small set of payment providers in a few countries control global payment processing.
Manta is designed to be secure, not only in keeping payment requests secret, but also providing the ability for payment requests to be endorsed for authenticity, similar to a browser’s SSL certificate, and giving a guarantee of non-repudiation.
Manta is designed to be private. In a world where all your digital activity is mined for data, it’s becoming increasingly important for the contents and history of an individual’s payments to remain confidential. This property relies on the decentralization and security of Manta in order to maintain an individual’s right to privacy.
Merchants are offering goods or services to Payers and initiate payment orders. Typically this will be a storefront, restaurant, or commerce site that is interested in receiving payments over Manta. They are responsible for creating and signing payment orders, sending the order to their selected payment provider, and listening for a signal of payment success or failure.
Payment Processors are companies selected by a Merchant to process cryptocurrency payments on their behalf. Optionally the Merchant can serve as their own payment processor. They provide a list of cryptocurrencies which can be used to pay the merchant. They co-sign payment orders which provides a certificate chain showing the merchant’s details and endorsing the authenticity of the payment request.
Payers are end-users interested in buying something from a Merchant using Manta. They are responsible for scanning the payment request, checking the payment provider’s endorsement for authenticity, selecting the desired payment currency, and issuing a payment from their wallet.
Payment request endorsements
Manta introduces the concept of a payment request endorsement that is sent to the wallet of the Payer. This endorsement is similar to a browser’s SSL certificate in that it provides the user with a level of assurance that the entity they are paying is genuine. It serves a similar function to a receipt however it is provided in advance of payment and gives the Payer non-repudiatable evidence of what the Merchant has agreed to provide and how much is being requested. Wallets can save this information for future accounting or if the Payer and Merchant need to resolve a transaction dispute.
Payment provider selection
Allowing merchants to select their own payment provider makes Manta a competitive ecosystem. Merchants can select providers that give different rates, SLAs, and the ability to select a payment processor that is compliant with the regulatory landscape in their associated jurisdiction.
Multi-currency payment requests
Manta payment requests are not limited to a single cryptocurrency, any cryptocurrency agreed upon by the payment provider and merchant is an option the Payer can choose to make payment. Payment providers can shift a portion of the payment in to other cryptocurrencies or fiat depending on the agreement between them and the Merchant.
Manta communications is based on the MQTT protocol. MQTT is an ISO standard protocol that works well in environments where communication is unreliable and it also is well suited for low-power devices which may wish to participate in transactions.
Manta specifies a URI standard for connecting a Payer to a Payment Provider. A user’s wallet will connect to the endpoint specified in the URI in order to retrieve details of a payment request and otherwise interact with the payment provider. Retrieving payment request details through MQTT minimizes the amount of information needed in a QR code, NFC payload, or however else the URI is delivered to the user’s wallet.
Below is an example of a payment request message that is delivered to the user’s wallet
Manta has been developed by Appia as an open source protocol, as a base for an open, decentralized, secure and privacy-focused ecosystem.
At Appia we work actively with wallet teams and payment processors to drive the adoption of Manta.
This is a brief introduction of Manta, you can get full details on https://appiapay.github.io/manta-python/html/index.html
We plan to release additional articles about Manta to provide deeper technical details.
About the Authors
Alessandro Viganò and Colin LeMahieu are two of the co-founders of Appia.
EMEA Marketing Manager at Avnet Silica with 10+ years experience in the worldwide leading company in semiconductor distribution.
Managed the wireless, microcontrollers business, with special focus with NFC and RFID technologies, working in close collaboration with NXP.
Founder and CEO at the Nano Foundation. Executive and software engineer with a background working for the largest technology companies in the industry, such as Qualcomm, AMD, and Dell