Skip to content

Latest commit

 

History

History
48 lines (33 loc) · 1.46 KB

README.md

File metadata and controls

48 lines (33 loc) · 1.46 KB

Tez proof-of-payment system

The purpose of this project is to deliver reliable, robust payment receipts on the Tezos infrastructure, while minimizing chain usage and maximizing privacy.

Payment receipt contents

The receipt needs to be easily human readable, for purposes of signing. The general text format is as follows:

Payment slip for {amount} mutez to {destination address} with message '{message}' and on-chain locator {opg_hash}[.{op_index}.{internal_index}]

The message field differs between requested payments, where it is a server-side payment id, and peer to peer transfers, where it can be an arbitrary message. The current iteration focuses on using server-side ids.

Architecture

Serverside

Components

  • Transfer indexer: indexing the receiving address
  • Cleanup worker: /NOT DONE/
    • Refunds unclaimed transfers (minus fee) via Peppermint
    • Cleans up timed out payment processes
  • Payment processor class:
    • Records payment processes (from store / backend)
    • Records payment receipts (from user / frontend)
    • Provides confirmation of payment
  • Peppermint
    • Originates transfers

Clientside

Components

  • Client
    • Taquito
  • Server
    • Payments DB
    • Payments data access layer
    • Que-pasa
  • Blockchain
    • Paypoint contract

Behavior

SERVER - [saves payment record to DB] and sends data to client CLIENT - [assembles transfer object] and sends transfer SERVER - [queries Que-pasa for payment fulfillment]