 People know where it is, but you are now live. I don't know if Ali is able to. I'm, I can, I don't have video though. You don't have video? That's fine. If you'd like kick it off, that's great. We can just do it over audio. Okay. Can you drop that link again, please? Yes. So we're live. If Ali, you want to get started, that'd be great. Yeah. You'll have a start my video actually. It says go ahead and stop. Okay. Well, let me welcome you. Hello, and welcome to all of you. I'm Ali Imdad, associate dean of the Graves Business School at Morgan State University. It's an honor to work with David Boswell and Ray Jones of Hyperledger and Linux Foundations. And we're also proud to be an associate member of the Hyperledger team community. This workshop, a two-part series workshop was in the working for several months. And the community leaders at ChainYard worked with Hyperledger and Morgan State, the National Fintech Center to plan this workshop. And we want to thank Mohan Venkataraman and Issa Konko and the others, the team from ChainYard who worked tirelessly to bring this workshop to you. You learn about the foundations as well as the fintech important developments in the NFTs and what NFTs are about, what the market is doing, and also the auction platform to use. Our goal is to promote the learning among all HVC use historically black colleges and universities, students and faculty. And we will make this workshop recording available to all of them to using their courses and classes. Thank you again. Look forward to the second part of this workshop. All right. Thank you, Amdath. And Bill, I would like to introduce myself. I am Mohan Venkataraman. I am the CTO of ChainYard. ChainYard is a global blockchain services company and also has its own platform. Start my video. Somebody wants me to show my face, okay. All right. And so we also have a solutions group which is called Trust Your Supplier. It is a joint venture with IBM and it's a separate entity. So for those who are interested, there are links posted on the bottom. So as the CTO of ChainYard, I focus primarily on the technology aspects of our blockchain practice, which includes working on Hyperledger technologies as well as Ethereum and other blockchains such as Binance or BigchainDB. Along with me, I have my colleague here, Puneet. And Puneet, can you introduce yourself? Hey, everyone. Good morning and thanks for joining in. This is Puneet. I am a business analyst with ChainYard and I work on blockchain technologies and all the decentralized crypto world here. So thanks a lot for joining in. Right. Before I begin, I do want to thank a number of people who have worked with me on this particular workshop number two, especially I would go back and flash. Ashish Shrestha, Puneet Singh, Dilip Banjanath. He's been core to our developing the workshop code itself. Sahil who has been working on the user interface, Rajesh Sanjeevi, who has helped us with the configuration of the infrastructure on AWS. Myself and obviously a lot of thanks to Rai and David for helping promote this particular exercise and jointly help us to work with Morgan State University Fintech Center to bring this to you. With that, what I would like to do, David, is to turn it over to you on how do people engage with Hyperledger Foundation? How can they collaborate? How can they work with the labs? How can they use the code that we are contributing? Please. I think I'll take that. So if you want to engage with the Hyperledger Foundation, we're on GitHub primarily. So if you go to github.com slash Hyperledger, you will see all our resources. The labs are in Hyperledger dash labs and this lab is in the NFT dash workshop repo and there will be links posted for that in a moment. We are looking for people that are interested in working on code and docs. We are also interested in people that we have a very robust meetup program and it's worldwide. We have a bunch of them running every day and if there is something that is interesting to you, feel free to shoot us an email, community-architects at hyperledger.org or ask us on Discord. Thank you. All right. So I think now we get into the main portion of the rest of the agenda. Before I begin, I'm trying to play with my mouse here. So there's a certain layout of this particular presentation. We have tried to organize it to make it more relevant to the hands-on exercise that we will be doing and we also try to make sure that there is connectivity to the previous workshop, which is workshop one. So we've tried to do something that is a hybrid that allows everybody to recap what they learned previously but we are not going to deep dive into what was already said before. We will look forward and any questions that you have, we are not taking live questions at this point, please channel it through the Discord channel that we have provided. Now, if I might, we did have Arno on as well to give a quick, is that later in the, is Arno? Please, go ahead. All right, right, go ahead. Yeah. Hey, hey, over there. So actually I have a slide maybe I can show. I just wanted to give people a bit of, I mean, I saw that on the workshop page, you guys did a good job at putting out some of the basic information pointers to the different pieces relevant to fabric. What Wright just talked about is essentially, you know, general information with regard to hyperledger and how to engage with the hyperledger community. Within hyperledger, there are many different projects. I'm personally primarily involved in hyperledger fabric. I'm one of the maintainers of some of the repositories related to fabric. And so I just wanted to give you an idea of what you can expect when it comes to engaging with the fabric community itself. So, you know, we have, first of all, so I actually put a QR code there. I hope you see it. This is, you know, a wiki page actually that provides all sorts of pointers to, and that we try to keep, to maintain, to have the latest information because, for instance, we just changed chat systems from rocket chat to discord. And so this is the place where you can go back to find the latest information. But in particular, it will give you the first and most important link you will need to get started is the link to the documentations and the samples. We have a very extensive documentation that is available that addresses different persona, depending whether you're just a user, whether you actually want to contribute. And it addresses the different scenarios and application development. If you're focusing more on the chain codes like smart contracts, or if you're more on the client side, if you're more of a network operator, all these different aspects are being addressed in the documentation. And it's actually available not only in English, but in different languages, thanks to great contribution from a very broad community out there. We actually have a whole set of samples that used to be fairly organic. And as of last year, we went through an effort to make that much more streamlined so that it actually takes you in a kind of linear way through the main features of fiber ledger fabric so that you can learn progressively the different complexity. I mean, fabric is fairly complex because it's meant to be a general purpose blockchain framework that you can use for many different types of applications. And therefore, one size doesn't fit all, as we say. And so there are quite a few configurations possible and different ways to use hyper ledger fabric. So the samples try to cover all the main fabric features and kind of, as I said, take you through a progression path. At least here, the main repositories, fabric is where the whole framework really resides. But fabric samples, as I said, it's, you know, as a developer, as of an application, is probably where you will want to start. And then there's the fabric gateway is kind of like the client APIs, the SDKs that you're going to find and use to program against the fabric network. We actually support officially three different languages. Fabric is written in Go, so that's one of the SDKs, but we also support Java and Node.js. And that's true both from the client side application point of view, as well as the smart contract implementation because unlike some blockchain framework or technologies that require learning a new language that's specific to this type of technology in fabric, one of the principles designs behind fabric was to allow and support general purpose programming languages. And so if you find bug reports, or if you want to try to, you know, work on fabric, a good way is to look into GitHub issues. We use GitHub extensively and we use issues. So you can issue, I mean, obviously raise issues. It's not recommended. Some people use that to raise questions. That's really not the best way. It tends to pollute a little bit the GitHub issues. We have other ways to ask questions. GitHub issues really should be about problems you have actually encountered, not in how you use the framework, but really bugs that are in the system. And as I said, it's often a way to also engage. If you're looking for something you might be able to contribute, you can look in the list of issues and you might find some issues that are actually quite addressable depending on your skills and your interests. And for big issues or rather for, you know, bigger enhancements that you want to propose, we actually have a different process called the Request for Comments, RFCs. And so it's not very wise to start submitting a pull request which is massive that will add a whole set of new features or like massive amount of code. So instead of investing a lot of time in putting code together and a pull request, before you know the community is going to welcome this kind of contribution, it is wise to open an RFC, go through this process where basically you're documenting what you're thinking of doing and getting feedback so that you already know and you may get feedback on, you know, how to make some, maybe some adjustment in how you would address the problem before engaging in developing the solution and making a contribution through a pull request. So in terms of communication, we primarily use three different ways, Discord, which we are using today with the workshop channel. And we also have a very active fabric mailing list and we have every other week a contributor's meetings where the latest development, the roadmap, you know, the release schedule is being discussed. And so it's a good way to also get acquainted about what's going on in general with the development of fabric. And I just wanted to also finish with pointing out as Ray pointed out earlier, we have the projects within Hyperledger such as fabric, but there is also labs. These are not formally endorsed by the technical steering committee, but they are like areas where the community can easily experiment and, you know, do kind of try balloons type of development. And there are several, many actually labs that are related to fabric that adds different aspects that you won't find built into fabric. So I have put the URL there. And again, I welcome you here and I welcome you in the community. I look forward to seeing you around and I hope you enjoy the workshop today. Thank you. All right, Anna, thank you so much. You know, I missed that portion, that 15 minutes, you know, somehow in, because I was trying to keep myself mute and not look at messages, but that was a very good overview. That was a very good overview because we've been associated with Hyperledger fabric right from the day one, you know, when it was called open blockchain. So we've seen the evolution of fabric from a very simple blockchain to what it is today, an enterprise-grade blockchain technology. So obviously it is a little complex, but once you get a hang of it, it's really very exciting to use fabric. So I think that was a good one and people should try out Hyperledger fabric. We also know Hyperledger Bezu, we have experience with Ethereum, so I think it's a good, very good technology and obviously it's been there longer than fabric, but both are very good technologies nurtured by the Hyperledger Foundation. So thank you so much for that. I'm gonna reshare my screen and we are gonna breeze through because I'm watching my watch as well here so that I don't go off track. So share my screen again and go back to this, okay? All right, so moving on, the first part I was saying is over now, part two, we are gonna recap the NFT concepts. In workshop one, a lot of material was presented almost for three hours or two and a half hours of on what is blockchain and what is NFT and various use cases. So we are gonna build upon that and recap some of the concepts that they mentioned, but in a very crisp and shorter way because our focus here is gonna be on how do you build NFTs on Hyperledger fabric. So that's gonna be the main focus of our entire exercise today and I hope people enjoy it. The course is very simple and Puneet will talk more about it later. Moving forward, what we will talk about today is what's the objective of this workshop. After recapping, we'll go through what the auction application itself is, what is the purpose of building it, what is the process flow, the data model, application architecture, I don't need to read it. We'll also touch upon, because people always relate NFTs to ERC 721 and tokens to ERC 20. So we wanna touch upon and say the version of fabric NFTs that we have built versus what is the fundamental difference with ERC 20 and 721. And obviously, the industry came together sometime back two years ago and called the Interwork Alliance and they built what is known as the Token Taxonomy Framework. That also helps one to define tokens. So we'll touch upon that briefly. And finally, Hyperledger fabric, how does Hyperledger fabric look like? Basic architecture followed by part, the next part, which is part three, the course structure and the workshop itself. All right, so you will get to learn NFT concepts. Once again, recap what we learned, hands-on experience and insight into the course structure. So the goal here is to see how much, how can we relate the example that you're gonna play around with to actually how do you write software? I mean, a lot of people have seen OpenSea and other technologies radables where one gets to use the technology, but they do not know how exactly under the covers do you write something like that? So we wanna get inside the code and see how exciting it is to write code. Skip this and let's move on. So there are many concepts that were talked last week, right? I mean, like there was a mention about blockchain, there was talk about fungible tokens, non-fungible tokens, what are tokens themselves, what is gas, what is an asset? So there are many concepts that actually come together when we talk about NFTs. So we wanna just recap how they all come together and how do they play a role in building non-fungible tokens. So the first one there is assets. Fundamental to NFTs or even building a blockchain application is the asset. And a way back, IBM had a tool called the Composer and the Composer starting point was what is your asset and what are the transactions that operate on an asset? So assets are fundamental to NFTs and asset is anything that has got value, right? So a car has got value, a digital art that has got value, digital music has got value. So asset is anything that has got value. It can be physical like a laptop or it can be digital like music. So assets are digital or physical. Now some assets, they do depreciate in value over time. So if you buy a new car and it comes out of the lot, it depreciates automatically. Whereas there are certain assets that appreciate in value over time. There are pieces of collectible art that appreciates value over time. But needless to say some assets depreciate, appreciate in value, depreciate. You can see this little zigzag thing. For example, take the physical asset cars, right? So cars typically depreciate in value. But what has happened now is there is a scarcity of chips in the for the auto market and that has created a scarcity of cars. So today used cars have got a higher value than what they would normally trade out. So it's not necessary that assets always depreciate in value, but they do show this pattern of depreciation, appreciation and depreciation as a cycle. But there are certain assets that only appreciate in value over time and they are like typical collectibles. Now two assets of the same kind or family may have different value. So for example, once again, I'm gonna use the car example in this page. So for example, there are two cars or both are 2022 models of a certain brand, let us say the Acura MDX 2022. But then each one is unique because each one has a different win number. So they are unique, but one may have a higher value because of whatever characteristics are associated with that particular win number versus another one. It could also be because the second win is being traded at a lower price than the first, even though there is fundamentally no difference between them, but we'll talk more about this. But the point to remember here is that two assets of the same kind within the same family may have different value. And in NFTs, you will see that all the time. You'll see copies of baseball cards, digital baseball cards and you'll see one is more valuable than the other one for whatever reason. And finally, assets can be classified. You can classify assets into fungible and non-fungible tokens or rather non-fungible assets, okay? So let's move on and just see a little more about what is fungible and non-fungible assets, right? So fungible asset, right? A fungible asset is something where the asset is interchangeable with another asset of equal value, you know, equivalent value. So a good example would be adding for stock award last week is that if somebody, if Alice lent me a $10 bill, you know, a single bill, $10, you know, either I could repay Alice with an equivalent amount that could be another $10 bill or it could be $10, $1 bills or it could be $2, $5 bills. So in this case, $10 is equal to $10, $1 bills or $2, $5 bills. So the dollar is a fungible asset. Now, if you take non-fungible assets is exactly the opposite. Each non-fungible asset does unique. You know, it's got a unique identity. It cannot be substituted with another asset, even though it has got identical characteristics or value. So non-fungible assets are unique. They have a unique identity. For example, a laptop has got a serial number. A digital art has got a Q number, a Q number that is very unique to it, including its characteristics. Now I was asked to say like, you know, give me some examples, you know, obviously if you take digital art, you know you can take two copies of digital art and they may fundamentally have different value. Let us see, what can an example be? So if we take NFTs or non-fungible assets, let us say, so copy number one may have actually been owned by some well-known personality, Bill Gates. And you can see that it was owned by Bill Gates but then it went into another celebrity and now you want to acquire it. That particular copy may have a much higher value than another copy that has just been through a regular commercial chain. You know, I think like people attribute value to certain assets based on its characteristics, its life cycle and history. And sometimes you can see that there is a clear logic in why people are willing to pay more for one copy versus another copy even though they both look identical. The other example, and I was chatting with Puneet the other day and he was giving me what he has seen in the market. So there are cases where digital art, the artist may say the first five copies or the first copy that is sold, he would give a special privilege like a lifetime free visit to the Louvre in France or a lifetime visit to his gallery. That could be certain incentives associated with some of the copies and that makes them more valuable than another copy of the same asset. Any questions, please direct it to the discord channel and somebody will answer this, right? Because these are like fundamental concepts and any misunderstanding here could not, it's better to clarify earlier than later, right? So we talked about assets and we talked about fungible and non-fungible assets, right, so why are we talking about assets? We will come to that later. Now let's look at our whole topic is about non-fungible tokens. So fundamental to whether it is tokens, non-fungible tokens or this entire business transformation is blockchain. Blockchain came in along with Bitcoin and then it got prominence when Ethereum came into the public chain with smart contracts and later on Hyperledge Foundation formalized it for enterprise problems. So fundamental to NFTs is blockchain because it provides the underlying infrastructure as well as certain capabilities and features that enable non-fungible tokens. Blockchains also enable to want to track the true owner of NFTs. Who is the owner of non-fungible tokens? So blockchains provide that provenance that is necessary to review their life cycle, blockchains also provide the audit capability of who is the owner of the NFT and it is easy to track. The other is being the blockchain being an immutable ledger, which means append only, where once a return it cannot be changed. It somehow makes it difficult to make copies or forgeries because of the very nature of the technology. And lastly, non-fungible tokens are assets, right? Ultimately, each non-fungible token is related to some asset. Now, the asset itself sometimes a very, very expensive asset may be very difficult for its single party to own. So there are concepts nowadays and you will see this in the real estate market or even in very expensive art, whether it's digital art or physical art, that there is fractional ownership and how is fractional ownership enabled through fungible tokens? So one could take the value of a non-fungible token, which could be a million dollars and then meant equal amount of fungible tokens and then distributed to people who want to have a collective ownership of that asset. At the bottom, you see some bulbs, you know? And the idea here is that when you go back, please go through these concepts at your own pace, Google or try to understand them that for a blockchain, there are several characteristics, immutability is very key consensus, which is the agreement on what is written into the ledger, smart contracts, which is core to programming business rules and transparency and privacy. So go back and recap these concepts at your own pace. So that's what the whole box at the bottom is for. On the right side, I have a picture for entertainment purpose. This particular picture has got 30, what do you call, bands or music groups and you can at your own pace, try to discover which of those 30, one of them is the Eagles. So, all right, now we come back to tokens. So when we talk about tokens, we often have to talk about blockchains because blockchain is the fundamental ingredient that enabled tokens tokenization and these concepts. The, in our application, we use the business object or NFT object, that's what is listed on the top. Now let's talk a little bit about tokens. What is really a token? I mean, it sounds very fancy. I mean, we're all in the information industry. A token is nothing but a piece of data that is managed by an instance of a smart contract. So there are smart contracts and each token is managed by a smart contract and tokens are nothing but pieces of data. And you will see that as you explore behind the scene, what is the attributes that make up a token, right? And we have examples later on when we talk about ERC 20 and 721. Now you can classify tokens, right? Tokens have been classified as crypto. You're very familiar with crypto like BTC, ETH, authoritarian, DOT, all these crypto tokens are crypto. You have security tokens. Essentially security tokens are non-fungible tokens usually associated with earning certain, what do you call dividends or interest on possessing those securities? They give, it's almost like investment. There are usually tokens that you use for buying or paying for services. And now you often hear about central bank digital currency. So CBDC is now getting a lot of traction. Essentially it's been receiving traction ever since the blockchain came into play and people have been trading with crypto. So CBDC stands for the central bank digital currency and you must have heard how India is pursuing the digital rupee or the US government is pursuing the digital dollar and China is pursuing digital yuan, right? So they're all CBDCs. Now tokens, we talked about what is token. So let's see what is fungible token. So we talked about fungible assets. So fungible tokens are tokens that are interchangeable with each other. If you really look at tokens, they have a name and a symbol. So ETH is a symbol for Ethereum or Ether. BNB is for the Binance token and that's the symbol BTC. Ideally, if you really think a little hard, even if you look at the NASDAQ, it's a market, most of the shares are listed with a name and a symbol. So fungible tokens, they have a name and a symbol at a minimum. Non-fungible tokens on the other hand have a unique identity, right? They each one is different. They represent a uniqueness in the sense that two of them are not interchangeable. And they also represent ownership rights to what do you call a unique digital or real world asset. So non-fungible tokens. If you look at the right side, I have a visual there. So I show the ERC721 derived, what do you call non-fungible token? No, an ERC721 NFT is actually ideally in it has a relationship to an asset instance, an instance of an asset, a piece of digital art with a unique identity. And that particular instance has got metadata which describes that asset, such as its identity, name, description, I know various other factors that describe that instance. Now, there are two standards that came about and they were actually proposed by Ethereum when it started back in 2017. The ERC20 for fungible tokens and the ERC721 contract template for non-fungible tokens. These two are contracts. Essentially they are templates. You can instantiate an ERC20 for any type of ERC20 compatible token. So if I have to design my coin, I would inherit from ERC20 and instantiate my contract and it will allow me to produce my own token. Those contracts are there for that purpose. Look at the bottom on the bulb. Interesting, you got to go back and look at, if you want to learn more about tokens, you have to dive a little deeper on how do you issue tokens? How do you mint tokens? How do you value tokens? How does valuation happen? How does a token appreciate and value? When Bitcoin was issued, it was probably $10 at least if I recall. And today it is trading at 48,000 or 50,000 sometimes, right? So how does that valuation happen? Listing, how do you list your token into an exchange or wherever? How do you govern the token? How do you monitor its performance? So this is homework for you all. Go back and Google and you can learn more about how tokens really work. It's a topic, it's an advanced topic. We can generally talk about it in another workshop. Next, very important for NFTs to work or for in token to work is the wallet. What's the wallet? It's just a database. It's just like your physical wallet in your pocket in which you're able to keep your credit cards with your secret pens and also maybe cryptocurrency and so on. So a digital wallet is a software application. It's a software application. It can be as simple as a mobile app or it can be a simple database or it can be a wallet, right? I mean, so there are various forms of wallets but wallet is really a software application. It allows the owner of the wallet to store their public and private keys. And the wallet has the ability to interact with the blockchain and monitor your transactions. So if you fire up the wallet, on the right you can see in the visual that is the MetaMask wallet with a specific account number. And if you go to this MetaMask wallet on the top, you know, this account number, if you punch in and say, I wanna see all the associated transactions with this account number, on the left side of this wallet, you can see the BSE scan because right now it is connected to the Binance blockchain, this particular visual. We can connect it to any particular, you know, what you call blockchain technology, Ethereum mainnet, Ethereum testnet. Right now, fabric does not have a direct connection into a public blockchain. So we are showing this visual. But if you can see that with this account number, all the transactions associated with that account have been pulled up. So wallets essentially are able to track your transaction by communicating with a blockchain. So wallet is also your key to access your funds on the blockchain. You know, it has got keys and based on your keys, it is able to recognize which are the funds that are associated with your account that have been associated with your keys and it can pull that up. And a wallet always has an account number. So here is an account number and typically a wallet account number in most cases is derived from the public key of that particular user. Now NFTs, there are certain wallets. I mean, in the past wallets used to support only crypto, but today wallets are able to support and even show NFTs. So Metamask, Map Wallet, Trust Wallet, all these wallets have capability to show the NFTs that you own within that particular blockchain. Whichever blockchain you are located, if the wallet has an interface into that blockchain, it can pull up your NFTs. There are certain concepts associated with wallets. And once again, this is an advanced topic and I would recommend people to go and check. What is a decentralized exchange? You know, you know what an exchange is. NASDAQ is an exchange, right? MX is an exchange. You know, in a New York stock exchange, an exchange. You have central exchanges and you have decentralized exchanges in the crypto world. Like Uniswab. You can also go and learn a little more about how wallets are made. There are deterministic wallets, you know, they're called hierarchical deterministic wallets or linear. You can also go and see what are keys, you know, the keys, public and private keys, how they are created, how do you store, how you have to be very careful in protecting your private key. How does certain wallets give you this mnemonic code of 12 words that you can remember instead of a cryptographically long 256 byte number, you know, signatures and addresses. So these are very important. So any transaction that is sent into the blockchain by the wallet, you know, there are three pieces that are very essential, keys, signatures and addresses. Now, for those who don't understand wallets, think about your bank account. So you have an account number, but then in order to, and so the bank account is similar to the account number here, your private key is equal to the pin, typically that you would use in order to access your account. And the signatures are typically the ones that you sign your checks or transactions with. So you can relate the concept of wallet is no different than what you do on a day-to-day basis. So you have pins and you have accounts and signatures and the same concepts apply here. And then we do want to talk about decentralized finance, DeFi, you know. So no conversation about NFTs goes complete without talking about DeFi. So we have all talked about centralized finance, right? We know how you go to the bank and the bank issues you, controls the amount of loan that it can give you a business. But decentralized finance is where the financing of, you know, the powering the financial transactions through decentralization, through a democratic set of participants who would probably do, it's a better way of doing financial, the financial transformation. So decentralized finance provides a decentralized way of creating instruments for investments or loans or providing capability for people to borrow or even lend to others, right? So it's a whole new science of decentralized finance and it's called DeFi. Now, why do I talk about DeFi? DeFi obviously eliminates third-party intermediaries. So suppose you buy a share in a stock market, you go through your broker who goes through, let us say, a clearing house and the clearing house goes through the exchange back to your broker. So it's a whole set of intermediaries that come into play. So DeFi tries to eliminate third-party intermediaries, right? And if you see your share price goes up and down in exchange, DeFi provides the concept of automatic market makers. So essentially, if you relate two things, let us say the price of Ethereum against the price of let us say US dollars, the price fluctuates and automatic market makers make sure there's a balance between the demand and supply between the two pools of coins. So it's called liquidity pooling. These are new concepts, and you can do asset swapping. There's another way to buy crypto. You can go to a liquidity pool and swap one crypto for another. So these are new concepts. Once again, you had to go and try to learn more if you are interested in DeFi, understand who is an aggregator, what is the liquidity pool and how can you become a liquidity pool investor? How can you borrow from a liquidity pool instead of going to an exchange and buying a Bitcoin or Ethereum and what are automatic market makers? Now, obviously, the DeFi is important for our NFTs because if the NFT is priced through crypto and somebody wants to have some fractional ownership of it, the decentralized financing provides you capabilities by which you can tokenize the asset and the NFT and then you can have fractional ownership of it. So users or borrowers can go to a liquidity pool and borrow funds in order to pay for the NFTs. So there's a whole different set of applications that are available for managing or rather owning NFTs for trading NFTs through DeFi. Now, before I go to this one, okay, let me talk this and I'm gonna give Puneet an opportunity to say anything if I missed because I've been talking continuously and sometimes I may miss things. So but let me cover this slide and then Puneet, okay, I wanna just ask your opinion. So last time I was asked like, what is gas fees? You know, what is public gas fees? You're typically here in public blockchains, right? I mean, so I wanted to have that concept here. The gas is nothing but a, is the amount of what do you call, amount of crypto you had to pay to process your transactions. So each transaction, when you submit a transaction when you as a user submit a transaction to the blockchain whether it is sending crypto from one party to another or you are wanting to buy or sell some assets there is computational resources that are consumed and the resources are consumed. And so the total computational effort is computed in terms of the amount of crypto you have to pay in order to get that transaction processed. So gas fees are nothing but crypto that you have to pay so that the transaction can be processed. Now, giving an example here, if you look at any public blockchain transaction, a user will have to, when a transaction is called let us say you submit a transaction like send. So send something to something. So there is a sender, there is a recipient that is the whole transaction payload or the attributes that constitute the transaction itself. And then you add gas to it which is in terms of crypto. So you know for at a minimum how much crypto should be paid for this kind of transaction. There are guidelines available which help you to understand how this works but you have to pay minimum set of gas fees for this transaction to be processed. You can send more than what is needed if you're unsure. And then there are signatures that say that actually say that this transaction has been sent by so-and-so that are proofs and signatures associated with each transaction that is submitted to the blockchain. So gas is nothing but the computational effort that is required in order to get your transaction processed on a public blockchain like Ethereum. Now if we talk about Fabric, there is no crypto in Fabric and there is no gas fees in Fabric. Fabric is a permissioned blockchain which is an enterprise blockchain. It is not powered by crypto. It is powered by the members who run the consensus process. So there is no gas fee in a private or an enterprise blockchain technology like typology of Fabric. You typically see this in Ethereum and these gas prices have, they fluctuate because they are again pegged to the US dollar. So Ethereum is always measured in terms of the US dollar. So you are paying gas fees in terms of Ethereum. If its price goes up, you're paying more gas. You're paying more USD to buy Ethereum. If the price goes down, you're paying less USD to buy Ethereum. So that's why you see the volatility when sometimes in the amount of gas you have to add, it's because the price of Ethereum is pegged against US dollars usually and you see that as the Ethereum fluctuates you have to pay more USD or less USD. Let me stop here for a minute and Puneet we covered a lot of ground here. So I want to stop and see if you have to add anything that I think I could have missed. I don't really think that you have missed much one, but I mean, just from an overview perspective, right? So the reason we are talking about all these concepts here is I guess to also give a view that when we are dealing with gas fees and when we are dealing with the complexities of the public blockchain, there is a level of sophistication in terms of taking the decision on which blockchain you want to have your NFTs on. For example, on an Ethereum blockchain, it may cost you like 10s of dollars or hundreds of dollars to do a transaction. So if your NFT is worth like $100 or $200, it is a sizable amount of money that will go in transactions itself, right? You may want to do it on a different blockchain like Binance where it may be a cheaper, right? Or when you are talking about fabric, right? Fabric is a private blockchain, so there is already a set of organizations which come together to sort of fund the transaction cost, right? There may be some percentages built in into the transactions to recover those costs, right? But they tend to remain more stable and more like in line with the real world economics. So those are some of the things that are also at the end here. And second is like, we don't just want to talk NFT in isolation. NFT, if you want to just be using some application like OpenSea or Audible or NBA Top Shots, that's a different thing. And it's like going to use it in a phase of fidelity or what do you call emery trade and then buying your stock, right? So there are folks who just want to be users of applications that are already out there. What we are talking about here is today behind the scene, how if you want to build your own blockchain network that trades in NFTs, how can you do that? Whether it's public blockchain or a permission blockchain, how do you do that? So we want to give you an overall view of how you can go about doing that and also to drive some curiosity, go back and do some more research, must have heard of these concepts and sometimes they don't make sense. It didn't make sense to me many, many months ago, but now I think I fairly understand that not really. But let us see how transaction processing works in a public blockchain world. You know, the reason I'm giving all this is because people will tend to see that we are going to show you a NFT project built on fabric, but then you would have heard something else in the outside world when you talk to your friends. So I want to make sure that the concepts become clear. So this is a public blockchain. It is Ethereum, right? So how does Ethereum work? And I wanted to relate it to gas. So you are sitting here as a user and typically you would have a wallet in which you would store your tokens, your crypto and all that stuff. So you would own your wallet, which has an account number and you can use that to go to the crypto market to an exchange like Coinbase, to an exchange like Kraken and you can buy crypto, whether you want to buy Bitcoins, Ethereum, BNB, you can go to the market. Now you've got to bear in mind that certain exchanges accept US dollars, whereas others do not, you know? So if you want to buy crypto with USD, you can go to Coinbase and then move that crypto into your wallet. So in Ethereum, your wallet would have money. Now let us say that you're in a funding project and you want to send some money to an investor. So you want to submit a transaction. You want to submit a transaction that says, I want to send X amount of crypto to Charlie for his investment purposes. So you submit a transaction, the first thing that happens, you send it to an application which is written in web three, JS, which is an interface and that transaction gets signed by your wallet, which has their keys. And that transaction also gets added with some fees. You know, you got the application fees plus gas fees. So some of the applications, they want to charge the user, right? So some applications may be free. So let us assume that this application also charges some crypto fees and then there is gas fees. So combined, your wallet is going to sign the transaction and attach the necessary gas fees. And then when it is submitted to the main blockchain, okay, the application needs of the transaction fees and then the transaction and gas goes to the public blockchain. And this gas is interpreted as money to process this transaction. So the transaction gets processed and recorded on the ledger and then a response comes back to the user whether it was successful or failed. So this is how typically it works. We have hyper ledger Bezu, which essentially allows you to have a Bezu Ethereum client. And you can use that to be connected to a public Ethereum network. So I wanted to highlight that hyper ledger Bezu is a good client for use as a client to a mainnet Ethereum. This is a typical flow. Now what happens is that since Ethereum Ether is so volatile, if you're dealing with Ethereum, you pass an Ether and Ether is a volatile currency. Its prices go up and down. And so people find that sometimes the transactions cost too much to process and sometimes it is cheap. That is the volatility factor that people do not like much about Ethereum. And also it takes a while for the transaction to be processed. It is not as a response, say its performance is not like highly responsive. So not only are the cost side with responses work. In order to solve that problem, you would have heard about layer two solution. So it's the same diagram, what people came up with is to create an additional chain which runs as though it is a private network. So essentially the same process, the transactions go to a private network which does not charge you gas fees as high as what Ethereum does. They process the transaction and they summarize the entire transactions into the main Ethereum network. They use main Ethereum network for security purposes and for other provenance purposes but all your transactions and you are processed by an application that runs outside of the main network. So you must have heard of layer two solutions and Ethereum 2.0 which is moving in that direction. Plasma is a technology and a framework that Ethereum 2.0 has proposed and it is available. So many of the scaling solutions are being used built using Plasma. They're also using rollups like ZK rollups. So you must have heard about it. If not, there are rollup technologies that also allow you to do layer two scaling, sidechains and channels go about and read more about it if you're interested in understanding layer two scaling. Polygon is a well-known application in the layer two world. So that completed our recap of all the concepts. You got an overview of how transactions are processed. I have not talked about hyper ledger fabric yet, okay? So what we are going to do now is briefly talk about the auction application and that is related to the actual hands-on workshop. And we will go forward from here. So the auction application, what is the NFT auction application? This is a very simple application. It has been built as the teaching tool for this exercise for our workshop. It's very simple. It runs on hyper ledger fabric which has no crypto, no tokens to power the transactions and no crypto. This simple application helps you to understand NFTs. It gives you the ability to register yourself as a user, create an NFT out of a digital artwork that you already have, place it on auction or transfer it to another user. It's as simple as that. That's what this application is really about. It's like eBay. You can go to eBay and you can essentially go to eBay and you can put an asset that you have and you can put it for buy it now or you can put it for a bid or both. So except that eBay is centralized, Amazon is centralized and they control. Whereas this application is supposed to be decentralized because it is governed by a set of participants who participate on a business network. It's a keyword, business networks. Blockchain supports business networks and you will hear about it. So in this business network, you have artists who can be digital artists or it can be music artists. It can be anybody choreography. There are dealers who deal in assets that are insurance players who can ensure an asset that are banks who could fund an asset. We do not have these two personas in our demo. And that could be traders, people who buy and people who sell. So this is the business marketplace. Now the good thing about using a blockchain as opposed to eBay is first of all, it is for, it is democratized governance. It is not like somebody would push you out. If you have something to sell, you can sell it on this marketplace. It is not controlled by some central party. And second, it ensures authenticity and eliminates fakes because the reason you wanna put it is you convert it into a cryptographically signed proofs that are put on the blockchain that attests to the fact that your asset is genuine, whether it's a digital asset or a physical asset. So it ensures authenticity and it is tied to the asset's lifecycle. The third is, so anyone can go back and verify, what did I buy? Did I buy something real or fake? And then again, you have a common ledger and common logic. So it is not your word versus mine. The logic that runs on each one of these nodes, if there is a multi-node network, the logic, the smart contract that runs on each one of these nodes is identical to every other node. And the ledger therefore must be identical to every other node. Any of the ledgers go out of fact for any reason, whether it's fraud, hacking, or the node went down, they will come back and sync itself with the rest of the other nodes through a process of syncing. And the network determines where one is out of back, right? And then it is, of course, there are support in blockchains for private ledgers and channels. So hyperledger fabric, why did we use fabric because fabric supports private ledgers? So if there is a price, if there is something, if there is a contractual obligation between the artist and the dealer, it can be stored on a private ledger as opposed to disclosing it to every other party. So private ledgers are very helpful when there are private relationships between any two parties. And channels, because this one channel, people could participate on a business network on a single channel. Lastly, fabric allows you to make your transactions auditable. So one can go in and see an asset and all the transactions that are associated with that asset. So you can simply go. If you go into hyperledger, the repositories at hyperledger.org, you will see block explorer. Block explorer allows you to connect to fabric or to Bezu. And one can go and explore about any asset, all the history of the transactions associated with that asset. It's provenance. And that allows you to audit. So we built this thing on NFT, this NFT app on fabric, and we recently upgraded it for this purpose. It was initially, we upgraded to $2 now actually because $2 capabilities are better than this. Let us see the process. So there is a fundamental assumption in the process of how this application works. We assume that the user is registered and the user is logged in, right? So the first step is logging in this and Puneet is going to show you a lot more details. So we are here to talk about the process of how eBay works or anything. So at a start, one would register their asset, NFT or asset on the chain. So you want to put there the asset and say, this is my asset, this is the description of my asset, you know, whatever it is, the description could be in our data creation who owns it, you know, whatever a little bit of name, description, whatever it is. And then you submit it, well, if you register, submit it to the blockchain and then it is going to give you an NFT. And then at a later point in time, the same user can come in and say, hey, I want to actually sell this through a process of auctioning and it can be on the blockchain where this thing, you know, this is the auction house, right? I mean like the auction house will go and verify it. So obviously, you know, it's not like my word versus yours that has to be some verifiable proof of authenticity that the asset is real and the price that you're asking for is real, right? So there is some kind of authentication and then the process is that the auction house may put it for buy it now or it may open an auction both at the same time and whichever completes first, then the transaction is closed and the new owner gets this asset from the seller. On the other hand, the seller may simply want to transfer this asset as a gift to his son or it could be a gift to a friend, whatever it is, a simple transfer from one account, one sender to a CPS. Both process the transaction, transfer the ownership and then provide it to the new owner, right? It delinks it from the old owner. So you can see this process map. These are the artifacts that are generated inside these little colored icons that are the data objects or the collections that are stored on CouchDB which is the underlying database within Hyperledge of Fabric. You know, every blockchain technology has got a database technology behind that can be accessed only by the blockchain and the smart contract. So this is the decision map and that's what you will see. There is a brief view of the data structure. So that is an item. This item can be a digital item or a physical item doesn't matter. So you will provide a description of the asset for which an NFT is needed. And that asset has got certain functions which are built into what is known as the smart contract or chain code in our language. In Hyperledge of Fabric smart contracts are called chain code and chain code is written in Golang as are not pointed out in the beginning or in node. So here are the transactions. That object can get associated with an NFT and that NFT is also stored. So this is a simple data and you can see what we are storing. So we have, we are storing but different blockchain technologies may store different attributes. Okay, don't confuse what attributes are stored with the ERC721 interface. Okay, which we'll talk about. So these are the attributes we are storing. There's an NFT ID associated with the instance. And then there is a, you know there are some things we used in the past. So ignore required type. It was used for controlling the flow of, you know the chain code inside when in the beginning when chain code was new. So it allows one to see what the required type is then process NFT ID and so on. So ignore it, you'll see it always. And then there is the name, the symbol which is typical in NFT objects. And then there's an instance pointer that points to the actual instance of the asset that is being talked about, which is the item ID, the item copy, the secret key associated with the ownership. And then it has got the current owner ID. And then we have also got attributes at which smart contract actually processes this particular NFT. And you know, what is the version of that chain code and what is the hash associated. Though these attributes are here we are not using it in our example. Fundamentally it is provided. So now you can also see that an item can have many copies, right? So is there, so for example an artist may paint a picture and then he may make five copies of that artwork. Each copy is unique. Each copy becomes a separate NFT, right? So in that case, if there are five copies there will be five NFT objects and each object will have a unique instance pointer that has got its own copy number. So copy number, you know, so item NFT ID one is associated with item ID XYZ copy number one, item ID XYZ copy number two, so on and so forth. So one item object can have many copies. Each copy is its own NFT and it is managed separately. There could be a single smart contract that manages all the instances of that particular family or you could technically have separate smart contracts managing each NFT, okay? So it is about how we want to design it. There are cases where one smart contract can manage all the five copies. There are cases where each NFT, specific NFT is managed by its own smart contract. So it's a design issue, how people design behind the scene. Now the function, there are other collections in our application. So as you go through the source code you might see user, user catalog, you know. So the interesting thing is it doesn't use an external database like MongoDB. All the data is stored within the blockchain, you know. So user, user catalog, user log, you know an item category, auction, auction initiation, the life cycle of the auction itself and then the transactions that were processed by a particular auction and then the bids that were submitted. So you can see that all the bids are recorded on the blockchain for truth purposes so that there is no dispute in the future. Like somebody comes and says I bid a much higher price and you didn't take my bid and I didn't get the asset. So the blockchain provides that level of trust where each bid is recorded and that is proof, auditable proof of who made the highest bid and who got it. And finally, this is the simple architecture here. You have the user interface that is tied to the auction application. So there is an application that is written in Node.js that code is there. On one end of this application is REST APIs that support the user interface that our beautiful Sahinul has coded here and that user interface uses all these REST APIs. And on the other end, there is a fabric SDK that has been coded by the lip and that access says the blockchain functions that we just saw, right? The creation of the NFT, the minting of the NFT, the burning of the NFT redemption, all that stuff. Now obviously the architecture of fabric also uses something called certificate authority that provides credentials to every user. In our application, we have reduced the number of credentials to one, so for performance reasons and simplicity, but CA essentially issues your public private key certificates. And there is a wallet in which the keys are stored. A user can have their own wallet in fabric or the wallet is stored in a central database. So this is the architecture of the application. Very simple, written and deployed in AWS CC2. It's not production grade. And then obviously fabric consisting of four peers. Nodes are called peers in fabric. There's one certificate authority and there is one orderer which helps with consensus. So that is how this particular application is architected. So four peers that are nodes that run the smart contract or chain code. One CA that issues credentials, such as certificates, X501 certificates, a finite certificate, which contain the public and private keys, and there is one orderer that participates in the consensus process. Lastly, so people often say, so I've seen some initiatives and I wanted to just put my personal opinion here, but people may have different views. But oftentimes, I think like every blockchain, if you take a flow, which is what can be a top shot is, whether you see open C and others, they all have their own internal way of building NFTs. They have their own internal functions and all. And oftentimes one wants to put that NFT. So we built this NFTs on Hyperledge of fabric, but let us say tomorrow you want to expose this NFT into let us say Ethereum, because you can see it on the Ethereum blockchain and thus it becomes visible in exchanges like Coinbase. Let us say you want to do that. So you built this NFT here, but you want to make it visible. You have the NFT here, but you want to make it visible. You can use something. This is a technology that is used generally. It is called wrapping. Now, if you go to Ethereum blockchain or you can go to Coinbase, you can see that you can still buy Bitcoins. How does that happen? It happens through a process of wrapping. You wrap the existing Bitcoin on the Bitcoin network with a wrapper and make that wrapper visible on Ethereum. So same thing you can do here. You can take the NFT here, put a wrapper smart contract that manages the wrapped smart contract that essentially points to the same NFT and you can make it visible in Metamask or any of the wallets that you use. The process is different slightly because there is trust issues. So the asset has to be deposited with a custodian. The asset has to be locked on the native blockchain and then you will use a wrapped token. So it will be called the wrapped NFT. That will be visible here. So that's an easy process to expose fabric, blind or NFT tokens on Ethereum or any other blockchain. With that, I have a few more slides. So I'm going to do a time check and I can always come back to this. Puneet, do we have five more minutes? Do we just go over? Five or 10? Okay. Basically, Hyperledger Fabric, we talked about how transactions worked in Ethereum, but I want to give you a view of how Hyperledger Fabric works. You know, Hyperledger Fabric is made up of nodes, orders and CA. We just talked about it. So when a user submits a transaction, this is a time clock, right? It starts with 15 or so you can see in order of time, chronological order. When a user submits a transaction, they first submit it to get it endorsed. It goes to all the nodes, which is also called peers and the nodes essentially simulate the transaction on the blockchain. They run the chain code and see how does it behave. They collect the results and they sign and return that it is called a proposal. So all the endorsements from the three nodes come back to the user. And once it is received, the user can now determine whether they want to actually submit the transaction for recording on the ledger or not. So let us say they want to actually send Alice $10. They figured out the proposal has come out and they have got three endorsements and the user is really sending Alice $10. If they really want to send it, they would send the proposal to finalize back. Now, this time it goes to the ordering nodes, which is the consensus process. The orders run a process called raft, which is a leader-based consensus. You must have heard of proof of work, proof of stake, proof of work is what Bitcoin does, proof of stake is what Ethereum is going to do, but fabric does raft. So once the consensus process takes place, it is essentially asking the nodes to verify if there was anything that happened. Like, you know, instead of giving Alice $10, which I promised, I gave it to Charlie and I submitted Alice's transaction, that is a double spend problem, right? I cannot give the same $10 to do people. So the blockchain on the endorsers that endorse the previous proposal will re-verify that I'm telling the truth. I still have the $10 to give to Alice. And if that is the truth, they will update the ledger. They will create the block and update the ledger. So that is how fabric essentially solves double spend and also deterministic issues, right? I mean, like, so Alice, I want to give Alice $10. It goes, the transaction is simulated. The chain code checks my balance. I do have the $10 to give Alice, comes back with endorsements. In the second round, I say, please give it to Alice, post it in our account. It goes back and checks, I still have the same $10 and then it updates. So that's how fabric works. Fabric we already talked about, it consists of nodes, orders and CA and the application essentially talks to fabric. I'm not going to spend time here. I'm going to move on to give you a quick view of ERC 20 and ERC 721. For those who want to build on ERC 20, Ethereum gives you this contract, the base contract interface. When you implement your own token, you would extend this contract to my token and you will implement all these functions, the name, the symbol. You have to implement these functions in your extended contract to support your own token. The total supply function, the balance of everything and also these events. That's how you can build your own token. You extend it from the base contract and here is a very simple example. You can go and look at it. You have the contract, you import the base contract, right? And then of course, you know, you have the contract where you extend it from ERC 20. So you have extended your token from ERC 20 and then you instantiate your own token. The simplest solidarity contract, you can run it but this is how you can build your own token. You take the main ERC 20 contract and extend it and build and then mint your own tokens. Same thing with ERC 721, which is for NFTs, right? So the NFT interface is also a contract that is coming out of the box and there are extensions available with an open Zeppelin and other libraries, but the base ERC 721 has been extended for various purposes and you have these basic functions that are optional named symbol, et cetera. You have to implement these functions if you want to be a true ERC 721 compatible NFT interface, right? So you would extend this and say my NFT is ERC 721, implement these functions and events and there you go. You have an ERC 721 compatible NFT. A simple example here. Obviously, many of you know solidarity. If you don't know, I'm saying which version of solidarity we are using, what libraries have to be imported. Now here is the main code. This is the NFT example is ERC 721 and then you can then mint that token. How many increments, blah, blah, blah. So another simple example, this NFT is called NFT example and the symbol for NFT is next. You can see that. So it's as simple as, so if you want to build it on Ethereum, you would extend these contracts that are Ethereum compatible blockchains that support the same thing. So you can build ERC 721 and 20 tokens on those blockchains as well. And finally, I'm going to just talk briefly about the token taxonomy framework. A few years ago, industry came together, especially powered by Microsoft, Accenture, IBM and a few others. They came and said we need a standard for tokens. So they created the token taxonomy framework to define, to create what, how can you define your own token? In order to define your own token, you have a common vocabulary, definition, behaviors. So they came all with a framework. It is nurtured by the inter-work alliance similar to Hyperledger Foundation. And it enables collaboration between different business models. So I have my own token, you have my own token. We don't want all these silo tokens. So let us make them interoperable. And if you want to do that, this is how the token design happens. So don't get scared. Okay, you see a formula here, which looks very complex, but you don't have to write that. You will understand it. Essentially, when you build a token with the token taxonomy framework, you will define what type of token it is, fungible, non-fungible. You will add some behaviors to it, transferable, dividable, mintable. You can define various behaviors. You can group some behaviors and give them a group code. So in some cases you will give a group code which stands for, SC stands here for all these behaviors. You know, I want mintable. So I don't have to repeat this. And then you can give property sets. Now property sets are nothing but attributes that will allow you to query the token or to do other things that are not defined by the standard, right? So I want to query my token, let us say by which industry it is belonging to. So that would be a property set attribute, okay? I could put an industry code as an attribute with a token which is not in the standard and I could use that for query. So if you go through that process, it creates a token for you. So at the highest level, when you finish doing this, you can build a loyalty token which is at the highest level, the definition. And from there you can have a class which is very specific to airline. You can call it airline loyalty. And at the bottom, when you instantiate it, you have airline points. So it's very easy to use, but you don't have to go through this process, you know? So TF token is fungible, TF stands for that. Not divisible. That is, this is a symbol for not, not divisible. You can look at the D here. Okay, G, you know? So you can, I have not put that. It's a groupable and SC stands for mintable, turnable and roll based and whatever it is. So they give you a tool. If you go to the token taxonomy framework, designer tool that is available with TTF for the intro work alliance, you get a designer tool in which you can drag and drop my token base and property sets and it'll automatically build this formula for you. With that, I'm gonna stop here. Thank you so much for listening to me patiently, nonstop for an hour. If you want more information about chain yard itself, go to chainyard.com. You wanna know more about our product in the market, trust your supplier on how to build trust. You can go here. And if any of you want to send me a message through LinkedIn or whatever email, please feel free to do so. If you want any questions answered, please do not, you know, as much as I can, I will answer, but definitely I'd like to advance this science here. Puneet, I want you to take over. I do not know where you wanna sit. You wanna sit here or you wanna move there? I don't know. I will shift this here. I think I'll just use yours. Okay, how do you can shift it there? Hey, thanks everyone for joining in. We are, so now that you have all the basics and the theory behind you, right? Let us go to the next slide and sort of check out if we are not sort of lost the main thing that we're talking about here, which is NFTs, right? So just a quick quiz here in terms of which one of these do you think are more likely to be converted into an NFT, right? So if you look at these two items here, right? One of them is an autographed signed baseball. Another one is a new baseball, right? Typically, you would be thinking that the first one is going to be drafted as an NFT if you want to, right? Because usually people will be ready to exchange a new baseball with a new baseball. They are all equivalents in some sense. If they are from the same make or something like that, right? Whereas if once it has been signed by somebody at some point of time, right? It becomes unique. It becomes collectible. It becomes non-fungible, right? Another question here is which one of these is most likely to be an NFT? Essentially they are both the same phones. They are both an iPhone, right? Whereas the first one is an iPhone which is still unsold in a package, right? You may go to a store, right? And buy an iPhone. You may pick up the first box or the second box or the 10th box, right? You don't really care. All of them at that point of time are fungible with each other, right? But as soon as you have bought it, right? The bill has been generated in your name with that particular item number, right? That particular item becomes unique. And as you start using it, you customize it, add your apps, add your data, right? It becomes a unique item. And hence the second one will be the thing that most probably will be treated as an NFT. So I think you're probably getting a good sense of what an NFT is. And it does not just depend upon like the item. It also depends upon a lot of factors which are related to who, what is the history of that item? Who created that item? What kind of item it is, right? Is there a customization that has been done to it? Is there a, the creator wants to make it unique and things like that? The third one is sort of a more open-ended question is it, can there be two NFTs for the same art or can there be more than one NFT for the same art, right? This is more like a question which talks about, it's all in the hand of the creator or the person who owns that particular item, right? So every aspect of an art can be converted into an NFT and a separate NFT, it can be traded as a separate NFT. It can be bought and sold as a separate NFT licensed or whatever, right? There are different models. This is, you can go to this video here. It gives you a much more vibrant understanding of this. Like you can have a physical painting that you painted, right? And you can say that, okay, I will digitize this and I will create an NFT out of it, right? And I would probably take a picture and that will also become an NFT, right? You can even say that, okay, I will create a unique NFT, right? But I will burn down or destroy the original piece, right? That no longer is an NFT. The only thing that now remains is a digital copy, right? You can say that, okay, I want to keep this picture with me locked up in some place, right? It is never to be sold. So it will never be an NFT at any point of time in the future, right? Whereas it will be thought of as a tool to create this NFT for any foreseeable future. And that's how you can deal with it, right? Or you can even say that, okay, the part of the procreation process of this particular art can be an NFT. So you had different versions of this art or different stages at which this art had progressed, right? You can create a GIF out of it or a video out of the process of creating this art. And that itself can be a different unique NFT, right? Apart from the art itself. You can also have art digitized, right? But when you are delivering it to the people who actually bought it, you can add stuff which are more physical in nature for example, you can give some goodies, et cetera, along with that art, maybe the brush which you painted with and stuff like that. Or you can even bundle them, unbundle them or cut them into pieces and then create separate NFTs. So there are endless possibilities in terms of how you use the concept of NFTs and extend your art piece into that NFT world for trading, exchange, licensing or whatever, right? I think this sort of brings you back to the NFT stuff that we were talking about initially. I think next I would like Ashish Shrestha to go over a little bit about the project that we are going to be hands on, doing a hands on session on, right? This is the NFT auction application which we have contributed to the Hyperlegal Labs now and you guys can actively work on it or use it, test it out, Ashish, over to you please. Hi, which one? Okay, I see now. Yeah, Ashish Shrestha. Yeah, yeah. Hello, everyone. Can you all hear me, okay? Yeah. Okay, great. So this is the code that will be used to for the NFT auction app. It's available on GitHub. I believe the link is already in Discord. So most of the Hyperlegal Fabric Blockchain application is designed in three layers, right? We have the chain code, which is the smart contract. Then we have the REST API which has the Node.js SDK because we're using Node.js and then the UI, which will enable the users to create the NFT, do the bidding, and then also transfer the NFT. So one of you guys are going to be looking at the code. The first layer, the bottom most layer, which is the blockchain one, all the code is going to be in this auction chain code. So if I go into this auction chain code, the code, all the smart contracts that are written in GoLanguage is going to be in the source CoAction folder. The way this is arranged is the main Go file has all the functions. It imports the shim library, which is the SDK to design the chain code. So everything is here. Then all the structs are all the assets that Mohan earlier showed you guys, which are the item object, the NFT object, they are defined in the struct stock Go. So if you are going to make some changes to the item object or to the NFT object, then you would need to come over here to do the changes. And then the functions, for example, to record the NFT on the blockchain, right? Those functions are going to be in each of these individual files. For example, to record the NFT object, you would go to NFT object and the record function is here. Is it possible to zoom in a little bit? Some folks are having a hard time seeing your screen. Is this better? That looks better to me. And yes, we're getting a thank you from the Discord. Thanks, Ashish. Awesome, all right. So that is the chain code or the smart contracts. The next layer is the REST API. So this layer we have used Node.js. So we have three folders basically here. The first one is the fabric helper. So these are just the wrappers of the fabric SDK that we have created to help do our transactions, deploy the contract, and then also have the transaction signing. So this is all in this live folder. Most likely you won't need to do anything in this folder unless there is like an upgrade or you want to redesign the work, redesign how the functions are called. The network folder consists of all the files that are needed to start a local fabric network. So you would just to start SH to set up the network. Instructions are in the readme file. So this will spin up a two org network with a raft order. The node folder is the one that has all the APIs. So the starting point of the node APIs is going to be this app.js file. So this is going to declare all the API paths, the URLs, and then also start the express server, both the API HTTP server and then also the web sockets. Server that is used by the UI. So the way the code is organized is the starting point is app.js. All the APIs are going to be in this app folder. We structured the code in a functional way instead of a domain way so that if you know express, then you can go find out where each files are at. So express uses controllers routes and middlewares. So basically if you are looking for all the list of routes, you would go to the routes folder and then you can see the routes based on auction, bid, NFT or user. So let's say if I go into NFT, then this will show me the routes that I have for NFT, right? So like for example, the first one is API to find out what NFT I own, right? The get API is to get the NFT by the NFT's ID, then we have history, mint and transfer. So the corresponding function, the code that actually sends the transactions to the blockchain using the Node.js SDK is going to be in this controllers folder. So for example, the corresponding app implementation of the function for me, like the me create NFT or transfer NFT or get NFT by user is going to be in this folder. So that these are all the APIs. Basically middlewares are just small helper functions to help in authentication and authorization. So these are here, object builders are just to build NFT objects. The last layer in this whole application is the UI layer. So the UI is built using React.js. The readme gives you step by step on how to run the application, but basically the code, all the code are in the source folder. Starting point is going to be index and then each page for the application is going to be in this components folder. So you have the header footer login page and so on. And if you guys have any questions, you can just reach out and we'll be able to answer those questions. All right, thank you. I put it back to you. Yeah, the only other thing is like we have a setup file in there as well for people to just run all the instructions there for a local setup if they want to run and play with that application at their own convenience, right? We will... So these are the routes and the APIs that we have here, right? They are divided into different kinds of objects that we have with the user, the auction, the bidding, the NFTs, right? The UI in turn is also using this, but the point here is like any other system if they want to integrate or something in the future, right? This is very sort of flexible. In terms of system requirements for today's hands-on session, so we... So now we will go into the hands-on session wherein we'll show you how the application works, right? And you can walk along. So you can open the same URLs and then go along with us, create some NFTs, bid on them and then just get a real world feel of how it all works, right? I am just going to... Switch yourself to that if you want. Yeah, I'm just going to switch my laptop after once I am done with the slides here, but main system requirements, it would just need a laptop with any of the browsers, Chrome, Firefox, Safari, and you should have an internet connection that allows you to connect to an open public network. Just make sure that your VPNs, et cetera, do not block you out. There are some disclaimers though before we go ahead. As you can understand, this is more of a learning session, right? And this application is definitely not in a production-ready state. We are in a POC kind of a place where we also have the code now public for people to contribute and upgrade it. There have been some known deficiencies in terms of the performance and in terms of the scale at which this application can operate. Hence, we have hosted multiple instances of these applications at different IP addresses. I am going to, or David probably was going to publish those IP addresses to the thread, to the Discord channel or to this chat window. And you can use one of them to sign in. If you are not able to get through, just try the next one. Each of the IP address has a limit of around 75 people to log in at one time. So you can just use the alternative IP addresses. Just be with us, try to log in into one only so that all the participants have an opportunity to test it out. In terms of the guided session, the flow would be very simple. We'll try to get you through the registration process. You can then sign up with the password that you created in that. You can then add a new artwork if you have image or any size lower than two MB, lower the better, right? And then submit those artwork for an auction to one of the auction houses. I think we have three auction houses that are already set up. This is a completely decentralized thing, but just for this workshop, we have set up the three auction houses that you can submit your NFTs for trading, right? For auction. So that would be probably controlled by some of the people who are coordinating this workshop. Later on when you are running a local version, you can definitely check out the auction house stuff as well. Wait for the auction house to open the auction. So there is a, even though this platform is decentralized, but just like in a real world, we do have some control from the auction houses. So once you have defined, okay, I am going to go through this auction house that auction house has the responsibility to vet the items that you are putting on auction and then can open the auction for everybody to see and bid. Bidding on the auction within the time limit would be something that you should do. There will be a counter at every auction. And then once you have found the bid, the item should be in your wallet once the auction closes. This is just the overview, right? In terms of the, I'll go to the next slides later. Let us go to the demo, right? So let me see if I can share my screen on admins doing the auction turning on and off. So you should be seeing a screen here, right? I think, hey, David, have you already shared the IP addresses with people to sort of sign up? Puneet has, yes. I think I have done that on the workshop ad state channel. So can you put that on Zoom or something? I guess some people may not have access. I don't know. It's posted in the workshop channel. Okay, sure, thank you. So guys, you can use one of those links, right? And reach here. So I'm using one of the links to sign up, right? This is the link I am just, so you can walk along with me. Give each one three minutes, four minutes, right? This is the landing page. We are very fortunate to work with Morgan State and the Hyperledger Foundation on this one. You can go to create a new account since this is a new application that you are working with. I would put my account ID. This should be a unique username. You can use whatever username that you want. This is just for the demo purpose, so we are not going to save this or use this for any other purposes. You can put in your name. We today do not on this demo, we are not verifying your email IDs or whatever. Yeah, give them a link to everyone and they all got into the link and come to this page. Yeah, so you can put some other information here. I'll wait for you guys once. So we're getting a lot of questions about the payment ID. What is that? You can put in garbage. Yes, some random garbage ID for now. So ID&AD would be used for a bank transaction. So because behind the scenes of smart contract mediates the final transaction and collects payments. So that is the reason why we have, like in India they have this UPI ID, for example, unified payment ID. So it is just for that purpose. It can be expanded in the future. Right, it can be any string for now, but for right now we have not integrated to a payment gateway or anything. This is just for the workshop, right? If and when somebody would like to go and do a commercial product on this, they will probably have to integrate it to a payment gateway or something. This is just a placeholder for those kind of things. Just wanted to give that flavor. Hopefully some of you, a lot of you should be able to get in. Are we seeing any issues on the discard? Okay. There are people saying they're unable to log in. First of all, you need to create your account and then you can log in. Yeah. I see Dilip is putting some URLs. You need to use 3000 port in that, Dilip. You can turn the limit. Yeah, and there is a limit of around 75% for each of the instances. Since we only have like 152 people, I think people should be able to get in one of those. Okay, let me sign up. So I was able to sign up. The screen will reload with the sign-in screen. I can put in my credentials that I just created and try to sign in. I'll wait you on the next page just to give some time to people. In case you are having any issues right now, probably it would be a good idea to close your browser window and retry once. It would also be a good idea to clear off any cache or anything that you may have. Okay. Some of the things that I... Okay. So I see a lot of people posting the links, et cetera. I think the port number needs to be 3000. Just use that. Okay, so once we get into this screen, right? You see, this is a very basic screen where we land up and we see like two sections here. One is open options and another is your artwork, right? So right now, because I don't have any artwork, right? And there are no options that have been opened by any of the auction houses for any artwork that people have created. Let us go to the first step of creating an artwork. So we can go to this link here. This says I add artwork and try to add some artwork, right? Let's say I want to add an artwork called Pentagon Parts. And I can just put some of the information. For example, the author of the creator is me, right? And then I can put what is the size of that artwork. All this is sort of configurable. You can put whatever information that you want. And then I put a base price. This base price is basically the first price that the creator puts on this, right? This is how it would be known until it has been bought and sold in terms of its value. So I put that and then I put a picture of this, right? And you guys can do the same. What is also happening in the background if you look at this last line of string of numbers, right? These are basically the actual blocks that are getting written onto the blockchain. You can see the block ID and you can see some of the timestamp permission by the creator of the block, right? We are using a common admin to sort of add this into the blockchain so that, so this basically gives you an idea of how much activity is happening on the blockchain on this network. And every time you do something, there will be a new block which will be generated. That's where the blockchain gets to know, okay, all this new artwork or all these transactions are happening. I can go and I can see this item and you can see that I can see this item in its original form without any watermark or anything, right? I can see the history of this item where it says that it is recorded and I am the owner, right? And this is the point of time at which I became the owner. This is the NFT ID. This is the unique ID. Even if I use the same picture and create 100 NFTs, the IDs that this is will remain associated with this particular instance of that picture. This also is like the key for the history. So anytime this particular instance of this picture moves, you will see a history update. This also gives you the date at which it was created, what is the other property that we had provided it and the description that I had provided. So you can see if everybody's insane, ask. Yeah. So I am also looking at the thread, the workshop thread. And I'm seeing that there are some questions but things are moving on, right? So once you have created this particular item, what can you do about it, right? So there are a few things that you can do. One is you can submit it for option and we'll see that. Another is you can transfer it out to another user and we'll see that as well. One main thing to notice about this is when you submit it to for option, it will not come up in your new options as such, right? What will happen is this will go to a particular option house which you decide during the submission. So you have to mention the option house when you are trying to submit for option. You have to mention what is the buy it now price at which this item will be sold. Without an option, it is very similar to how an eBay option works, right? And then as it is our price below which there will be no bits which will be acceptable. So just because people are not bidding on it, the original owner does not want it to sell out on any price side. So this is like the reserve price. So let me put it to one of the option houses as I have posted on the workshop thread, right? So one of the option houses is, so they buy another is eBay and another is Joe Dubai, right? So I'll just put Joe Dubai. We have used these names just to our sort of use them as an option house, right? Now I put the buy it now price. Let's say I put it as $1,000, right? And let's say the reserve price I put as $500, right? And I can now submit this item for option. You can see that this is Pentagon part. This is the option ID. And I am trying to submit it for option. When I submit it on option by the time that I am submitting there are a few options which are already opened, right? You can see and you can bid on it. I'll go through that flow later. I'll let you guys have that, right? So let me just go here, right? And load this. Now I am logging in as an option house, the Joe Dubai option house on this particular IP address, right? I should see my stuff that I had submitted as this user, right? And I can see the reserve price as $500 and the option price at other buy it now price at $1,000. And I can see the creation date. So I can basically see this request coming to me now. Here it is very simple. I can go and open the option, but in a typical option house, right? And you are in a decentralized framework, right? The option house will look at me, my profile, understand whether this is worth $500 or $1,000 or not, right? And then make a judgment and then open the option. Let me just go ahead and open the option. I can open the option for a few minutes. This is just for workshop purposes. The options can run for days, right? But for this one, let me just put it for two minutes, right? And let me just begin the auction. So this auction is now open. When I go back to my screen here, right? And I refresh, right? I should see somebody has not already. Yeah, it says add auction, right? So we have a question about, yeah. A TTF token design tool. If we could get a link to that. I take that action. I think, yes, we will be able to provide that later on, yeah. And seeing some, let me just sign out and sign in again. Hopefully that option is not closed here. It's not closed. This is the option three nine. Let me just submit this one for option. Just shut it out. I think like go slow. I think some people are trying to see that it isn't the dashboard now. Yeah. So you're gonna explain that. Yeah, there's quite a bit of confusion about there's a signature showing. What is the signature? How do I see the list? Like no one else is logged in to see the list of the stuff. That's what option. So yeah, no one else has that view to see all the active auctions. Yeah, exactly. So this is an option house panel, right? I am logged in as an auction house. For this workshop, we did not want it to give like the login for auction houses to people, just to sort of coordinate this. We wanted to be sure that the things that are being posted here are all in accordance with the policies and stuff. So until and unless I open an auction, for example, until and unless I open this auction, this would not show up for our people to buy yourself. On their thing. I think the process is, you know, so in order for, I think Puneet is just trying to do a hand holding in the first round, right? Puneet and you were created an auction house and then you are in the auction house, use it as the one who can log in, see which auctions are posted and which one should be opened, correct? So you have users on one side who want to sell or put an auction and the auction house on the other side is delaying opening auctions, correct? So let us see, this is another auction that has been opened, right? Let us see how do we bid on it, right? So we go to our login, right? And see all the open auctions. I can go and do any one of these, right? I can open to the bid screen and you can see, right? There is this particular item that has been no bid or the maximum bid is $0. I can put that, put a number, right? So I can put like one, right? So I can bid, right? Soon this will get refreshed. So the process essentially is, you know, user registered, user logged in, user placed an artwork into the registry and it got converted into an NFT and the user is able to see their own NFTs. On the other side, there's another persona called the auction house controlled by these auction guys like Puneet who are not letting others log in. So when a user puts their item on auction, what happens is it is in a waiting mode with the auction house and the auction user, the auction house user has to log in, see which auctions are there and which ones they want to open. When the auction house opens the auction, users will see open auctions, auctions available to bid on their panels. That's process and then you bid and then it gets closed. Correct. And one more thing that you can see here is like there may be some of the items which you have already put on auction, right? They remain in an auction kind of state, right? Where you cannot really do anything about it until it opens for auction. This is like your sort of, this is like your agreement with auction house wherein the auction house has that exclusivity to auction off your stuff. So once they have taken a decision whether they want to auction or do not want to auction, right? They can open or close that auction and then you will start to see your artwork again. If somebody does not put any bids on your stuff, right? Then also the auction can be closed and the item will go back to your stuff. Okay, it's not going to go back, please. So the whole process is like two ways by which NFTs are moved from one user to another, right? So essentially, because we're talking NFT here. So the object itself that was uploaded is associated with a unique NFT token. I think that's what you showed, right? So when you upload an object, it's not about this application, right? I mean, like we only relate it to the NFT concept. So when you uploaded the object into your artwork, then behind the scene, an NFT token was generated and associated with this art. So there are two objects created. So you upload your art, an item object is created with all the metadata and there is an NFT object that is created that is associated with that instance of that item. Now the auction house is just simply transferring the NFT from the seller to the new buyer or the transfer is moving the auction, the NFT, from the seller, sender to the new recipient. Just so how are the users doing? Like what are the common questions on the back? You know, are people able to, what is the biggest problem people are having? Is it, you know, maybe you can address that, you know, to police? Yeah. So a couple of things, I think there are, there is definitely some level of things which are not very transparent from the UI perspective here, right? One of the considerations that you also need to understand here is like, let's say there is an auction which is opened and somebody is bidding on it, right? And they won it, right? The rest of the participants actually do not get to know who owns the art now. It is almost like a sort of a private auction wherein usually the bidders will not disclose their identity unless and until they are going to auction it off again to the next person. So when it comes, the same item comes back for the auction again, you would see that that particular item is now having all the history in terms of who had owned it and who, and what has happened to that item, right? So for example, if you go to the history now here, right? Sorry. Yeah. If you go to the history now, right? It says that initially the item was created by, or recorded by Mohammed and then the owner was Puneet again, right? And then it was ready for auction, right? So right now it is under auction and it is still owned by me, right? Similarly, if you, if I bid for this one. Yeah, I'll hop them through, you know? So I think like you need to demo more. Puneet, we have some questions about how to bid and auctions getting closed. Correct. So any of the auction which is active now on your screen like this one, right? You can go to that auction and you can actually see, okay, I want to bid it or let's say I want to bid it for $700, right? I can make that bid, right? If this is the highest bid, it will start to show up here soon. See, I had bid $700, somebody else bid $750, so it is showing that the current bid is $750. I can put like $800, or I think it is already bid, the bid is ending. So it's already the time, right? So this is already transferred to the person who put like $750. So that's how this is working. If you look at here, you can actually see, right? So this was, the owner was this guy, then it went to another owner after the auction, right? And maybe $3003, if she opens this again for auction, if she now owns it, right? Then you would be able to see like the rest of the history where it goes next. So anytime you can just go and say, show all, I think some of these are closed. As an auction house, I need to go back and open some of the auctions. Can we open a lot of auctions? A couple of more auctions? More time? Yeah, you open all the auctions and see what people play. Yeah. I think by the time and give it three minutes or whatever. Correct. So let me just do that. Yeah, we have like multiple servers and multiple auction houses on each server. So if you could just start opening all the auctions on all the auction houses, that would be totally awesome. Yeah, just kind of doing that. So there are like 15 cases somewhere these auction houses are like doing it like different IPs and then different auction houses. So I think Sainu and Dilip are opening up items on the from the other houses. I am just opening them from the Jodhabai auction item and some on this. I think this IP number is using. Okay, oh, I have to search probably. So as you can see, right, anytime I'm opening auction or stuff like that, that is also getting added to the blockchain. So that's why you see this a little bit of delay, right, in a real marketplace you won't have like, if you have like a lot of auctions going on, you may probably have a more distributed architecture to deal with that. A lot of people are putting things on auctions so they want to see it. So right now everybody is buying stuff for free, by the way, eventually you would have to pay for these kind of things on the real application, right? So one main thing here is like about trading the auction or bidding the auction, right? That's one important thing, but even when we are creating auctions, right? Today what we are doing is we are just updating the item into the portal and it becomes an NFT, right? Eventually when you have a commercial platform, what will happen is some of the IDs will be more like trust anchors, right? They would certify or say that, okay, these items are better or these items are something which the world actually cares about, right? And that's where you will see that a lot of auctions are getting opened and the items which are being used there are all authentic items, right? So those are also some of the considerations. I see that there are some of the IPs may be going through a degradation just because there are too many participants, but I mean over the course of time it will sure fix itself. There are these, I don't know if we have even exposed these IPs. And I'll say like ask that people are able to see them, but. Yeah, so hopefully people are able to see now stuff and bid on them. I am also seeing that there are auctions that are getting closed with the time expiry, right? So the code itself is open source, right? So there are questions in the discard saying, you know, can we update or can we stop the auction? So those are all like open for implementation. That is the reason the code is open source. So go give a hand and try to add features like, you know, it has been put in auction, but you want to withdraw it, things like that. I think one of the questions that is there is like, why are we seeing a lot of blogs that are demanded? I think now for each of the transaction which would mean like adding a bid or creating an auction or the point where it closes the auction, right? So any movement on any of these objects, right? Is causing a transaction on the blockchain. And if you are seeing this, these just for demonstration kind of purposes, typically in a real world application, you won't be exposed to these. Yeah, but the thing is these blocks are created by fabric. So you're not doing anything. Correct. Yeah, we are using another open source project called Block Explorer from fabric, right? That basically exposes this information to us directly from the blockchain. As you said, typically in an application, you won't show all these things. Yeah. This is demo, as you said. But why are they so... And there are a lot of things which are still to be worked, like for example, they still need to work on change password and stuff like that, right? All that is like... What we thought is like the main crux of the things that we want to learn and work on in there, but there are definitely other things. I'll talk about that in my next slides. Yeah. One of the questions as I already said, right? Who purchased their NFTs and how... For how much? That is an information that would not be disclosed to the rest of the group. That is also one of the sort of a beautiful feature of a decentralized exchange, right? Where in the item, you know that the platform is keeping the thing sane in terms of capturing that information, in terms of who bought and for what, but it's not been disclosed to people unless the person who has bought it wants to disclose it at a later point of time. So some of the slowness that we are seeing on the application is because definitely this application is still in a POC stage. So it's not built up for 100 people to work on it at the same time, but since we have split it across different IPs, it should work probably a little bit slower. Yes. So definitely you can go to... I just wanted to take this opportunity to just show you the link there. Yes, definitely you can go and use this application in your own local environment and test it out. This is... So how many of the people are successful? You don't see it because it's just live workshop, right? So can you ask how many people have been able to use it and have been successful? They can show a raise of hand on Zoom, right? So go to Zoom. And if you've been successful, those who have been raise of hands, that's the only and those who have not been. So I've been able to submit a couple of auctions, but I can't log in anymore. I see messages like that when I try to log in. So I'm getting a lot of reports that the sites can't be reached. So I think we probably underestimated the interest. Yeah, that can be one thing, definitely. I think there is a lot of activity and stuff, right? So maybe that is what is causing it. What I can do is people can switch to another IP for some time now. We do have two more instances just for testing out for now. I think these were not shared earlier. Not just, are you still on? Yeah. So I am seeing there are a few people who are saying that it didn't work for them. I mean, definitely some of the instances may be going out. So let them trial the other instances, right? So obviously we want at least 50% of the people to experience the application. Correct. You know, so. Correct. So I'm just waiting on these two new ITs that I shared, which yeah, you will have to bid for your IP to get it back, to your NFTs to get it back. I mean, since people are not really paying real money, they can really do a self-bid. Self-bid, yeah. I think that is true. But as a creator as well, right? This is the problem. So the question here is, I think, Sorkraut is asking like, I want to see where my NFT went, right? I think this is both a thing of the current state of how these things work, right? As well as in terms of the GDPR or the privacy requirements, right? So even if you are an artist today, you don't know like where did your art go, right? Somebody may have bought it at the shop and then gifted it to a friend and do a friend, a friend, et cetera, right? And in the real world, you don't have any idea of where it is landing up right now. In fact, a lot of artworks have stolen and are kept in private safes and stuff like that, right? What the blockchain does is it at least keeps, at the blockchain level, it keeps a record of where it is going, right? So even if you don't see it right now, if somebody tries to sell it again, right? You would see it in your open option, you can see the history and all. And in the future, if we see that there is a need, for example, in some of the music industry and all, right? There are views in terms of raw HD payments to the original creator, for any time the asset moves hand, right? So in those cases, definitely this application can be enhanced to capture that kind of a requirement where a creator will keep on getting a trickle of whatever revenue or whatever exchange that is happening in the market. So those are some of the very good sort of characteristics of NFT, right? You can sort of simplify the management, you can simplify license management and things like that. In fact, some of the people who talk about people frauding and then creating fakes and all. So all that can happen in real world as well, but in NFT is a little bit more harder. I think that question is coming up a few times now on where this might work. So shots for, I think that's true. If there was a use case of raw HD payments, et cetera, that we want to enable on this blockchain, we would have to add some of the APIs to capture where the artwork is going and stuff like that. But this is very plain and simple options use case. I think- So the time check. Yeah, just a quick time check. Yeah, 45. And so David, I think we sort of got a good glimpse and I think there are quite a few people who are able to experience, right? And for those who are not, unfortunately, right? They can definitely go to the NFT auction thing, set up a VM, run the application, get up with some of the friends and sort of just incur with it. I think that's the intent anyways as well. So what we do is right after this class, we will reset the data in all of the systems and keep the four or five IPs open for another hour or so, right? Yeah. So that's what you want to do. So we will just reset all the things and then people can just play with it and then leisure for the next hour and a half while we continue with the rest of. Yes. So let me get back on PowerPoint, not because I love it that much, but I just- I think there are 109 people on still. So some of the things that I just wanted to sort of recap is like definitely this is an application which is now in the open source and we need to plan out the extensions of it and the future development. So there are certain things that we sort of think that this application should be moved forward with. So one is just a moment. Yeah. So one of the things is like adding application support for more NFT classes. So right now it's just picking up pictures and doing the NFTs on that, right? So maybe doing it for music and for videos which are much more interesting and also intensive in terms of computations then improve the performance and the scalability of this application from a deployment perspective. So the things that you are observing today should not be observed in the future and add development setup instructions for other OSs just to make the developer community more aligned to this so that they can work on it more seamlessly. I think there is already a Minifab lab which is there which sort of sets up the Hyperledger fabric network on any OS. So we probably will be moving some of the setup items on that, right? So that we can use that blockchain network instead of building up based on our own scripts. And then basically listening and contributing as this community grows and then listening to the needs and then the innovation that it brings together. So those are sort of the future thing. I think we did take some of the discord question and answers but if there are some more that we want to take up here that this will be the opportunity in our life. Yeah. Nita, if you have a question, go ahead and unmute and ask. Yeah, hi. I just want to ask a quick question. Like many of us, we were struggling. Some of them could go through the whole process. I could upload my artwork but couldn't see the entire process. So requesting here, can we have this sandbox open for a couple of days instead of just a few hours because it is a work week and we have to get back to our daytime jobs. So can we have this sandbox available where we can just explore, play, figure it out? Right. So what we can do is we can keep where two instances open. So the reason why we reduce the number of logins is because we had not set it up in a production style environment, right? So we set this up more as a, on a desktop type environment but we did not expect so much of traffic to hit it. And that was potentially causing what do you call traffic jams in our private testing. But once we get off, we can probably keep one or two instances open for a few days, maybe till the end of the week, maybe. Right, for an hour. And you can try. Great, great. Thank you. I mean, alternatively, we could even have a couple of hands-on workshops, just the hands-on workshop because by now we know what to expect. So we ourselves on our end also will not be fumbling as to setting up our account and all kinds of things. Right. The easiest for you is to create two users. So once we clean up the sandbox and then you can upload one art as user one and then put it on auction and you can open the auction and then transfer it and the user two, which is yourself, can bid on it and play with it. Okay, great. Great. Okay, Sam? Hello, this is Samuel Lea from Towson University close to Morgan State University. I'm just curious. I saw a message in the Discord about someone transferring their NFT over to the trust wallet. Is that a possibility? So this application is built on fabric and fabric has no integration with any of the existing wallets in the public blockchain. Okay. So in general, the assets stay on the blockchain and the wallet is just exposing that asset on your wallet interface. So right now the wallet for us is this desktop user interface. Since on fabric we do not have any wallets yet. So that's the reason why you cannot integrate with a trust wallet, but nothing prevents you from creating a wrapper smart contract that allows you to expose on another wallet. Okay. Theodore? Yes, hello, everybody. Thank you very good and the information of workshop. I was just like hitting the wall when I got to the part of how to see, I was able to upload my picture as an NFT, but I was not able to see the marketplace and I wasn't able to see the auction house and to be able to test it and put a bid on it and put a time for the bidding, as well as see the collection of all the available artwork. So what is the reason for that? I wonder. So usually that window where we see all the auctions and open the auctions and stuff is reserved for a role type called auction houses, right? And during this workshop, we did not provide any of the participants as the role of auction houses. I think only the coordinators were doing that. Some of the practical shortcomings were there, for example, if somebody uploads a picture which is not appropriate content and things like that. So we did not want it to do that in a public forum for now, right? You can definitely get instructions in terms of how to do that on your own, how to register as a auction house and then act as an auction house because this is a decentralized application. Anybody can become an auction house and the only thing stopping you from opening auctions is that users actually trust you and some bid their items to you as an auction house. So in this example, we intentionally are creating a user like auction house, right? But in this workshop specifically, but otherwise the version that we're loading into the labs, you can have different role types, correct? A user can register as an auction house and a user can register as a general purpose. Yeah, and I was able to do that eventually at home. Paul, your question. Yeah, thank you very much. Thank you first for the wonderful workshop last week and also this week, I really enjoyed it. With regards to the artwork, I saw the response that once it's uploaded then the auction is closed and someone bought the artwork, then it's no longer in your artwork list. However, is it possible not to track down who bought it because the buyers are anonymous, if I understand right, but at least at what price it went not only for historical purposes, but also in terms of getting like royalties at every transaction. And that falls into the same question that earlier on was if you're always asking and also another person was asking. That's an excellent question. So the thing is like, ideally what we could have done is when that transaction closed, initially we showed a process, right? So the auction is running and the white now is running and whichever races into a close, there is a transaction that is created. So ideally in fabric, you can plug in an event and what you're suggesting, which is a good thing is within that put a fabric event that essentially sends an event to the seller. That could be a change, that people can attempt or we will attempt. A notification to you saying that this was bought by at this amount. Yeah, exactly. And getting to the amount and then how does the, for me as a seller, how do I see that I cashed in? Do I see like a value of the wallet or the, let's say I have like two art pieces that were so $100,000 in the other for $200,000 and then it gets $3,000. Correct. That's where that payment ID stuff concept is there, right? So you get that paid in that payment ID. Right, this is a very specific NFT application for the workshop to teach, right? So you won't see all the fancy functions of a full-fledged application that supports a commercial use. So the questions you're asking at all, so the bare minimum of showing how an NFT can be created on fabric and then how can one do a send, receive or auction? That is what it demonstrates, right? So all the things that you're talking about are good features, but it was not built as a commercial application but as a teaching application. So we can add these things over a period of time. So I will point out that this is at the core, since it runs on fabric, you can use the Blockchain Explorer project and you should be able to examine the values that are recorded on the fabric chain. It's not, I don't think it's enabled in the instructions for this one, but it's pretty straightforward to add. Right, any other questions? Feel free to post it on Discord or ask any of us later on, I think. Yep. Now, if there are more questions, we want to have closing remarks, so I'll pass it back to you. Could you raise your hand, Pratik? So I can see you. If you have a question you want to ask, please raise your hand. All right, Maxim. Hi, so thank you for the workshop and I saw in the code that all the auction houses are based on roles. Would you set up in a real-world scenario that all auction houses as different organizations or just users with different roles? And what would be the difference? So it's built like a decentralized application, so typically it will be organizations, right? Future, you can even see them as decentralized organizations, like DAOs and stuff, but right now we are envisaging them as like a decentralized or an EBA or a SODB or something like that. So the way you would set up Fabric, I think like going back into the concepts of Fabric, in Fabric, hyper-legion network, right? If you create a permission network, it's a network of organizations. So the concept at the highest level is the abstract concept of organization in Fabric. And within the organization, each organization is registered with the environment and they get credentials. And then with those credentials, they can either just become a plain old user of the blockchain network or they can technically operate a peer or a node. And that node would have the code that you just saw and the node would have the chain code and it'll run and maintain a copy of the ledger. So technically speaking, if this was a business network, that is how the business use case would be laid out, that which are the participating organizations and which organizations want to operate a node and which organizations just want to trust certain other organizations. So certain organizations become trust anchors and they manage ledgers on behalf of other organizations that do not want to have the pain of hosting a node and managing it. So that's how we would set up the network. So we have four nodes here and each one of those nodes in our example here is we have four nodes and each, there are two organizations, each organization owning two nodes. That is how the code has been set up. So if you go in and see that, technically it doesn't, so the more the number of organizations, you can have more organizations and they can all operate nodes or just be participants. Make sense? Did we answer your question? I think he muted. So I, yeah, others, there's Maxine. All right. Yes, thank you. So I think like this app should help you learn fabric in the simplest way, you can help with the local setup or whether it's the public setup and how you can build a chain code which is a smart contract. And in fact, it can also teach you how to structure smart contracts and have a client that talks to it. Out of the box, no application gives you a user interface. So one of the good things about using this is like there's a good user interface that talks to the blockchain and so one is able to visually see what happens. This can be a boilerplate for you to like build things and stuff as well, yeah. I think if no one has additional questions, I'd like to thank everybody for all of the hard work that was put in. I'd like to thank Morgan State for connecting us to so many HBCUs. Ali, did you have any closing remarks? Not really, right, right, Jones. I just wanted to again, express our gratitude for working with us in getting this workshop together. This has been a wonderful workshop. In terms of detail, you won't find it anywhere else. And this is a wonderful opportunity for all of our students and faculty at Morgan State University and all the other HBCUs to participate in this exciting space, the growing field that we all need to learn about. And again, we thank Mohan and his team of experts for putting the hours together and making this happen. Thank you to David, to you, to and the rest of the team at ChainYard for making this happen. It was extremely enjoyable to listen and learn. And thanks, it's good to hear. And thank you to Arno from IBM. And I guess I will see you all online. Please join us on Discord and the recording will be on YouTube. Thank you. Thank you all.