 Hi everyone. Nice to be with you again. I'm here to talk to you a little bit about this new thing that's coming to webfree.storage. And that new thing is called content claims. And content claims are kind of like find assertions that about a piece of content. And so they can say different things. So let me share my screen because I'll probably just chat, chat, chat. And there we go. Content claims. So there's various different types of claims you can make. So you can kind of think of content claims like... So in the DHT, you publish provider records which say that this ID is provided by this particular peer on the network. Well, content claims are kind of like that. But they're UCANs, they're signed by people. But they can say different things like they can say that this particular content can be found at this location in this car. They can say things like this particular piece of content can be found in this car, in these particular car shards, which is a partition claim. And they could say something like this particular car file includes these set of blocks and the includes CID here would be like a CID to a Car V2 index, for example. So there are new things that are coming to our new APIs that we're launching, hopefully near the end of this year, which will be fully UCANified. But we've kind of retrofitted them to the existing API. So you don't have to do anything. But whenever you upload anything to web pre.storage right now behind the scenes, what will happen is we will actually generate some content claims for your content. And so what I'm going to do today is I'm going to upload a piece of content and we're going to just explore the content claims that got generated for it. So I'm going to use my account, which I have loads of stuff in and can barely lift it all out. So I'm going to try. But what I'm going to do first is I'm going to take a little photo to prove that this is real and live. So here's the photo of me. There we go. I'm going to upload, I'm going to upload this and put it on my desktop first. I'm going to call it like mugshot. There we go. Let's get rid of that. And then what you can do is you can just like drag and drop your files and they get uploaded. We have a small bug here, which is off by like a little bit. I don't know. It seems to upload and sometimes it doesn't. But hopefully it's uploading. There we go. That was better. Okay. So here's my mugshot here and I've got the CID of my photo. I should just be able to go to w3s.link. I would help if I could spell, not history, what are we doing here? W3s.link. And that should hopefully be my face. Lucky you or unlucky. Anyway, no new things so far. This is just what you can do with history right now. But behind the scenes what's happened is a load of content claims have been created. And if you go to what is the URL? Graphql.claims.dag.house right now because it's not officially launched. We get like this GraphQL interface. It's really nice. And what you can do here is you can just explore content claims that have been generated for a particular piece of content. So if I just put that CID in, it's helpful if I have the content but also if I include the type name and run that query then in theory I should be able to get back a list of the content claims that have been created for that particular CID. So we can see here we've got a partition claim and something called a relation claim. And so a partition claim is basically saying that this piece of content is found in these CIDs. Like it's been put in a car file and sent to us. And sometimes when the content is really big the dag will be split into multiple car files. So a partition claim can just basically say this dag can be found in this set of car files. And so I can do a .on partition claim. I can actually list out the parts here. And you can see here we've got in this particular CID there was one part. It's one car file. And then if I go to cid.ipvest.io and paste it in you can see that that CID is actually a car file. A content-addressed archive. So this relates this CID addresses a car file directly. It's the CID, the hash of a car file. That's pretty cool. That's all right. But then we can go further. And what you should be aware of is what's really nice is that you can actually look at the DNA here and claims and you can like drill in and see like all of the information here is really nice. Anyway, that's what I was saying. So you can go you can just you can keep going. So I can say well I've got this car CID. What are the claims that were made about this car CID? So if I put claims in here and I can see if there are any claims that were made by for this particular car CID. So I'll run that. And then we get back the same thing. But look we've got like an extra extra piece here which says that this car there's a there's an inclusion claim here. And an inclusion claim basically says that there is another CID has some information about what is included in this piece of content. And with inclusion claims what you can what you can do is you can do on on and there with me. I'm not super good at typing inclusion claims include. So you can ask for the CID the CID of a thing that will describe what this CID includes. And in this case this will be a CID. To a Carby 2 index it's a Carby 2 multi hash index sorted index. So an inclusion claim is basically saying this car for this car this index has information about what blocks are in it and what by offsets you can find them. That's pretty cool. So yeah and then we can keep we can keep going going even deeper. So claims for claims for this one. Let's do let's have a look type name. If we do claims for this one we've got another partition claim. So partition claims again saying that this particular CID is found in a car in a in a car path or a part. So let's have a look at the part. I swear this is like as deep as we can go. Content you can see how this oh I need to do dot on partition claim. There we go. Sorry let's go zoom right in my way as you can imagine. There we go. So I think that's that's good now. So yeah and and that is again a cast the ID. So in theory what what this is saying is that this Carby 2 index can be found in this car CID and I can actually go to the gateway like w3 s.link ipfs and put in this car CID and it will download it and put it in like here. I'll just put it on my desktop for now and that car should have a Carby 2 index in it. Luckily we can prove it. So let's do that. Oh zoom get out of the way. I need a terminal. There we go. Here we go. I've got this. Make it bigger. Make it bigger. So I'm on my desktop. Do I have time? I've got time. Okay. On desktop we've got I've got this handy kind of ipod explorer thing. I've got it. It's fine. And what I can do is I can do ipod. Sorry I can do a import and then what's that car? What's that? The name of that. So if I import. Oh no. All right. Okay. So cool. There we go. And so if I inspect this then I can see that there's actually a multi-hash index sorted car and it's telling me that these two these two multi-hashes these are like base 58 BTC encoded multi-hashes. One of them is this is probably the directory that because it was it was in a directory and then that's probably the file. Well actually it doesn't matter because he's actually byte offsets. He's not file size as are they. Okay. Anyway. One of them is the directory. One of them is the actual file but these are the byte offsets within the car that you can find these blocks. And so we can actually prove that that is true for my mugshot wherever that went. There it is. Okay. So that's the ID. I need to somehow get a multi-hash out of that CID. I can use so IPFS tool has a cool CID tool which allows you to allow you to reformat CIDs. It's really hard to speak in type. Do you ever try that? It's really hard. So I've got like so what we're saying is like IPFS CID format me a CID and the present M that means give me a multi-hash dash B gives me like tells it to encode it in base 58 BTC. And this is the CID of my mugshot there which is just you can see behind you can see the see-throughs. So then that should come out as that and then oh can I move that to a new window? I can't. Okay. Anyway, there you go. So look. Poo 6E is Poo 6E. So this thing this this particular multi-hash multi-hash index sorted index is indeed describing the blocks that are in my car and because I can because I downloaded this multi-hash sorted index from our gateway via a car file I can also download the car file that my my actual content is in. We had we have like the very first claim we explored as petition claim and it said that it's in this content. So if I download this car file it will have my content in it. I check if maybe do I've got two minutes left. Oh this is previously unexplored territory but I should be able to download this and then do okay so CD where did that go? Over here is that one. I put it there. Desk, lift up and then what are you called? That's that one. Oh whoa don't you search the app store I just want it. Should just use the command line like it being a name by now. So that was like 5VA right? IPFS, car tool, list. Great okay okay that's not quite what I want. Blocks. Okay there we go. Blocks, there we go there's blocks. I'm not quite sure what I was going for there. Anyway so this car has blocks for my file in it but essentially what what it means is that you can use content claims to to given a like root CID of some content. What you can do is client side go and use content claims figure out like what car it's in what blocks are in that car and what byte offsets they're at and then just go and get the blocks that you need. You don't have to download the whole and what's cool about the the gateway where you're where you can download car files is that you can actually issue HTTP range requests to it so once you've got the car v2 multi-hash index you can actually say well I want these blocks and they're at these particular ranges in in the car in my target car so go and get me those blocks and then you can do like batching to just extract the bits you need and you can all do that client side and what's happening in our gateway when we are because we receive cars from users and we store cars at rest in like buckets the server doesn't have to do any work like we make range requests to cars and uh and that's about it