skip to content
Video cover art for Dash Platform Walkthroughs Part 6 with Trent Larson
Video

Dash Platform Walkthroughs Part 6 with Trent Larson

Trent Larson joins Dash Incubator for part 6 of the Dash Platform walkthrough, covering identity creation, name registration, and land governance.

Open .md

Episode Description

Trent Larson joins Dash Incubator for part 6 of the Dash Platform walkthrough series, exploring identity creation, name registration, and real-world land governance applications.

Episode Summary

In this sixth installment of the Dash Platform walkthrough series, Trent Larson—an early Bitcoin adopter and engineer at Medici Land Governance—joins Anthony Campolo and Rion Gull to work through the tutorial while sharing his perspective on real-world blockchain applications. The conversation opens with Trent's background, including his work writing land records to chain for government registries, before moving into the hands-on tutorial. Despite persistent issues with the JavaScript SDK, faucet, and testnet stability, the trio works through Node project setup, wallet creation, faucet funding, and identity generation. When name registration repeatedly fails, the discussion pivots to a conceptual walkthrough covering data contracts, document schemas, and the upcoming July 29th mainnet launch. Trent draws connections between Dash Platform's capabilities and his work in Baltimore, noting how arbitrary on-chain schemas could mirror county registrar records. The conversation deepens into GroveDB's proof system, explaining how cryptographic verification protects against malicious node operators, and concludes with a discussion of data availability as an emerging industry paradigm that Dash Platform has effectively been pioneering.

Speakers

  • Anthony Campolo
  • Trent Larson
  • Rion Gull

Chapters

00:00:01 - Introduction and Trent's Crypto Journey

Rion welcomes Trent Larson to the show, noting their decade-long professional relationship in crypto and tech circles. Trent introduces himself as a computer science PhD who transitioned from academia to industry, and recounts discovering Bitcoin through GitHub projects around 2010-2011, joking that he's lost more Bitcoin than he'll ever own due to early transaction failures.

The conversation traces Trent's path through Overstock's Medici Ventures, where he helped build the first crypto-based exchange in 2016, to his current role at Medici Land Governance. He explains that despite being a crypto-focused engineer, most of his daily work involves traditional engineering to make blockchain solutions actually usable by governments, with an exciting current project underway in Baltimore.

00:03:48 - Mainnet Launch and Screen Sharing Setup

Rion announces that Dash Platform is officially scheduled to launch on mainnet on July 29th, marking the end of testnet-only operations. The hosts discuss an upcoming Beta Weekly episode where they'll review the Dash Core Group blog post detailing the launch and roadmap in depth.

The session then hits an unexpected technical hurdle when Trent's screen sharing fails to display properly across both Firefox and Chrome. After several attempts to diagnose the issue, Trent discovers that his macOS permissions weren't actually granting screen share access despite appearing to work. He resolves the issue by updating system permissions, and the team finally gets the tutorial visible on screen.

00:10:33 - Node Project Setup and Wallet Creation

With screen sharing resolved, Trent reveals he prefers JavaScript and is running Node version 21.5 via a package manager called pkgx. The team confirms compatibility and Trent begins copying configuration files into his project, including the package.json and the api/client.js file that initializes the Dash client.

Trent works through creating the wallet generation script, which produces a 12-word seed phrase. Rion explains the straightforward nature of this step while noting that the faucet has been finicky lately. Trent saves the generated mnemonic and address to his environment file in preparation for funding the wallet.

00:15:17 - Faucet Funding and Block Explorer

Trent navigates to the testnet faucet and works through the captcha process, initially placing his Dash address in the wrong field before correcting it. The team notes that the faucet has been crashing after successful requests, which paradoxically signals that funds were actually sent. Trent confirms the transaction by searching his address.

The Insight block explorer initially blocks him due to HTTPS issues in Firefox, prompting a switch to Chrome where the explorer loads correctly. Trent recognizes the explorer interface from his work with Flow, another blockchain client, and successfully verifies that his testnet funds have arrived.

00:18:24 - Identity Creation and SDK Connection Issues

The team reaches what Anthony calls the moment of truth—creating an identity on Dash Platform. Trent runs the script but immediately encounters a connection error from the JavaScript SDK. Rion and Anthony troubleshoot by manually specifying a known-good DAPI address from the documentation rather than relying on random node selection.

Rion explains that the JavaScript SDK has reliability issues because it connects to random Evo nodes and sometimes selects unhealthy ones. He notes that the underlying network is actually robust when accessed through the Rust SDK, which Dash Core Group is actively developing as the primary SDK. The team flags JavaScript SDK improvements as a potential Incubator project.

00:23:55 - Identity Architecture and Username System

After successfully creating the identity, Trent asks how it differs from his standard wallet key pair. Rion clarifies the layered architecture: identities are foundational entities consisting of a public-private key pair distinct from standard ECDSA wallet keys, and on top of identities you can create contracts, submit documents, and register usernames.

The conversation explores how the Dash Pay contract is a flagship example that allows username registration on top of identities. Trent confirms the practical benefit: as long as he backs up his original 12-word seed phrase, he can restore his identities and usernames on any device, enabling a portable identity that works seamlessly across devices and payments.

00:28:01 - Name Registration Troubleshooting

Trent attempts to register the name "Trent" on testnet, with Rion confirming hyphens should be allowed but spaces are not. The first attempt produces an "identifier expects buffer" error, prompting the team to verify the .env file and check that the label is properly configured.

Repeated attempts hang indefinitely without producing output. The team checks the SDK version, confirms it's the correct version 12 they've had success with previously, and continues debugging. Rion suspects the SDK is once again the culprit rather than the actual data being submitted, as similar fast-failing errors have plagued previous walkthroughs.

00:33:01 - Network Diagnostics and SDK Versions

To determine whether the issue is local or network-wide, Rion directs Trent to the Grafana metrics dashboard for testnet. After sharing the credentials, both hosts confirm the dashboard fails to load on their machines as well, suggesting a network-side problem rather than a tutorial issue.

Rion checks recent communications and discovers that Dash Core Group is actively upgrading the testnet, which likely explains the registration failures occurring at this exact moment. He observes that testnet has become significantly less stable as the platform approaches mainnet release, with increased testing activity living up to the network's name as a true testing ground.

00:38:10 - Conceptual Walkthrough of Tutorial

Since the live execution is blocked, the team pivots to a conceptual walkthrough of the remaining tutorial steps. Trent reviews what successful name registration would look like, including the JSON blob output containing the document identifier that links to the Platform Explorer. Anthony explains that the URL corresponds to the document identifier rather than the identity itself.

Rion describes the data contract creation step, drawing the analogy to defining a database schema that subsequent documents must adhere to. The walkthrough covers contract retrieval, contract updates, and the CRUD operations available against documents that conform to the contract schema, providing a complete picture of how applications would use these primitives.

00:43:07 - Data Contracts and Land Governance

The conceptual review concludes with the Express server and React front-end portions of the tutorial, which expose the registered name through a simple API endpoint and display interface. Trent finds this particularly relevant to his work, prompting a deeper discussion of his use case at Medici Land Governance.

Trent explains that while many blockchain land companies focus on tokenization, his team currently mirrors records that the county registrar—the legal source of truth—has already accepted. Putting these records on chain creates an additional public record, and the tutorial's pattern of arbitrary schemas with custom data is precisely what he needs for the Baltimore project, prompting Anthony to suggest a future proof-of-concept session.

00:48:18 - GroveDB and Cryptographic Proofs

Rion directs Trent to grovedb.org to explore the special-purpose database Dash Core Group built for Dash Platform. The comparison table highlights features including secondary indexes on nested data and a cryptographic proof system, capabilities normally absent from blockchain databases.

To explain inclusion proofs and query proofs, Rion walks through an attack scenario: a malicious operator who acquires the 4,000 Dash needed to run an Evo node could theoretically serve fake data over HTTPS to clients querying contracts. The proof system prevents this because clients can verify that data came from network consensus rather than a single operator, requiring an attacker to spoof the entire network rather than just one node.

00:53:22 - Data Availability and Closing

The conversation broadens to data availability, an industry buzzword describing networks that prioritize verifiable data storage over execution. Rion observes that Ethereum and its Layer 2 ecosystem appear to be moving toward this paradigm, and notes that Dash Platform has effectively been building this functionality before the term gained popularity.

Anthony shares his experience at QuickNode, where customers paid for indexed blockchain data to avoid running their own nodes—a centralized solution to a problem Dash Platform addresses by baking proofs and SDK access directly into the network. The episode wraps with plans to revisit the tutorial post-mainnet launch, potentially with a Medici Land Governance proof of concept, and a teaser for the next day's roadmap discussion.

Transcript

00:00:01 - Anthony Campolo

All right, welcome back. We got part 6 Dash walkthroughs with Trent Larson. What's up, Trent?

00:00:08 - Trent Larson

Hey, good to be here.

00:00:11 - Rion Gull

Good to have you, Trent. Um, as opposed to most episodes, I, I do know the guest, uh, pretty well today, uh, because this is, uh, one of my good friends and colleagues, Trent. Um, we've known each other for, I don't know, seems like 10 years on and off. We don't do a ton together, but we've rubbed shoulders in the crypto context as well as, uh, tech, you know, in general. Uh, Trent, I, I know about you, but you know about you more than I know about you. So, uh, I know that you are basically an OG, um, Bitcoiner and crypto person. I was surprised but not surprised to see— I scrolled through your Twitter account, your X account, and I think you were talking about Bitcoin way back in 2010 or 2011 or something like that.

00:01:05 - Anthony Campolo

I would love to know how you discovered it back then, how you got into it.

00:01:08 - Rion Gull

Yes, just tell— introduce us to, to Trent a little bit. Tell everybody who you are.

00:01:13 - Trent Larson

Yeah, all right. So, uh, yeah, I love computer science, um, you know, I've been programming for a while. I— so I went and got my PhD in computer science in 2002 and after that, decided, hey, academia, you know, it's cool, but I feel like I don't really know industry. So, you know, started working in industry then. As for finding Bitcoin, I don't know. It's just another one of those random things that, like, you stumble upon nowadays in GitHub from somebody else's projects. And so I bought— I've never been able to mine. I do remember buying just hey, okay, I gotta buy some of this. And so I, I bought some in 2011, and I, I tell people that, you know, I've lost more than I'll ever own. It's just, it was hard to get, you know, people would fall through. And so anyway, um, you know, wish I'd of course bought more just like everybody else. But, uh, 2014 is when luckily I was able to join Overstock with Medici Ventures, and they created the first crypto-based exchange in 2016. And, you know, with Ryan we were going to, you know, meetups back in the day. And I remember Dash ones at the beginning. And so anyway, since after, you know, tZERO is still something that's out there and running, but I was lucky enough to join the side project Medici Land Governance, and it's been focused on writing land records to chain. And so that's, uh, where I still am employed. I'm doing other side things with identity and cryptography, and that's fun. But that's, that's—

00:02:55 - Anthony Campolo

So you, so you work on crypto full-time?

00:02:58 - Trent Larson

I don't work on crypto full-time because it's really hard to, um, get, you know, this title story into government. And so most of my time— and actually, I think this is pretty common, even though you work in crypto, most of your time is spent in traditional engineering.

00:03:22 - Anthony Campolo

Yeah, sure. Yeah, I mean, that's kind of why I'm here, is I'm a web dev who is into crypto also.

00:03:28 - Trent Larson

Yeah, yeah. So we're trying to apply it everywhere we can. We have a really exciting project right now in Baltimore that may spread out. Um, so I would say that I, I do crypto as much as possible, but my day job, you know, it's, it's trying to engineer, uh, around it and, and with it so that people can actually use it.

00:03:48 - Rion Gull

Yeah, and we've, we've spoken pretty extensively about some of the opportunities that— you're one of the unique guests on the show in that you have a real use case in your actual job that could actually leverage Dash Platform, depending on how things work out in the real world. And so I'm excited to have— to introduce you to Dash Platform. You don't need an introduction to Dash itself because you've been, you know, around for a while. But let's go ahead and get your screen share going just so that we can jump into that topic. But yeah, thanks for being on. I also wanted to just mention briefly before we get started that Dash Platform is officially going to launch, I believe, June 29th on mainnet.

00:04:46 - Anthony Campolo

So it passed?

00:04:48 - Rion Gull

Yes, we did have a proposal that was talking about whether we should launch it even though all the features and all the things, all the buttons aren't necessarily snapped up, but it's a good enough minimum viable product, and we— and getting it on mainnet is, is a good idea.

00:05:07 - Anthony Campolo

So we should plan a time where the, the two of us will go through this tutorial and we'll just change network to mainnet and see what happens.

00:05:16 - Rion Gull

Yeah, yeah. So I don't know if I happened to accidentally say June, but I meant July, and I'm pretty sure it's 29th. And Anthony, you and I, uh, I I don't— we haven't decided this yet, but I'm pretty sure that's what we're going to be talking about tomorrow in our Beta Weekly because we have a blog post from Dash Core Group that I want to go over and just read the whole thing and discuss it. So that will be awesome for tomorrow. But yeah, very exciting stuff. We're actually going to mainnet. So right now, unfortunately, we're still dealing with the finicky testnet, to some degree finicky, and we're going to hope that it works out for us today, but we'll— let's get started and we'll try to go as quickly as we can through this today. So Trent, go ahead and take the reins at looking through the post here. You can see the table of contents just to give you— give you a rough idea of— or give yourself a rough idea of what we're going to go through. But let's just scroll down and get started on the first step.

00:06:24 - Trent Larson

OK, yeah, I have been scrolling and it's not showing on the screen, so let me see if I'm going to— let's see, I've opened up Chrome. Chrome's not showing on my screen either.

00:06:37 - Anthony Campolo

Oh no, how about I leave? We thought we had fixed this.

00:06:40 - Rion Gull

Yeah, we did actually go through this pre-show.

00:06:42 - Anthony Campolo

Can you get your editor up?

00:06:45 - Trent Larson

It is up and I'm showing it right now and so.

00:06:51 - Anthony Campolo

And you, you'd had the extra monitor, so maybe if you just like disconnect that, that might help.

00:06:56 - Trent Larson

It's disconnected now, so why don't I leave and come back in? Is that—

00:07:00 - Anthony Campolo

Sure, sure.

00:07:03 - Rion Gull

Yeah, so we get to vamp for a while, I guess.

00:07:06 - Anthony Campolo

Yep, totally. Yeah, no, that's, um, super interesting, the, the land title stuff. I remember this is the thing that came up in the— there was like a smart contract on Ethereum that had like the first home deed that was like maybe like 4 or 5 years ago. So very interesting use case.

00:07:25 - Rion Gull

Yeah, yeah. And the biggest challenge with that is obviously getting governments to recognize it. So let's hope that Trent's able to make some inroads there. So we see you back now, Trent, and we see the screen. It's currently showing the three of us. It's not scrolling, is it? Nope.

00:07:51 - Trent Larson

Yep, I'm switching my windows and I'm scrolling through the blog post and you're not able to see it.

00:07:58 - Rion Gull

So I could continue and talk through, but well, Anthony, you could keep going and Anthony could do a screen share and just show what steps that we're on, I suppose. I don't know if that's, that's maybe not a great idea. Um, not the best presentation.

00:08:16 - Trent Larson

Um, why don't I try joining this in Chrome? I'm in Firefox right now. Okay, sure. Yeah, try actually hang out here.

00:08:26 - Anthony Campolo

Uh, let's see if I can, uh, we can try when you do join with Chrome, like instead of sharing your whole screen, try just sharing a tab. Let's just play around and try a couple different setups, see what happens.

00:08:38 - Rion Gull

Okay, there's 3 options. There's whole screen, window, and tab. And I would say try, try a window first, um, instead of your whole screen.

00:08:47 - Trent Larson

Okay, I'll be right back.

00:08:54 - Anthony Campolo

Yeah, this is a, this is a weird one. This has never happened before.

00:09:01 - Trent Larson

All right, present. Full screen. And then Chrome. Okay, so this is interesting. On my Mac, I was— it looks like the settings did not have permissions to share screen either on Chrome or Firefox. Even though it did show the screen. Are you able to see my—

00:10:02 - Anthony Campolo

Oh wait, we're not seeing anything right now. Your screen is not sharing at all on our end.

00:10:07 - Trent Larson

Yeah, window.

00:10:10 - Anthony Campolo

So are you able to update those permissions?

00:10:12 - Trent Larson

I was.

00:10:15 - Anthony Campolo

Oh, here we go.

00:10:16 - Trent Larson

And now do you see me?

00:10:17 - Anthony Campolo

Yeah, we're good. Oh man, thank God.

00:10:20 - Trent Larson

So that was the deal. I'm used to it not allowing a share for a screen share, but usually it tells you. This time, it shared my whole screen but then would never move and I didn't know why.

00:10:33 - Anthony Campolo

That is weird. Yeah. Weird little ghost in the machine. But StreamYard has never let me down before, so I figured we would eventually figure it out. Thankfully, we're totally good. The code starts just past this, the setup and configure Node project. Actually, just real quick before we start, obviously it sounds like you're a very experienced dev. You got a freaking PhD in this stuff. What is your JavaScript experience though?

00:10:59 - Trent Larson

I prefer JavaScript.

00:11:02 - Anthony Campolo

Oh, great. Awesome. Can you just check your Node version real quick?

00:11:05 - Trent Larson

Yeah, and I can get whatever version we need. Um, let's see, let's just— have you ever used package-x?

00:11:16 - Anthony Campolo

No, I use Volta for my version management.

00:11:19 - Trent Larson

Oh, I haven't heard of Volta. I like this one. It's, uh, affiliated with T and the guy who created Homebrew.

00:11:27 - Anthony Campolo

And, uh, oh yeah, he's a, he's a crypto guy now.

00:11:30 - Trent Larson

Yeah, it's currently 21.5, so if that works.

00:11:32 - Anthony Campolo

Well, um, not sure why you're on an odd version, but that should be good.

00:11:39 - Trent Larson

I can switch to whatever version we need.

00:11:40 - Anthony Campolo

Yeah, it needs at least version 20, so you should be fine. I've just never seen anyone run odd versions before.

00:11:49 - Anthony Campolo

And let's, uh, bump up your font also.

00:11:54 - Trent Larson

Okay, let's see. How's that?

00:11:59 - Rion Gull

And then if you could drag the window, the other window, the tutorial window, past the, um, our faces, because, uh, right now we see both. Yeah, there you go.

00:12:11 - Trent Larson

Too distracting. Yeah. I know, it's just how handsome you are is just like throwing me for a loop. Okay, so I'll just copy this whole chunk.

00:12:30 - Rion Gull

Okay, let the timer start now. It's 4:27. So let's, let's see how fast we can do this one. I'm just kidding. We don't have to speed run through it, but I know that you're on a bit of a schedule today and it is pretty lengthy tutorial.

00:12:50 - Trent Larson

Fair enough. I will let you know if I have to go. It's funny, I'm reading this after I paste it in, which is probably not the best practice. All right.

00:13:05 - Anthony Campolo

Most of the people as we run this haven't read any of it, so that's okay.

00:13:10 - Trent Larson

All right. So, create each script file individually. Package.json. So, let's go and open this now with— hello. Wait, let's try this. So, I'm just going to replace that. All right. Import Dash, pass the projects network and— okay. So, we're starting the app here. This is called api/client.js. All right. All right. So starting a Dash client. Sweet. Get a new address. All right. createwallet.js.

00:14:52 - Rion Gull

And we'll let you get to a point where after you run a command, we'll talk a little bit about what we're doing, but we're almost there anyway.

00:15:04 - Trent Larson

So yep, sweet.

00:15:06 - Rion Gull

Create wallet stuff is all pretty straightforward. That's— this is just, you know, this stuff is creating a 12-word seed phrase and whatnot.

00:15:17 - Trent Larson

Yep. Right on.

00:15:21 - Rion Gull

Just a heads up that the faucet is a little finicky, but hopefully we can get that going.

00:15:32 - Trent Larson

Okay. All right. I'm putting these in my environment. Oh, so I'm copying this whole thing, right? In env. Okay, add ones to faucet. So now I'm gonna go to—

00:15:53 - Anthony Campolo

Yeah, Ryan, the, the faucet broke for me in a new way this time, so I'm having issues getting funds. So we'll see what happens with Trent. Okay, okay, they didn't give you the captcha. I had to click through the bicycles. That's the wrong field.

00:16:14 - Rion Gull

Oh yeah, the Dash address goes up top.

00:16:19 - Anthony Campolo

Is it masternode or masternodes for the promo code?

00:16:22 - Rion Gull

It's just masternode, but we don't necessarily need a promo code because we honestly don't need that many coins anyway. Let's see. Invalid Dash.

00:16:35 - Anthony Campolo

Yeah, just no, no, that's fine. That showed up the first time we did. It's running up top, so just let that do its thing. Yeah, if the website crashes, that means it worked.

00:16:47 - Trent Larson

Sweet.

00:16:50 - Rion Gull

So you can open up a new tab and start checking out the—

00:16:58 - Anthony Campolo

Okay, I think you got the funds.

00:16:59 - Trent Larson

I wonder if I clicked on something. So if I search for that address now, yep. Hello.

00:17:08 - Rion Gull

You might need to refresh that one as well. Sometimes it needs a refresh even after you go there. Let's see. So that's not—

00:17:18 - Anthony Campolo

Also, it might be telling you it's insecure, so your browser might be blocking it. If you just click over to the left, it's not an H— it's not HTTPS, it's just HTTP.

00:17:28 - Trent Larson

That's because— yeah, there you go. So how can I force it to let me?

00:17:40 - Rion Gull

Um, good question. I've never actually— we've never been this much on the—

00:17:46 - Anthony Campolo

This is probably a Firefox thing. Yeah, try it in Chrome.

00:17:50 - Rion Gull

You were looking at— you were looking at, uh, you're doing the faucet still, but let's, let's check the Insight. The second tab in.

00:17:59 - Trent Larson

Copy link. Better.

00:18:03 - Anthony Campolo

There you go.

00:18:04 - Trent Larson

Okay. I've seen this view before. All right. Yeah, because this is the same kind of explorer we have watching the Flow, which is another blockchain client. So we wanted to search for my address. All right, good.

00:18:24 - Anthony Campolo

Excellent. All right, Explorer's doing well today. Sweet. Great. So the next one is the moment of truth. This is where we really find out whether the network's working or not.

00:18:38 - Trent Larson

All right, api-client.js. So modify to include the wallet's mnemonic. I think I got that somewhere. Oh, I might as well just copy the whole thing. All right. Yeah. Okay. Create identity. Easy enough. And— okay. So— oh, because my mnemonic is in the env file. Okay. Fair enough. Output. Oh, dear.

00:19:40 - Rion Gull

Okay, here we go. Uh, let's—

00:19:47 - Anthony Campolo

That's a new one. Um, you want to hit up Mikhail and ask him which IP address we should be using, or we can try the one we used last time?

00:19:57 - Rion Gull

Let's try the one that we used last time for now. Um, I'm gonna also open up, um, the Grafana. See if— oh man, I gotta find the link to that because I'm on a different computer now. I'm gonna have to look in our conversation because it's not public. Grafana dashboard. Do you have the IP address, Anthony, from last time?

00:20:38 - Anthony Campolo

I'm literally going through the YouTube video right now to find it.

00:20:42 - Rion Gull

Oh, I think I found it actually.

00:20:46 - Rion Gull

I'll paste it in our Discord chat. And let's see, I'm just going to go ahead and click on that. Yeah, so if you click on that, it says method not allowed. Which means that the actual server is up. So, that's actually good.

00:21:00 - Anthony Campolo

So, now we just also have to find the docs page that shows how to get it in.

00:21:06 - Trent Larson

Right.

00:21:09 - Anthony Campolo

Let's go to docs.dash.org. And then go to— open your hamburger menu. Other one. Top left.

00:21:29 - Anthony Campolo

Yep. And then go to— scroll down. Or go to platform docs, actually. And then hamburger menu again.

00:21:38 - Trent Larson

This one?

00:21:39 - Anthony Campolo

Yep. And then under tutorials, connect to a network. And then scroll down. To connect via address. And then we're going to get that part, the DAPI address, into our client. You can just put it along with the rest of the info you have in your client. So, it will be just the DAPI address part. Don't grab the whole thing.

00:22:09 - Trent Larson

Just this?

00:22:11 - Anthony Campolo

Even less. Just that. Exactly. Yeah.

00:22:14 - Trent Larson

Oh, because there's a dash.client right there. Okay. Yep. Mm-hmm.

00:22:18 - Anthony Campolo

And then we just have to include the IP that Ryan gave us in the Discord.

00:22:25 - Trent Larson

I'm guessing no slashes or HTTPS?

00:22:28 - Anthony Campolo

Yeah. Write it just like they got in the docs and then delete the other one and then rerun that command.

00:22:34 - Trent Larson

There we go. Yeah. I wish I had this kind of help on all my project setups.

00:22:46 - Anthony Campolo

We're pros at this by now. Like I said, this is part 6, so imagine how part 1 through 4 went.

00:22:55 - Rion Gull

So that what happened here— and we'll know if what I'm saying is useful at all in a minute here when this runs through— but the previous node, it could have been that what the DAPI client, um, DAPI, Decentralized API or Dash API. Looks like it worked. This is good. Um, it connects with a random node, uh, Evo node is what we call them, that's running platform services. It connects— it finds the list of them, uh, connects with a random one, and sometimes that random one is not healthy. Um, and so the SDK is not very up to snuff. So it needs some work, the SDK, but the, the network itself should be, um, pretty reliable. Because, because it's, it's pretty reliable using, uh, the Rust SDK and other tools that DCG is more actively building.

00:23:55 - Anthony Campolo

But the JavaScript SDK, for better or for worse, um, yeah, I would say I think it's been four out of the six we've hit this issue and two out of the four worked first time. Not a great record.

00:24:13 - Rion Gull

Anyway, updating the JavaScript SDK is something that we could tackle if we wanted to. Just throw that out there in case somebody or you, Trent, are interested in doing some JavaScript SDK work, but that probably needs to be given some love. But anyway, let's move forth with the tutorial. So you got the command that we just ran was create-identity. And essentially what create-identity is doing is creating a public-private key pair that is the basis for your interactions on Dash Platform.

00:24:53 - Trent Larson

And how is that different from, you know, just my basic wallet that has my key pair in it?

00:24:59 - Anthony Campolo

Good question.

00:25:00 - Rion Gull

Yeah, and unfortunately, I, I don't know the details of this, so nor do we really need to know any of it for now. But I'm— it's something that I want to look into because I kind of like creating—

00:25:14 - Anthony Campolo

It allows you to create a namespace on platform instead of the main— the layer— I don't know if layer 2 is the right term, probably not, but that's kind of how I think about it. Platform's like this extra layer that runs on top that includes additional functionality, including like your own namespace. So we're eventually going to create your, like a, you know, Trent.dash kind of account, you know.

00:25:38 - Rion Gull

Those are two separate things though. So the identity, just to be clear, is, is a long string, you know, of random characters and it's— from what I understand, it is that public-private key pair. I don't know exactly what curve it's using. I don't think it's standard elliptic curve stuff, public-private key pairs, ECDSA kind of stuff. I think it's different. But regardless, that is the basis. And then on top of that identity, you can create contracts. Submit documents to other contracts, contracts that have been created. And the Dash Pay contract is one of the flagship contracts that allows people to register a username on top of their identity. So the identity— you can have multiple identities, and then each identity can have multiple usernames, and each username would have then a series of public-private key pairs used for actual funds.

00:26:42 - Trent Larson

So that makes a lot of sense, actually. Is it the case that my original wallet seed, as long as I back that up, and then if I reinstall on another computer, I'll restore not only my address but also I can get these identities from that? Is that true?

00:27:03 - Rion Gull

Yep, everything is derived from, from the, uh, the seed phrase, the 12-word seed phrase. And the whole idea with this naming thing is that you can have one username that's across different platform— different devices, your different devices. And as long as you know that you have the username Trent, then you know that, and you can access that, then, then that's all you need for all of your platform interactions and payments. Okay, so let's keep going. The next step is—

00:27:44 - Trent Larson

Yeah, identities.

00:27:49 - Rion Gull

This must mostly just a sanity check to see that you can retrieve that identity that you just created, right?

00:28:01 - Trent Larson

Okay, and here we go. In some ways I'm glad this is being recorded because, you know, if you've inserted any malicious code anywhere, then, you know, I have proof that it was you walking me through it, and I want a copy of this recording.

00:28:26 - Anthony Campolo

Yeah, luckily there's been no changes to this code. He's been— if you've had 5 other people run through it and their computers have not been owned, unless I'm really playing the long game, right?

00:28:40 - Trent Larson

Okay, so retrieved identities. It got this one, which looks the same as before. Okay, okay, all right. 1 Dash is equal to 100 million Duffs.

00:28:57 - Rion Gull

That, wait, that's actually a typo. I think that we need to fix that. One, no, that's true.

00:29:03 - Anthony Campolo

One Dash equals 100 million Duffs, and yeah, I wrote this with you telling me what to write, so that should be correct.

00:29:12 - Rion Gull

I thought we might have had a typo there, but I was reading wrong.

00:29:16 - Anthony Campolo

Yeah, yeah, I will never remember that conversion offhand. Just think one dollar is 100 cents, but instead of 100, it's 100 million. Obviously.

00:29:32 - Trent Larson

This is that one time Ryan thought that he was wrong, but he actually wasn't.

00:29:41 - Anthony Campolo

Hopefully we're going to be— this dude knows you well apparently.

00:29:47 - Rion Gull

I've been wrong plenty of times. And again, this, this, this waiting is mostly the SDK's issue. I don't think things are this slow on the actual network, on the network side. It has to do with settings. There's a configuration that you can add, I believe, that will speed that up.

00:30:12 - Anthony Campolo

But yeah, maybe, um, we can update the, the client to sync even less blocks than it currently is at right now. That might help.

00:30:22 - Rion Gull

Well, it has to do with the storage adapter warning that you keep seeing, um, running a Node.js without any specific specified adapter. We don't— we're not storing any data locally, and so it has to continually sync from what— that's one thing that I've heard, but I haven't verified that. But I think that's what the— the purpose of that storage adapter is, is so that you can, you don't have to rescan all the blocks from the one that we said was our beginning block in the configuration file.

00:30:54 - Anthony Campolo

Okay. Yeah, now that we've done this, done this tutorial with a bunch of people, it seems like the things that if we could upstream some stuff to the actual SDK, it would be better retries for the correct nodes so we don't hit those errors and then the sync issue or the general speed issue.

00:31:15 - Rion Gull

Yeah, it's just very— I mean, it's old. It's pretty old code because this has been going— this project has been going on for a while and DCG has decided to make Rust the primary SDK. So that's been their focus and Incubator can take on updating and improving the JavaScript SDK if we want down the road. But right now it's good enough to get the core concepts. Like using this SDK is good enough to get the core concepts for now. So it's probably okay. Let's see if spaces are allowed.

00:31:54 - Trent Larson

Should I be brave or not?

00:31:58 - Anthony Campolo

No, spaces will definitely not be allowed.

00:32:01 - Rion Gull

I know, but I was just, I was just trying to— yeah, let's skip the error.

00:32:07 - Anthony Campolo

I can tell you right now, spaces are not going to be allowed.

00:32:12 - Trent Larson

All right, here we go to register a name. Identifier expects buffer. But it looks like it's still working on something. That's weird. Hmm.

00:32:33 - Anthony Campolo

Go to your .env again real quick for me.

00:32:41 - Rion Gull

Do you know if the hyphen, the dash is allowed in the—

00:32:44 - Anthony Campolo

The dash should be allowed.

00:32:46 - Trent Larson

Okay.

00:32:48 - Anthony Campolo

But we could try without the dash to see.

00:32:52 - Rion Gull

Just say Trent, man. Like, you're the man. You're the Trent of Dash, right?

00:32:57 - Anthony Campolo

There's only one Trent in this world.

00:32:59 - Trent Larson

All right, so we should kill this then.

00:33:01 - Anthony Campolo

Yeah.

00:33:02 - Trent Larson

All right, all right. I will be the Trent on testnet.

00:33:06 - Anthony Campolo

Oh, it ran the same thing. Okay, let's, um, let's just let it, let it finish, or at least let it run long enough so that we could see whether it's going to finish or not. Give it like 20 or 30 seconds.

00:33:19 - Trent Larson

Okay. Did run register name, right? Yep. Okay.

00:33:27 - Anthony Campolo

Go to your register name file real quick. Just make sure we didn't mess something up in the copy-paste. So, we're added in— it looks like your thing is adding in some types. Are those actually being written into the code or—

00:33:46 - Trent Larson

No. No, this is just a hint. Just like this. It's not in the code. It's not a line.

00:33:52 - Anthony Campolo

Okay. All right. So, that shouldn't be an issue then. And label's good. Label's good. You got— you don't have any spaces in your .env.

00:34:07 - Anthony Campolo

Interesting. All right. Well, let's see. See what happens. The next thing we can try is just hardcoding your label right into the register name.

00:34:23 - Rion Gull

All right, you tell me when. You do have a label in your process env, don't you?

00:34:28 - Anthony Campolo

Uh, yes, you do, and you saved that. That's not just hanging, right?

00:34:34 - Trent Larson

It does save automatically. Okay, and it does have a marker on it over here when it's not.

00:34:41 - Anthony Campolo

Okay, because everything should be good unless Trent was already taken.

00:34:48 - Rion Gull

Maybe the error came so fast that it makes me think that it was something in the SDK once again. And yeah, that's what I'm thinking too.

00:35:02 - Anthony Campolo

We could try, um, bumping it back to 12, I guess.

00:35:09 - Rion Gull

Oh, what, what version are we running right now? It's a good question.

00:35:12 - Anthony Campolo

We're running the most— we're running the most recent, which should be 15. But this, this hasn't been— we've run this version with other people and it hasn't been an issue.

00:35:20 - Rion Gull

But let's, let's try the 12 if this doesn't work, because that has, that has been— that has given us better luck, uh, than 15.

00:35:30 - Trent Larson

Are you talking this version?

00:35:33 - Rion Gull

Oh, it is 12.

00:35:34 - Anthony Campolo

Oh, because I fixed that in the, in the instructions. That's right. That's why I wanted to give them the Netlify version because I fixed that in the, in the instructions. So yeah, so we're on the, we're on the correct version according to Ryan.

00:35:47 - Trent Larson

Okay.

00:35:50 - Anthony Campolo

Yeah, this, this has been hanging for a while. So I guess we try and just hard code it.

00:35:58 - Rion Gull

Well, I don't think that's going to fix anything, honestly. But Trent, can you bring up the link? So go to the StreamYard and there's a link for metrics.testnet. It's a Grafana link at the very end. Yeah, in the public chat, wherever that is. Yeah, comments, there you go.

00:36:25 - Trent Larson

Dash Incubator, Grafana, this guy.

00:36:27 - Rion Gull

Yeah, bring that up and let's see, let's do a sanity check on the network itself.

00:36:33 - Anthony Campolo

He's gonna have to log in though, right?

00:36:37 - Rion Gull

Yes, but I, the username is dash and the password is platform.

00:36:47 - Anthony Campolo

Blowing the secrets, Ryan. Now everyone can know when our network is down.

00:36:53 - Trent Larson

Yeah, yeah, this is not responding for some reason. Um, I've got networking.

00:37:17 - Rion Gull

And I, I do know that they—

00:37:18 - Trent Larson

Let's see.

00:37:24 - Rion Gull

Yeah, that's not loading for some reason. Let me try it.

00:37:30 - Anthony Campolo

This is the new one. Never got stuck on this step before.

00:37:38 - Rion Gull

They might be, um, I know that they're getting ready to upgrade the network, and we may have run into the exact time that they're doing that because I'm not getting it to load for me either. So it's not on your end for sure.

00:37:51 - Trent Larson

Okay, interesting.

00:38:10 - Rion Gull

Yep, definitely not working. Let me check the, um, is there another step? What step did we get hung up on here?

00:38:19 - Anthony Campolo

Register name. We got the identity, we topped up the identity, and then we're trying to create the, the label, which would be the Trent.dash. That's the register name function.

00:38:37 - Rion Gull

Okay, um, and this— so we may not get too much further with this, but that's okay. We can always, um, pick up from where we're at now on a later stream and do it again, um, because I am noticing that they— they meaning Dash Core Group— they are changing testnet right now to run. Uh, right now, well, worst time to livestream as of 2 o'clock. That's what, 2 o'clock, uh, so 2 hours ago or 3 hours now ago, it was the last message, um, that I saw about this. So it's, it might be likely that, that something along those lines is happening. Um, I'm just gonna send a message real quick to see if anybody's around. See if, um, how is testnet right now? Should it be running? Grafana seems down. Yeah, so in theory, testnet originally, early on in the days of Dash, it seems like testnet was more of a pretty stable place, like pretty stable network. But as we're approaching the Dash platform release, it seems like there's a lot more testing going on in testnet. So I guess the name is— it's living up to its name as a testing ground.

00:40:36 - Anthony Campolo

Yeah.

00:40:37 - Rion Gull

Um, less people than I'd like, but, um, thank you.

00:40:42 - Trent Larson

So on this step, if it were to work, um, should this label correspond to my name in my case?

00:40:54 - Trent Larson

And then this view on Block Explorer, would this document be Trent? Yep.

00:41:01 - Rion Gull

Let's, let's just check out Anthony's and see if, see if we're able to get that link, uh, to show us. So it looks like the Platform Explorer is working fine, so that's one thing. But, um, oh, we're loading.

00:41:15 - Anthony Campolo

This is not going to be just, just Trent. Like, you saw my, my document link is— doesn't look like that. Okay, so it's gonna be, uh, your some sort of—

00:41:25 - Trent Larson

This is yours, ajcwebdev.

00:41:28 - Anthony Campolo

Yeah, and it— the, the URL corresponds to the identifier for the document, not the identity. So it's using— I think there's a contract that is used to create the name, I believe.

00:41:46 - Trent Larson

Gotcha.

00:41:47 - Trent Larson

Okay. And where did you get that identifier? I don't see this in—

00:41:54 - Anthony Campolo

So that's what's going to be output. So if you go up to the— scroll up into the code, it'll give you your label and then view on Block Explorer. Scroll to the right a little bit.

00:42:07 - Anthony Campolo

So, it does the name registration dot and then dollar sign ID. So, that has to do with the— this is all JSON schema stuff. So, basically, when you register the name, you get like a JSON blob back with all this information. And that's what allows you to find it on the platform explorer.

00:42:28 - Trent Larson

Yeah. Document here in the blog, um, you might put this inside here because that is part of the output.

00:42:38 - Anthony Campolo

That's right. Yeah, correct. Yeah, but then you can't click it as a link in a blog, so trade-off.

00:42:44 - Trent Larson

Good point.

00:42:46 - Anthony Campolo

Yeah, this has been hanging up like 5 minutes now, so this is clearly not going to work.

00:42:51 - Rion Gull

Let's go back to the, uh, the tutorial and just kind of do a conceptual overview of what, what's doing it, what it's doing here, because Anthony gives all the outputs that we would see anyway. So just kind of scroll through here and then see the idea.

00:43:07 - Anthony Campolo

Yeah, this is the JSON blob I'm talking about with the ID and all that.

00:43:11 - Trent Larson

Yeah, has your name, the ID. Yep.

00:43:17 - Rion Gull

Okay, so the next step would be like creating a data contract. And then, uh, you know, doing basically like CRUD on a data contract— create, read, update, delete. And then after a data contract is created, when you—

00:43:36 - Rion Gull

You, you can think of it as making a schema that all other documents would adhere to, just like a database schema.

00:43:48 - Trent Larson

Okay, or rather, can you hear anything in my background, by the way?

00:43:53 - Anthony Campolo

Yeah, we hear a little bit of opera. Yeah, no, that's fine.

00:43:59 - Rion Gull

So this is, which is awesome.

00:44:02 - Trent Larson

As much as you appreciate the entertainment over here, that's why I keep waving to make it easier to hear me. Okay, so the schema is defined, yeah, in the, uh, okay, in the contract. That's kind of cool. And then you can retrieve the contract. Okay. And you can update the contract. Okay. Existing set documents. So that's updating the contract. So is this submit note document going to be utilizing that same contract?

00:44:44 - Rion Gull

So this will be a document against that schema or contract. Yeah.

00:44:50 - Anthony Campolo

And now I changed it, so now it gives you your, your own name instead of AJC Web Dev. That was one of the other changes in this.

00:44:57 - Rion Gull

Oh, good, good. It's too bad we can't actually test that, but you know, that's updated.

00:45:03 - Trent Larson

Okay. And then you'll actually execute that contract, I assume. And here we go, output. Okay. Yep. Delete documents, update note document.

00:45:17 - Anthony Campolo

So were you able to get in touch with anyone, Ryan, in terms of like actually confirming that the issue?

00:45:21 - Rion Gull

Yeah, nobody, nobody's responded on that. So we'll just continue with the conceptual overview, and then I'd like to ask Trent if he has any specific questions about like what— uh, yeah, this is the good thing about having an experienced dev is he could just be like, read through the code. You know, you could even look through the code of the SDK to see kind of what it's doing if you wanted to. But we only have about 10 minutes left for, for the time frame that I was shooting for anyway.

00:45:51 - Anthony Campolo

So yeah, yeah, this last part, you hook up an Express server to then expose an endpoint that gives you back your, your name. And then you create a React front end that then reads from your Express server to display it in like a little front end.

00:46:08 - Trent Larson

Oh yeah, nice. Okay, that's a nice touch.

00:46:11 - Rion Gull

Yeah, and actually I'll ask you to open up a new tab and, um, go to, um, grovedb.org, I believe.

00:46:27 - Trent Larson

You mentioned this before. If you don't mind, pause this for just a second. Yep. Um, I wanted to go back on here and make a note that, you know, this is a particularly apropos example for me because it shows, you know, I can not only, uh, you know, it's pretty easy to create my own schema on-chain and add arbitrary data.

00:46:53 - Anthony Campolo

And that's right.

00:46:54 - Trent Larson

As Ryan, you know, we've talked about, um, for MLG, our Medici Land Governance. Yeah, we, um, you'll see a lot of land, um, blockchain companies talking about tokens, and we may go there at some point, but right now all we're doing is copying what the registrar in the government, you know, the county government has accepted and putting that on chain. So it's, it's basically a copy. It's not the source of truth. We want to get there someday, but that's useful because that's a public record. And that's right, yeah, this, you know, particular example you've got shows how we could do exactly that with some data that we're going to put on soon for Baltimore.

00:47:41 - Anthony Campolo

That's cool, man. We should get you back sometime and try and do like a proof of concept of that. That would be really interesting, actually.

00:47:48 - Trent Larson

Yeah, totally.

00:47:49 - Rion Gull

Yep. Yeah, and we— yeah, we don't have to continue the tutorial. We can actually just try to make a very bare-bones version of what you would— you would want as your land governance.

00:48:00 - Anthony Campolo

That's what we could— we could try skipping the name registration step entirely, see if we can just write documents.

00:48:07 - Rion Gull

Yeah, we could try that.

00:48:08 - Trent Larson

Yeah, yeah, they're both useful. In that blog, I would have been—

00:48:11 - Anthony Campolo

It's up to you guys.

00:48:12 - Trent Larson

The identity stuff is, is interesting to me as well, just on other projects.

00:48:18 - Rion Gull

Yeah, so this is, this is the, the database that it's built on. And if you go to the comparison table, it shows you some of the features of that you get with this database, which in theory can be used outside of a blockchain, um, outside of a blockchain context. But we use this GroveDB, which Dash Core Group built special purpose for this, for Dash Platform. But you get, like, like it shows, you get the proof system and you can do secondary indexes on nested data, for example, straight from the blockchain and identify that you want certain fields indexed so that they're more performant and whatnot. So you don't necessarily need a lot of performance for your application, it seems like, because it would be like a one-time lookup thing. But, um, but you, you have that at your, at your disposal if you want that kind of thing.

00:49:23 - Trent Larson

Interesting. Okay, thank you. So, uh, the—

00:49:28 - Rion Gull

When you say inclusion proofs, non-inclusion proofs, query proofs, I mean, what, what does that mean? So when you're contacting a node on the network, in theory, somebody could, if they had 4,000— it requires 4,000 Dash to run an Evo node.

00:49:53 - Anthony Campolo

It's getting cheaper and cheaper every day.

00:49:58 - Rion Gull

So like, you know masternodes. They require 1,000 Dash.

00:50:02 - Rion Gull

Evo nodes, which is running Dash Platform, requires 4,000 Dash. And then you can be part of—

00:50:08 - Anthony Campolo

Today it's like $100K.

00:50:12 - Rion Gull

So let's say an attacker wanted to, you know, mess, mess around, and he's got the 4,000 Dash. He runs, he spins up a node because this is a permissionless system. He spins up a node, now he's one of the Evo nodes, and the, the clients that are connecting to him want to query some data, right? Like they want to query Trent's Medici Land Governance contract to see what's registered. Well, in theory, he could just send back bogus data because we're just contacting him through HTTPS. Um, and but there's no, you know, you know how computers work and you can run any service that you want on any port and you could just fake some data if you wanted to. But these proofs tell you that, okay, if you wanted to try to fake data, like you wanted to say, no, this land title actually isn't in the registry, you wouldn't be able to do that. Because not only do you need— not only does the data have to come from— so what I'm trying to say is you have to, you have to spoof the whole network, though, because the proof says that the network has said that this data existed, uh, say like a week ago. And the network— say that when you uploaded that data, you got the proof that it was uploaded and everything, and the network came to consensus around that state. And then later, if you're querying that state, you could have that rogue actor that could send you bad data in the absence of proofs. And they could get away with it. I mean, it's very unlikely that somebody would do that, um, because, you know, the SDK is contacting a random one, and what are the odds and all that sort of stuff. But if you, if you don't have the proof, then you're just contacting somebody that's— you're, and you're asking for, for data from an individual operator on a network, and that's not good enough. So, so yeah, this, this, this database has that consensus, that network consensus built in with the proof system as well. So I don't know if you've heard too much about, um, this concept of data availability, but that seems to be— this is a buzzword around the crypto and blockchain scene— is data availability. So it seems like a lot of networks are moving from this this model of, uh, all of the nodes are running execution, and they're, they're moving away from that, like Ethereum, and they're moving toward a world where it's now more about data availability on a blockchain and not necessarily the, the execution or the, um, what's the other word that I'm looking for? Um, it's not, it's not compute, it's storage. And so networks are— so if you wanted to Google that term, like, this is basically— we were trying to do that before it was cool.

00:53:22 - Anthony Campolo

And I was talking about layer 1 versus layer 2. This is what a lot of the Ethereum layer 2 stuff is about.

00:53:28 - Rion Gull

Yeah, but even Ethereum layer 1 is, is, I think, moving into this network, uh, this data availability, um, paradigm where the, the Layer 2s are contacting that Layer 1 and just saying— I, I don't know, it's a little beyond my, um, beyond my understanding. But I do know that this idea of just having data available from the chain for, for other clients to contact and, and, and get, whether that's like a solo client or an L2 client. That is where the industry seems to be moving. And I think without looking into the term and exactly like the nuances of what that means, this data availability thing, I'm pretty sure that this is exactly what, what Dash Platform has already been working on and is basically has released and will soon be on mainnet. Isn't it— wouldn't it be— isn't it just easier to say, I want some data on a blockchain and I want to be able to give it a schema and, and be able to query that like a database? Um, but you haven't historically— like, there, there's not many chains that have given you that option.

00:54:49 - Anthony Campolo

This is, this is actually— this is one of the problems that the company I worked for, QuickNode, was meant to solve. They would have you could buy like a regular node or a full, or, um, they had terms, I forgot what the terms were, but you could buy a node that would give you like the last, you know, however many months of data, or you could buy one that would give you all of the data, and they would basically index it for you, which is one of the things we were looking at with Mikhail, and it's just like, this is just a hard problem to solve with blockchain, is kind of what I gathered from working at that company.

00:55:20 - Rion Gull

Yeah, because those companies spring up. Because people don't want to run their own nodes and trust their own— they don't want to do all that work to get, um, to get blockchain data. They want to just outsource that to a company and they trust the company, and that's fine for a lot of people. But if you can provide data with proofs and SDKs that can just talk straight with the blockchain instead of talking with a company that has indexed the data. Let's just bake that right into the, to the blockchain itself and provide that as a service so that the nodes running the blockchain, you can contact them, and it's as easy of a developer experience as working with, uh, one of these indexing companies. Now, we don't know. I think it's— we're still going to need a lot of work. It's still a lot of work to get to that point where the UX, the DX is just as good as working with, you know, a company that's specializing in this. But the idea is that's what we're trying to do, is we're trying to give users the ability to directly connect with and contact and communicate with the nodes on a blockchain network from clients instead of having that middleman of corporations doing that.

00:56:43 - Rion Gull

So anyway, um, I think let's wrap it up there. Uh, I think that was a good introduction, and maybe if we do have you on next time, another time, we'll try to— we'll try to jump in and do a little bit more playing. And maybe that will be a month from now when— or a little bit more than a month from now when, uh, when it's on mainnet. So yeah, and I think we have a lot of work to do with the SDK because I am getting a little tired of, of these issues.

00:57:11 - Anthony Campolo

Well, it's— this has been good because we, we've kind of— we've narrowed in on what the, the main issues are that we can kind of tackle. So I think this is— this has been very, very useful. It was super great to have you on, Trent. We definitely love to have you again.

00:57:26 - Trent Larson

Good. No, it's been great to see the progress here. And, um, yeah, looking forward to mainnet. That's awesome.

00:57:31 - Anthony Campolo

Yep.

00:57:32 - Rion Gull

All right, well, uh, we'll talk later. Thanks, Trent, uh, once again. And thanks for everybody, uh, for tuning in. And we will see you tomorrow where we will be talking about the mainnet launch of Dash Platform, the roadmap. Again, it's slated for the end of July. So we'll go through the blog post and we'll see what we can pick out of that. And I'll probably have details. I haven't read it yet, but we'll see you then.

00:58:01 - Anthony Campolo

Is it live or can we see it? It's live, yeah.

00:58:05 - Rion Gull

We'll go through that tomorrow.

00:58:08 - Anthony Campolo

Awesome, man. Good stuff. All right, bye everyone.

On this pageJump to section