The main usecase in the service is the Buyer-Seller communications, where f. e. Buyer is a man who wants the service, and Seller is a woman providing it.

Usecase of Buyer-Seller communication starts when Buyer found Seller who can meet his needs:

  1. Buyer creates Multisigned Reserve (temporary) wallet and transfers SSIO tokens to it; adds Seller’s public key to a multisignature
  2. Buyer signs the Payment transaction with his signature (Signature 1 of 2) and generates QR-code (signed data)
  3. [Chat usecase]
  4. [Cancellation usecase]
  5. Seller scans QR-code when they meet, just before service is realized (Seller gets Payment transaction with Signature 1 of 2)
  6. Seller adds its own signature (Signature 2 of 2) to Payment transaction
  7. Payment transaction is committed and SSIO tokens transfer to Seller (release Payment transaction)
  8. [Feedback usecase]
  9. After 48 hours the Reserve wallet returns tokens left on both to Buyer and Seller proportionally (Timeout transaction). That means if service was realized, there will be 0 tokens returned.

Chat usecase:

  1. Buyer/seller makes the cheapest transaction to Reserve (temporary) wallet with message (or permission to view some of profile’s data) and encrypts it with recipient’s public key so only the recipient can decode the message. This type of transaction has a comment with messagepack “ENCODED_MESSAGE: message_encrypted”.
  2. After 48 hours the Reserve wallet returns chat transactions tokens both to Buyer and Seller proportionally.

Feedback usecase:

  1. Buyer/seller makes the cheapest transaction to Reserve (temporary) wallet with feedback and encrypts it with own private key so anybody can see the feedback and reputation. This type of transaction has a comment with messagepack “FEEDBACK: feedback_encrypted”, and can be accepted if there is a release transaction already.
  2. After 48 hours the Reserve wallet returns feedback transactions tokens both to Buyer and Seller proportionally.

Cancellation allows to cancel the transaction and return tokens before 48 hours time period. Cancellation usecase differs, depends if it was sent from Buyer or from Seller.

Cancellation usecase by Buyer:

  1. Buyer makes the cheapest transaction to Reserve (temporary) wallet with cancellation multisigned transaction and signs it. This type of transaction has a comment with messagepack “CANCELLATION_REQUEST_FROM_BUYER: Signed transfer back (cancellation) transaction | Signature 1 of 2”.
  2. Seller, if she accept cancellation, signs it (Signature 2 of 2), so Reserve (temporary) wallet commits tokens transfer back now.
  3. After 48 hours the Reserve wallet returns cancellation transaction tokens both to Buyer and Seller proportionally.

Cancellation usecase by Seller:

  1. Seller makes the cheapest transaction to Reserve (temporary) wallet with messagepack “CANCELLATION_REQUEST_FROM_SELLER”, which automatically runs Cancellation usecase by Buyer.
  2. After 48 hours the Reserve wallet returns cancellation transaction tokens both to Buyer and Seller proportionally.