Welcome to ConsenSys Academy's overview of Viant , a block chain based platform for modeling business processes, tracking assets and building the supply chains of the future. The genesis of Viant occurred almost two and a half years ago when Kishore Atreya amongst others joined ConsenSys and founded our consulting practice. After starting the consulting practice at ConsenSys, this was early 2015, we embarked on three significant engagements, one in health care, one in oil and gas and one in language histories. We learned quite a few things, primarily around commonalities in terms of how assets are required to be tracked, managed and create a sense of transparency on the the flow of assets. So, with oil and gas, it was all about tracking samples from captured through analysis and decision making. In health care, it was all about tracking vaccines from the point of sponsorship through administration, where healthcare workers would need to administer these vaccines to the end recipients. We observed that there are enough commonalities that assets could be generalized tracked through a platform based on experiences in consulting with healthcare, oil and gas and land registry systems. We started Viant in early 2017 and to build a platform that is asset and industry agnostic. Before Blockchain, it wasn't possible to create a tamper-proof asset tracking system for all participants to instantly trust, or reliably validate asset ownership chain of custody and proof of origin. Blockchain offers a number of benefits over traditional and legacy systems, but companies and organizations typically use Viant to do three things, improve transparency, better comply with regulations and unlock business value. Front-and-center is Viant ability to flexibly configure the supply chains, assets, attributes, processes, actions and roles and permissions. At its core, Viant allows business analysts a way to model their supply chain processes and assets. Click a button and automatically generate a clean user interface, and back-end smart contracts on an Ethereum based platform. This ensures transactions are cryptographically secure and enables the creation of a single source of truth for inside of marketplaces. As you can easily imagine, there's a huge need for provenance and fun products where this consciousness about using organic goods or eating food that is sourced in reliable places isn't becoming hugely important for the consumers. So, with Viant, we have one, set of the platforms that we hope that most of the food we eat or the goods we wear are coming from sources that we want to come from. We have validated this to a variety of experiments primarily a beta program with many leading organizations that are advancing that thinking in order to use this platform as a generic infrastructure for tracking their goods and managing their goods to the supply chain. Our current users have seen increases in revenue, reduction in cost and risk, and increases in customer satisfaction. On a higher level, entirely new business models can be unlocked with this new technology, and it's one of the things that we're looking most forward to enabling. Nearly everything that you can track is a line of supply chains, and for context, this is about 3 fourth of the GDP which is about $75 trillion worth of goods, which we hope will be tracked and managed through Viant. Welcome to a demo a Viant. But before we start, let's meet the team responsible for building the platform. I am [inaudible] , I am front-end engineer at Viant, I am based in Fagaras, Romania. My name's Tom [inaudible] , I'm a front-end developer at Viant, I'm based in Edinburgh in Scotland, and I'm really excited to be working on the supply chains of the feature. My name is Robin. I'm a front-end developer for the Viant team, I am based in Chile. My name is Adam Meola, I'm a back-end developer at Viant, I'm based in different cities throughout the world. I'm Connor Keaton, I'm an engineer for Viant based in Chicago. I'm passionate about the project because I believe it has the potential to be one of the more impactful applications for block chains. Now that you've met the rest of the team, we can get started with the demo. Today we're going to be modeling the beverage order process. In the process shown here, the asset is the beer and the actors or the purchase manager, the warehouse, the factory and the truck driver. The purchase manager creates the beer order before sending it to the warehouse. If the warehouse has the beer on hand, they can ship the beer. Otherwise, they must rely on the factory to fulfill the order. The factory will blend and fill the beer before sending it through quality control, and if quality control rejects the beer, the factory must blend and fill another batch. But if quality control accepts the beer, the factory can ship it and the truck driver could deliver it to the customer. The states that will be recorded on Viant when we model the process include, the order created, blended unfilled, QC rejected, QC accepted, beer shipped and beer delivered. As mentioned earlier, in this example, the asset is beer. Assets are given a unique ID and contain attributes or valuable provenance data which are immutably recorded in the block chain. We will define attributes for each state of the process, and the attributes for the order created state include, a string attribute for product, a drop-down attribute for type and a number attribute for the quantity. For the blended and filled states, the attribute is an asset relationship for the base, and asset relationships allow the users to tie assets together. In this case, the beer is produced from the base. So, the base is considered a parent asset. Other examples could be an airplane which is made up of many components including an engine. The engine or child asset would be tied to the plane, in this case, the parent through an asset relationship. For the QC rejected or accepted state, the attribute is a string defining a reason for rejection. The beer-ship state includes a number attribute to define the shipment number, and finally the beer delivered state includes a file attribute for customer signatures. Viant uses IPFS or interplanetary filing system which acts as decentralized storage. So, remember that all of these attributes will be tracked in the block chain, which means a single source of truth is created and shared, and instantaneously visible by all parties involved. So, now that we've reviewed the process and flow and attributes, we can start modelling in Viant. So first, we will log into the app as an admin and then click on "Modeler" to define the process. Start by clicking on "Defined process" and giving the process a name, we're going to be calling this the beer order process. Next, we need to add the states we defined in the process flow earlier. The first state is order created, and it's very important that we define this as an initial state. The next state is Blended and Filled, which is middle state, so we will mark it as such. Then we have QC rejected and QC accepted. Both of which are also middle states. The next state is Beer Shipped, another middle state. Then finally, we have Beer Delivered state, which is the final state, which has no subsequent states. Now that we've entered in the state names, we can confirm the order of the states. From order created, we can either go to beer shipped, if the warehouse is inventory, or blended and filled, if the factor needs to produce more beer. So, we will select both options. For blended and filled, we can go to either QC rejected or QC accepted. If the state is QC rejected, the only option is blended and filled. If the QC has been accepted, then the next state would be beer shipped. From beer shipped, we only have one option, which is beer delivered. Now that we've confirmed the states and that the orders are correct, we can press save. It's just that easy. You'll now see that the beverage order process is in the pending stage. So we can click on the magic wand, which is actually a magic wand on the platform, which will deploy the process to the blockchain, and boom! there it is, deployed just that easy. Now that the processes have been defined, we can define the asset. Start by clicking on define asset in the action bar, and let's name this asset, "Beer." We can then tie it to the process we just deployed by selecting, add process. Naming the process and selecting beverage order process from the drop-down menu. Now that the process has been tied to the asset or bound together, we can start adding the attributes. The first attribute is the state attribute, which we call "Product." Next, there's a drop-down for type. So, we'll add IPA, Lager and Stout as value options. Then we'll add a number attribute for quantity, the asset relationship for base, the string reason for rejection, and the number attribute for shipment number. Then finally, the file for customer signature. So after all of these attributes have been added, we need to define whether an attribute is invisible, read only, editable required or editable optional for each day. For example, the product type and quantity should all be editable required in the order created state. All other attributes should be invisible because they're irrelevant at this time. We'll continue this process for the remaining states. When the beer is blended and filled, the product, type and quantity will all be read-only, but the base needs to be editable-required. The reason for rejection, shipment number and customer signature should all be invisible because they're irrelevant states. When we ship the beer, the product type and quantity should all be read-only including base, but the reason for rejection is invisible because it's an irrelevant field. And as we're shipping it, we should include the shipping number for an editable-required field and the customer signature should also be invisible. For reject QC, the product type, quantity and base should all be read-only again, and the reason for rejection should be editable-required. The shipping number and customer signature, again, are irrelevant fields at this time. Moving on, I think you get the flow by now. When you accept QC, the product type and quantity and base should be read-only. The reason for rejection should be invisible because it's been accepted and the shipment number and the customer signature should also be invisible. Finally, when the beer's delivered, the only field that we have as an editable-required field is the customer signature. Now that the attributes have been defined, we can confirm the view action shows read-only for all attributes before clicking Save. When you click save, you can see that the asset is in the pending state and needs to be deployed to the blockchain. So again, click the magic wand and let the smart contracts in the user interface auto-generate. Now, let's move to the roles, users and permissions section. In the smart builder, select user settings in the action bar and then roles. Click on add role and type in the name and description. Factory can be used in both cases or you can add a specific description for whatever role you choose. Now, we go back to the settings and select users. Let's keep this simple and enter "Factory" for the username and "PW" for password. Select the role and then hit save. Finally, we need to create permissions for the factory. So, back to settings page and select permissions and then set permissions in the action bar. The role in this case is factory and the asset definition is beer. The factory should have permissions to view all, blend and fill, accept QC, reject QC, and ship rights. These are all also demonstrated in the visual and the swim lanes that we showed before. Now that you get the flow, we'll add the additional roles and users. So, the purchase manager will be Paul M, the factory will be factory, which we have already defined. The warehouse will be Warehouse and the truck driver will be Bill. All with PW for passwords. Now that we've defined the process and asset and set the roles, users and permissions, we can get to the fun part of tracking the asset. So, let's log out the admin and log back in as a purchase manager, Paul M, so we can start the process by creating an order. When logging in as Paul, you'll see he only has access to the beer asset, not the modeler, not the smart builder. This is because he's only using a tracker. So select create order in the action bar and then type in shock top for the product. Select IPA for the type and enter 500 for the quantity before hitting submit. Paul's job is now complete. We'll switch hats now and let's assume that the warehouse doesn't have any beer on hand, so that the factory has to blend and fill the order. Log out as Paul M and log in as the factory. Select the asset that's in the order created status and select, "blend and fill." Populate the base field by selecting from the list and then we'll hit save. This is where that asset relationship attributes comes into play. Now the beer can either be accepted or rejected during a quality control. So, now let's pretend the factory did an awesome job and hit accept, to move it to the beer shipped State. Enter the shipment number 984658 and submit. Finally, we'll log in as Bill, to move the beer from the shipped to delivered state. Again, we'll bring a different hat now. Select asset and hit deliver beer in the action bar. Now we have to upload a customer signature and hit submit, this is a file upload and it's integrated with IPFS. The asset has made it through the entire process and will now show the beer delivered State. Select the asset and click on view to see a history view detailing the who, the what and the when of each action. That concludes the demo. Thank you for watching and visit viant.io to learn more.