# neveko-market

![market](../assets/vendor.png)

## High-Level Order Lifecycle

* vendor adds a new product with description and price
* customer orders product
* vendor creates order, multisig wallet and prepares it

|        | prepare | make | exchange |
|--      |--       |--    |--        |        
|vend    |     X   |      |          |          
|cust    |         |      |          |          
|med     |         |      |          |          

* customer saves prepare info from vendor, creates multisig wallet

|        | prepare | make | exchange |
|--      |--       |--    |--        |        
|vend    |     X   |      |          |          
|cust    |     X   |      |          |          
|med     |         |      |          |          

* customer sends both prepare infos to mediator
* mediator creates multisig wallet, prepares and makes it

|        | prepare | make | exchange |
|--      |--       |--    |--        |
|vend    |     X   |      |          |
|cust    |     X   |      |          |
|med     |     X   |   X  |          |

* customer makes multisig wallet and sends both outputs to vendor

|        | prepare | make | exchange |
|--      |--       |--    |--        |
|vend    |     X   |      |          |
|cust    |     X   |   X  |          |
|med     |     X   |   X  |          |

* vendor makes and calls to exchange multisig keys

|        | prepare | make | exchange |
|--      |--       |--    |--        |
|vend    |     X   |   X  |      X   |
|cust    |     X   |   X  |          |
|med     |     X   |   X  |          |

* customer sends output to mediator who then exchanges multisig keys

|        | prepare | make | exchange |
|--      |--       |--    |--        |
|vend    |     X   |   X  |      X   |
|cust    |     X   |   X  |      X   |
|med     |     X   |   X  |      X   |
        
* customer funds wallet and exports to vendor and mediator
* vendor and mediator import multisig info
* customer signs multisig txset and sends to mediator
* mediator requests tracking number from vendor
* mediator relase signed txset to vendor
* vendor signs and submits signed txset
* in case of dispute the mediator can sign multisig txset for customer refund

Reference: https://resilience365.com/monero-multisig-how-to/