I think everything is quite good. Hey, hello everyone good. Hey, hello everyone , thank you very much for coming to this seminar in person. I thought we didn't do that now. But it's nice to realize it.
So nice to meet you. I am Jatan. I work at the Canton Foundation, and we have our own focus at the ETH Global hackathon in New York. So I'll just give you a quick overview of all the prizes. We currently have four areas within the overall hackathon.
The first is private DeFi and capital markets. You know, to put it simply, without all that marketing junk they added to Google Doc. I will explain very simply. All those private DeFi solutions that we have long seen in public blockchains with a single global state, including exchanges or capital markets, capital markets, simply add an element of privacy built in by default. We live in a time when privacy is a major topic of discussion.
Now instead of talking about TPS, everyone asks, “Hey, do you have privacy?” What is your privacy model? How can we protect data? Isn't that right? Therefore, I believe that every DeFi I believe that every DeFi case can now contain an element of privacy as its own part.
So, the first direction, if it's very simple: we look forward to seeing developers use familiar mechanisms, whether for decentralized exchanges, or adding native privacy to public services, margin management, dark pools, lending, collateral protocols collateral protocols - everything you've seen - everything you've seen , but with the addition of privacy. The other direction is something very special for Canton very special for Canton , as we are growing extremely fast, even faster than I expected, especially in the tokenization sector. We see a lot of people trying to build protocols using collateralized repos or a repo management platform. At the same time, tokenization products on Canton are also developing. Therefore, the second direction is dedicated to such cases.
How can a developer at this hackathon create something that meets the requirements of confidential TradFi, RWA, and tokenized assets? This could include anything you can imagine: automation of repo transactions, common repo management platforms for large institutions, tokenized bond issuance, or supply chain finance platforms. Canton has a privacy model with access restrictions based on a " based on a " need to know" principle. Therefore, in my opinion, it will be very interesting to see the results of those who will develop projects in this direction. So, if you ask me which direction I'm looking forward to the most, this is it .
The third direction . The third direction , which is probably slightly inferior to the previous two, will be payments and neobanks. We are seeing significant interest in neobanks in the Canton network. So the reason for including this direction is to see how payments and neobanks can operate on top of the Canton network, using our built-in privacy model and interacting with existing institutions. Currently on the Canton network, if you've been doing your research, we're still trying to develop the payment aspect of the network, right?
We work with JP Morgan, Goldman Sachs, DTCC and other major market players, right market players, right ? But at the same time, we're talking to some native Web3 some native Web3 payment platforms that are coming to us with suggestions: "Hey, this is how Canton should make payments make payments ." That's why the third direction is dedicated to how neobanks and payment services can use the Canton network. The fourth area that we propose for study is “ agentic commerce”. Canton sees the use of AI use of AI agents, especially for finance workflows, growing on other blockchains, including Ethereum.
We're really interested to see how people will use a similar approach to implement agent finance on a blockchain where privacy is a priority: how will agents interact with a network designed to protect data? This is a very interesting problem, and the solutions to it will undoubtedly be even more interesting. But then again , AI agents are n't what we have our highest hopes for right now, but it would be nice to see them. I just wanted to give you a quick overview of all of this. Yes.
I have already uploaded the full workshop online. So if you want, you can go back and watch the video on YouTube where you can see my face. I made it really small so you could see the screen and not me, to be honest. Yes? But the main thing is to write your first code in Daml.
What kind of mentality do I need when I write on Daml, huh? So, if you have any problems, of course I will be at our booth. But you can watch this entire workshop. We have official documentation, right? We completely updated the documentation recently before this hackathon to support everything you need.
For example, OpenAI, ChatGPT, Claude, Perplexity, copying to your MCP copying to your MCP server, that's what people are excited about right now, right? Additionally, there is a native LLM model provided by Digital Asset. So instead of looking for an API or a page in the Canton Network documentation, you simply query the model. It will give you a specific page, API or SDK, whatever you need, right? We're just trying to make your life easier here, and I sincerely appreciate you taking the time to work on our tasks.
So we will do our best for you, including this separate module in the documentation. This is my favorite because I worked on it. I know this is an Ethereum know this is an Ethereum hackathon, and you have experience with Solidity and Ethereum, right? And this is a new language. So here's a little advice for you.
If you know TypeScript or Haskell, you might think that writing in Daml is like writing English in code, right? Experience with Solidity Experience with Solidity is actually a big advantage for writing in Daml. This is a special module that you can spend 20 minutes on and make a proper comparison of how Canton differs from Solidity, right? Is it a smart smart contract model where you see what functions look like and everything else you're used to, comparing types in Solidity and Daml, control flows, runtime authorization, etc. We compared every known Solidity concept with Daml.
I feel like this is the module that will be most useful for everyone right now. Again, this is a video about writing your first smart first smart contract on Daml that you can use. And for everyone here: deploying on the Canton network is a little more complicated than what you're used to. In all public blockchains, you are used to a single RPC you are used to a single RPC call, right? You go into Hardhat or Foundry, add RPC, just deploy and that's it .
In Canton, things are different. Canton is more of a model where you deploy on top of a validator that you run yourself, right? So you need to have your own validator that you upload your DAR files to, right? These files that are converted are like a ZIP archive, with your dependencies, DAML your dependencies, DAML model, and more inside. So to save you this headache, we have a new tool, the guide to which is on my GitHub, and it's known as Capp Port and it's known as Capp Port .
You just log in . I'm going to go out now to show you how it works. So, there is such a tool—devetc port.io. You just log in through Loop wallet, right?
And that's it. You just enter. I will come back here. I need to go in, which I certainly wo go in, which I certainly wo n't do in front of you, okay? But the easiest way is to easiest way is to either connect directly to GitHub, where you build the entire project, or start building it here.
You could say this is our version of the Remix IDE, right? And what we're doing for this hackathon: we already have the organization name "Global New York organization name "Global New York ", so you don't need your own validator to deploy at all. Okay, you will act as you are used to: write a smart contract or take it from GitHub, click the " click the " build" or "deploy" button and immediately deploy it on the already configured devnet validator. All I need to do is add your parties to the organization, so just send me all the parties, for example, every member of your team, and I'll add you, or just message me on Discord, the easiest way. So, you know what?
May it be so. I don't keep any coins. I'm just going to make you...what is this? Okay, let it be.
So, that's basically all I wanted to tell you about the basics. Since this is a workshop, we will talk about the Canton network in a little more detail. As I said, the architecture of this network is fundamentally different from what you are used to. Instead of a single blockchain where you use RPC you use RPC requests for deployment. In Canton, things are different: the architecture is completely upside down.
There is one global synchronizer managed by the foundation, and each individual entity in the blockchain has its own validator. JP Morgan has its own validator. Let's say DTCC also had its own validator, right? So, each entity runs its own validator or participant, and the global synchronizer model guarantees atomicity between all validators. Therefore, when comparing Canton to any other existing blockchain model, it is indeed very different.
Data visibility is limited to interested parties only. Instead of addresses, Canton uses the concept of "party" the concept of "party" . So when I say " . So when I say " side," it's not some separate or obscure thing. By using a wallet on the Canton network a wallet on the Canton network , you create a so- called side instead of a wallet.
The privacy model here is based on transaction privacy. This means, for example, if two people make a deal and decide that only they will see the data, then no other party or entity on the public Canton network will be able to see what happens between them. For example, you create a project where only the user and the lender should see the loan amount and collateral. You can restrict access to viewing this data, and no one else will be able to see it. I will make sure that you receive the entire presentation when it is finished.
So, this is where DAML is radically different from what you're used to. In DAML, we don't have the usual loops, functions, or logic we're used to. In DAML we use specific terms. We have drawings that we call templates. It's a rights-based programming language , so you determine who can do what.
For example, I am a person who has my own party. There are two other people next to me in the front row . So, I just need to make sure that it's me who confirms each transaction as the signatory. The other two the signatory. The other two are, in essence, those who are just observing the state of affairs, you know?
They cannot write or change anything; They can only watch, right? You allow them to see changes to your smart changes to your smart contract or changes to the data you enter, right? That's why there are things like contract observer options and all that . Again , parties: we don't have addresses, understand? We have something called sides, so when you create a wallet, right?
You do not receive a wallet address. You get the wallet side in the Canton network. Right? So, to make things even clearer, here is the general structure of the DAML model in Canton. You start the entire contract with a module, right?
You have the usual patterns. A template is essentially just one part of the entire drawing, right entire drawing, right ? So okay, I'll explain it pretty simply. So, this is a pattern, right? The pattern starts here and ends here.
But this is not a full-fledged smart contract. A template is just one function, right? So you can see the difference here. In Solidity, you write one function that includes everything. Here you have templates.
Templates are what you use later. So instead of calling the function identifier, you call the template identifier. Yes? That's why we have what we call templates. Inside them, as you can see, everything looks more like defining objects than writing logic.
You say you are declaring a template called token. Then you say that the owner say that the owner is a party. Right is a party. Right ? This is how the parameters work.
When you define an entity, you're just saying that this particular entity is a party, right? Where again do you determine what access this particular person has, right? If there is a person who is the owner, for example, I am the owner of the smart I am the owner of the smart contract, right? Then my access is the signatory. This means the signatory.
This means that I have to confirm these transactions. I am the owner and responsible for all of this. Yes? So when you transfer a token to someone else, that new person becomes the owner. This is a general model of what a typical DAML template looks like.
Okay. Here's another example of something I quickly prepared before this hackathon: what does a typical sales proposal look like in Daml when you write it, right? This is what a typical offer and ask template looks like, where you simply define who the buyer is, what the asset is, and what the price is. Okay, there's a signatory here, who is the seller, right? So, anything a seller sells to someone else, they have to confirm, "Hey have to confirm, "Hey , I confirm that I'm selling this particular item," right?
So, the buyer right? So, the buyer is a party, which means it is a certain entity, right? Then you have an asset, let's say ETH, and the price—again, it's just a price, right? Where the signer is the seller, the observer is the observer is the buyer, and the choice is simply, as you say, we use it as a function. So the choice as a function.
So the choice is essentially a definition of functionality, as you would say contract ID trade, where trade is the whole thing , and the contract controller is the buyer; controller means who controls this functionality, who can activate it. So the buyer has to buy to get something. The seller is the signatory. This means the signatory. This means that the seller must sign.
Yes sign. Yes ? That's the whole point. Then you just say do create trade with the parameters of seller, buyer, asset and price. This means yes.
Please. Um, I'm OK, so choosing is just running a function, right? The choice could be instead of " could be instead of " accept"; You could call it something like "sell asset" or something similar. So yeah, it's not some specific type where you define everything clearly; it's more of a functionality choice, and you're simply accepting the deal on behalf of the buyer. Oh, so you actually have to identify the exact deal ID, right?
Here, the whole trade offer trade offer is just an offer, right? But in the deal itself, you actually define the trade before that. So there's a special template that you have to define where you describe what the parameters look like parameters look like , you know. I would say that instead of contract ID trade, you can do it simpler: define everything in one template and call it contract ID trade proposal. But yeah, that's basically it, I'm short on time, as you know, but I just wanted to give a comparison so people can have a better understanding.
Well, I would say that C-port would be one of the main things, so I'll take this sample. Well, I'll just show you a regular DAML file right in Code. You can start writing the entire file. You are moving to DAML. I'll wait a bit to DAML.
I'll wait a bit , probably via the internet. Uh, yeah, anyway, when you start writing the whole DAML file, you build a project that creates all of that, and then you deploy it. So when you start the deployment, you already get a validator. You don't need to configure it. It's called the Five North validator, right?
So, once you do that, you can just deploy it on top of devnet. And if you encounter any problem while working with Daml, since I know this is your first time, if you encounter any difficulties with how Daml looks, you can always contact me. This is what a typical typical Daml smart contract looks like. Here are some examples that you can use, for example, if you are defining an invoice template: the account owner, this is what the entire invoice looks like. That's where the signary invoice looks like.
That's where the signary is the account owner, like this . Every smart . Every smart contract is filled with many templates. Each template defines a plan for what exactly happens, and each choice determines what exactly everyone will do. It's like a functional.
There are no type updates worth focusing on here. Instead, it is more a definition of functionality in a broader sense. So, sorry, I think I've reached a certain time limit. I know this isn't exactly the full version. So I encourage you to watch the full video seminar where I write a DAML smart contract from scratch and then deploy it on C-port, plus I will be at the booth.
So if you need any help during this process during this process , let me know, I'm here to help. Until then, try building on the Canton network and let me know if you need any help. Okay, thank you.
Automatic transcript — names and jargon may be misspelled.