Lynx payment.

Lynx payment.

Lynx offers a sophisticated feature which allow both a merchant and its customer engaging in a mutual transaction, to check independently the transaction integrity at every step.

The theory

First steps
  • First the merchant's device builds a blank transaction with the details asked by the merchant : the amount and the blockchain where the transaction must happen.
  • The merchant's device then encodes the blank transaction in a QRcode which is then scanned by the customer.
  • The customer's device then displays the transaction details to the user who then agrees to sign the blank transaction with his address.
Final steps
  • The signed transaction is then sent back to the merchant either through airwaves (by default) or through QRcode.
  • The merchant then checks again that the signed transaction is identical to the one he sent.
  • He then checks if the address really has enough money to pay the amount.
  • And finally he checks the signature of the transaction.
  • If the signature is correct, he then sends the transaction to the blockchain.

The practice

Selecting the blockchain

  • The merchant first taps on Demand payment and selects the blockchain.
  • Each blockchain shows the approximate fees the merchant will pay for the transaction.
ℹ️
  • For a regular Send. transaction(or for virtual blockchains), the sender will pay for the fees. However, for the payment feature on native blockchains, they will be paid for by the merchant.
  • For virtual blockchains, if the fees paid by the sender are larger than 5 $, they will be displayed at the bottom during signature phase.
  • You get the displayed fees if you tap on the black text, they are already set to be enough. But the bigger the fees you pay, the faster and more certaintly your transaction will get settled : If you are going to make a sensitive transaction, you can double the fees by tapping the red symbol left of the fees.
  • The standard fees fluctuate consistently in accordance with the level of blockchain saturation.
  • Each blockchain also has an average confirmation time, that you should take into account when picking one.
  • These confirmation times are fixed by the developers, here is a list of these for the currently supported blockchains :
    • Bitcoin : 10 minutes
    • Ethereum : 12 seconds
    • Polygon : 2 seconds

Entering the amount

  • The merchant first taps on Demand payment and inputs the blockchain and the amount asked. Tap on the amount to input in native currency instead of USD.
  • Every transaction on blockchains costs a bit of fee to support the network, at this point the merchant's device will freeze the fees.
  • He then taps the shape and he shows the resulting QRcode to the customer.
  • The customer then starts Make payment feature, and scans the QRcode (The phone will ask for permission to use the camera, allow access please).
  • Keep your distance : Your phone must not be too close to scan the qrcode. (if necessary, you can press the area on the screen where the camera captures the QRcode in order to trigger refocus.)

Sign

  • The customer can review the details and then tap to sign when he agrees with them.

Transmission of the signature

  • The signature is then transmitted back to the merchant, either by Airwaves (by default) or by QR code.
  • The mode of transmission is determined in the Settings page.
  • While both modes are very secure, the airwave mode is much more practical while the QR code is a bit more secluded and furtive.
  • For the first time by airwave, the phone will ask for permission to access "local network", allow access again please.
  • If by QR code, the merchant will have to tap the QR code on its own device after the signing to enter scanning mode, and then scan the customer's QR code.

Signature check and sending to blockchain

Final check

  • The merchant's device will now :
    • check if the customer's address has enough funds
    • check the transaction details
    • and finally check the signature
  • If there is a failure in any way, then the device show the word FAILURE, you can either repeat the payment or quit.
  • But if everything is okay, then the device shows the word SIGNED

Now this unequivocally proves the good faith of the customer : the given transaction is exactly what you asked, and the customer has absolutely no way to willingly retract it.

There is still an extremely small chance that your fees are too low to be accepted by the blockchain(though this chance is almost zero if you chose to double the fees). To be absolutely sure, you can wait for 1 confirmation after you sent the transaction before considering it fully settled. If it's a very large transaction, you should even wait for multiple confirmations.

  • What to do next when SIGNED is displayed :
    • You can now tap the central shape to send the transaction to the blockchain
    • Then when SENT is shown, you can go back to homepage by dragging down your finger and leave the procedure :
      ℹ️
      If SENT is displayed then your transaction is already saved on the blockchain, it will be processed even if you power off your phone.
    • But if you still feel bothered by the possible rejection of the fees, you can also wait for your transaction to get a confirmation to be settled : on SENT page repeatedly tap the shape to check.
    • When SETTLED is shown, it means your payment has successfully been confirmed and it is then unretractable.

Good to know

  • When you give a payment to a merchant, his device will check if there is not an error first before sending the transaction to the blockchain : if it is not the good receiver’s address, your transaction will never be computed by the blockchain, you won’t lose any money
  • The merchant can input his store's name in the settings page. For every payment he will transmit this name to the customer, and the customer will see the store's name in the transactions in lieu of an obscure address.

How can I retrieve my funds if i lose my iPhone ? Don’t you have a seed phrase ?

Lynx synchronizes with all Apple devices, so all you need to do is to relogin to your Apple account on another iPhone and launch Lynx. You will then get all your funds back, there is no need for a seed phrase anymore !

(only for QR code signatures) Why do i have too many utxo ?

There are two types of blockchains : Account-based blockchains and UTXO-based blockchains(like Bitcoin). This issue only happens with payments done with QR code signature on UTXO-based ones.
To put it simply, with utxos you don't get a large safe with all your money in there, instead you get a new safe for each transaction you receive. And you cannot use too many safes at once for a single payment.

Whenever this happens, make payment with the send function instead.

What you can do is always favor using account-based blockchains over utxo, because in the long run it will give incentive for blockchain devs to drop utxo model. This problem should happen rarely because there are already mitigation procedures, but if you need to prevent it with certainty for the next payment you can send any amount to yourself with the simple send function.

Here is a list of supported blockchains and their types :

  • Bitcoin : UTXO
  • Ethereum : Account
  • Polygon : Account