To begin with, the customer selects the 3D model they want to print in the marketplace. Having decided upon the model, they go on to select the printer which they would like to use (1). The choice of the printer is based on various criteria: the cost of the printing service, geolocation, technology and print quality, the estimated order execution speed (see below), ratings and reviews, SLA, printer ready state for taking the order, etc. The system calculates the total order cost taking into account the cost of the 3D model and printing.
The generated order is paid by the customer and sent to the print. At this point, smart contract transaction containing the order information is created. In particular, the transaction contains such data as the total order cost and the cost of its individual parts (model, print), the addresses of the customer's, contractor's and modeler's purses, the 3D model ID, the time of order sending and other necessary information. Transaction enters the smart contract (2), the funds are frozen. At the same time, a request to the decentralized file storage is formed for the model to be uploaded and transfered to a decentralized slicer, which parameters were set beforehand by the printer's owner (3). The model goes through the process of conversion to the driving G-code and then comes to the contractor transformed (4, 5). A transaction is formed with the time of order receipt by the contractor and the estimated time for order execution, taking into account the time of printing, the parcel formation and the product delivery. Data is sent to a smart contract (6). Rules for time calculation (see the section "Calculation of order execution time").
Depending on the condition (ready state) predetermined by the contractor, the printing process starts automatically immediately (carried out with the help of a special client) or expects to be started manually. On contractor's side, after printing starts, a transaction with the printing process start time is generated and sent to the smart contract. If during the printing for some reason the process has stopped, then the information about the stop time with the action code is sent to the smart contract. On the basis of action code, the smart contract decides (7) to wait for the process resumption or to terminate the order with a refund to the customer (8).
The information on the time of successful completion of printing is also sent to the smart contract and the contractor starts forming the parcel to send the finished product to the customer (9). The fact of order sending is also reflected in the smart contract.
The payment between with the owner and the modeler is carried out by a smart contract either after the end of the accounting time or if the customer has fixed the fact of product receipt in the system (10).
Differences are resolved by the dispute opening. Prior to the precedent exhaustion (through the service arbitration), the funds remain frozen in the smart contract, the time counters are stopped or updated.