Nick Beattie - Rainbow Wallet

devtools.fm August 4, 2022
Source

{/ TAB: SHOW NOTES /}

This week we chat with Nick Beattie, lead engineer of RainbowKit. We talk about web3, the changing face of the internet, and the Rainbow company.

{/ LINKS /}

Twitter Website

Tooltips

Andrew

Justin

  • Haptic smart knob project
  • Automatic CNC tool head changer

Nick

  • Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
  • Monome Norns Shield is a DIY circuit which extends a normal Raspberry Pi, turning it into a norns.

{/ TAB: SECTIONS /}

[00:00:57] Rainbow Wallet [00:07:30] RainbowKit [00:19:54] Decentralized Identity [00:24:55] Web3 Development [00:35:09] Writing Smart Contracts [00:36:58] Looking to the Future [00:47:16] Tooltips

{/ TAB: TRANSCRIPT /}

Episode 36

Nick: one thing that this like web three movement has certainly done is it's made people rethink transparency and, and data ownership. And, um, if that's all it does, you know, like that is still a, a victory in my opinion. And.

Andrew: Hello, welcome to the DevTools.fm podcast. This is podcast about developer tools and the people who make them. I'm Andrew and this is my co-host, Justin.

Justin: Hey everyone. Our guest today is Nick Beattie a software engineer at rainbow. Rainbow is a crypto wallet. we'll ask you a little bit about, about that in a second, but before we get started, Nick, would you like to tell our audience a little bit more about yourself?

Nick: Yeah, sure. Hi, uh, I'm Nick Beattie. I am an engineer at rainbow. I've been there for little less than a year now. Uh, and yeah, we, we build an Ethereum wallet and some other cool dev tools that we'll talk about and, and some other apps for different platforms too. Uh, yeah.

[00:00:57] Rainbow Wallet

Andrew: Cool. So let's just jump straight into it. Uh, what is rainbow wallet? Why would I want to use it?

Nick: Yeah, good question. So rainbow is a fun, simple Ethereum wallet and you can do a bunch of things with it. You can collect and trade NFTs. You can interact with your favorite defi protocol. You can manage your digital identity and, and you can do basically anything in the world of Ethereum that you can think of you can do that with rainbow wallet.

There's a lot of different types of wallets and we're seeing more wallet companies come every day. There's a lot of competition there and each of these wallet companies have. A different kind of perspective on what a wallet is and what a wallet should do.

So you'll see some that are, uh, more of a utility and, and you connect and you use it just to send transactions back and forth. And then you'll see others like ours that are really designed focused and user friendly. And, and wanna be that app that you have on your home screen and use frequently. Uh, there, there's also other apps that are very specific.

You might see some that are really focused on specific chains or specific defi projects, or just NFTs or just gaming or just music NFTs. Uh, Rainbow's trying to do a little bit of everything, uh, and, and just keep, we wanna keep making sure that we have kind of the best design, the best user experience, the best onboarding, and, and it's something that feels, uh, more like a, a social app, like a, a snap or a TikTok rather than a, a kind of stuffy financial app.

Andrew: Does that mean? There's like, uh, social features built into it also?

Nick: There's uh, some light social features kind of built in now. Um, one of the things you can do is watch other people's wallets, uh, which I find to be pretty fun. Um, so I can see which NFTs my friends are collecting or which tokens they are finding. Interesting. So if I see one of them, you know, pick up, uh, a funny project, uh, something like a doodle or something like that, I might ask them about that later.

Um, we're currently working on a feature called ENS profiles. ENS stands for Ethereum name service. So you, you might see the dot eth names, um, that people have on Twitter. Um, that's kind of like part of your decentralized identity. Um, and we're working on a feature right now where you can build out your ENS profile.

You can purchase a name in the app. You can add data like your GitHub name, your Twitter name, things like that. So wherever you log in across web three, That ball game will be there. Um, and that's kind of the start of what we think of as like a, a social graph or, or more social features that will be coming to rainbow in the next year that we're excited about.

Justin: interesting. Um, so when you can log in through these multiple world riders and it being an Ethereum wallet, are there like special security considerations that you have to take into account? I mean, because I know like, especially in the last bit, uh, the cryptocurrency world has been sort of inundated with scams and, you know, people making off with your coins.

So, how do you approach that?

Nick: Yeah. So there, there's definitely a different paradigm when you're an Ethereum wallet, like, uh, any sort of, of hack, it, it, you know, when those things happen, like your, your funds are gone, so you need to be very careful with your keys and you need to really be thinking about protecting your users and educating your users about what type of system that they are entering and interacting in.

We, do our best one to, to keep those keys safe and to educate our users, um, within the app. But when we're talking about doing things like, you know, logging in and authenticating with Ethereum, um, one of the things that's nice is that we're, we're never putting our password somewhere else. We're authenticating from our device.

We're signing messages from our device to connect. So if you wanna build some, some sort of social feature or sign in with Ethereum, um, I think there's a, a case to be made that, that there's also something safe about that, where, you know, I, I know exactly where my keys are and I know exactly what, what things I'm signing into and signing up for versus, you know, maybe having my data somewhere else and, and not being totally aware of what's going on there.

Everything in Ethereum is, is public, which is a little bit of a, a mindset, mindset shift as well. So you know that when you're interacting with something on chain, that everyone can see that, which I think opens up some, some maybe interesting social, uh, application use cases. Uh, yeah.

Andrew: So, so like when I authenticate with an app using my Ethereum wallet, like, do I have to be like super careful if it's like, can do stuff with my wallet, need to like super trust that service? Is that how these kind of like, like thefts have happened? Like the, the most recent one I can think of is the Seth green one.

Like, did he just accidentally click and accept when there was like access everything in my wallet and then it was just gone.

Nick: Yeah. it, it kind of depends, uh, you know, there's various types of kind of social engineering attacks that can happen many of which aren't much different than, uh, social engineering attacks that could happen. You know, if you're using a database, which is, you know, uh, you can lure someone to a site that looks legit and then, you know, ask them for their password or in this case, their seed phrase. Um, and if you know, you're not thinking about it at the time or something looks legit just as you might give away. You're. Uh, Twitter password to somebody, you know, you could easily give away your, your seat phrase to somebody as well. So, um, I don't think you have as much to worry about when we're talking about just connecting your

wallet, but, uh, you know, when you start signing

messages and, and signing transactions, um, there's a little bit more to worry about.

Um, and it's important to, to know that whoever you're interacting with that, that you trust what's going on. Um, a nice thing about interacting in, in cryptos. Many times you can go and look at the, the code for the contracts you're interacting with. Um, so you can go look on ether scan and see what is happening when you hit the mint button. The default is having front ends and contracts open source. Um, so there are many people just in, in a similar way that, you know, open source code benefits from multiple people, auditing it and improving it. Um, that's kind of the, the default in the web three space. So, um, That's also there to, to help keep you safe.

[00:07:30] RainbowKit

Justin: So I know that rainbow wallet has an SDK and you can sort of build custom things on top of it. What does that enable you to do?

Nick: Yeah. So the, the SDK we recently built is called rainbow kit. One of the problems that we saw is that people are entering this space and there's a lot of new words, vocabulary technologies to learn. Um, and, and while some of the same skills transfer over, some of some things are, are hard to get started doing, like connecting a wallet to a website and, and sending transactions to that wallet.

There's multiple different types of wallet. So there might be browser extensions or wallets on mobile devices, um, and making all of those work for all of your users is, is pretty hard. Um, and then connecting to an Ethereum node that you can send those transactions to. There's many different, ways of, of doing that.

So rainbow kit aims to make that process as simple as possible. So we

provide, um, a number of wallets that you can connect to, and you can customize that list. We provide, um, something where we will show the balance, your balance of what you have, we'll do ENS resolution. So instead of seeing like zero X, B 26 or whatever your address is, I just see nickbytes.eth. I see my ENS avatar.

I'm able to select which chains I want to use in that application. Custom theming and, and all these things to make it look like your brand. There's a CLI to get a project started in basically one line of code. You'll have a next

JS site with rainbow kit set up for you and all of the configuration done. Um, and I think what this does is we've all had this scenario where we have this great idea on a Thursday or

friday afternoon. And we think, you know, I'll just be able to get this thing done this weekend, you know, and I'll launch my app on Monday and you're really excited

about it. And the first thing you do is go to set up the build tooling and the database, and you realize you need an, uh, authentication provider.

And by the time you've gotten all that stuff done, you're frustrated, you've lost the momentum, it's the end of the weekend. And you

never got to actually work on and iterate that idea that you had. And so rainbow kit is helping you get past that stuff. Get back to focusing on. Your NFT drop your, your defi protocol or whatever else you're

doing in the Ethereum ecosystem and, and leave the wallet, connection stuff to, um, us. And, you know, we're people who think about wallet, connection flows and wallet authentication all day every day. And, and we're willing to help build nice UI for you there. Um, and it's also built on top of an amazing library called wagmi um, shout out to Tom and Jake who are, who are amazing devs, basically.

Uh, this is a react hooks library for Ethereum. So that is kind of the data layer of, of rainbow kit. And then rainbow kit is kind of an opinionated UI and user experience on top of that. And they work together really, really well.

Andrew: That's super cool. So like rainbow kits, kind of just aiming to be an SDK for like anybody who wants to easily connect to chains and authenticate with them, right?

Nick: Yeah. Yeah, exactly.

Andrew: Are there other use cases? You guys wanna expand that to other than just off in like, like those chain interactions?

Nick: Yeah. There's, there's a lot of things that we've been thinking about recently. Uh, we definitely wanna support, like on our roadmap, it's kind of supporting any, any wallet possible in, in any use case possible. Um, we also are thinking about like, uh, levels of customization in different types of users.

There's some applications where you have new users that, uh, need kind of more of an onboarding step. And rainbow kit really has a lot of, uh, customizable onboarding for helping people get started. Um, and then there's other applications that are made for more. Pro style users and, and don't need that stuff.

So we're always looking for, for ways to customize. But, um, another thing we'd like to do is, is work on this kind of, uh, work better with sign in with Ethereum. So, um, that's where people can not only connect their wallet, but then can authenticate, but it's them connecting. And, and there's a lot of advantages to doing that versus having, you know, authentication with Twitter or Facebook, Google, something like that.

Um, so that's on top of our mind. And then, uh, we've got an amazing team of, of people who are really thoughtful about UI components, um, and the user

experience and

would love to help people there as well. Now whether that's building kind of our own framework out or just building out, um, some components that we're seeing used really often in web three applications, uh, I think that's a, um, a really viable path forward and something that would be really helpful for the community.

We're also seeing people use rainbow kit ways. We didn't imagine like saw a team this week, the, the farcaster team used, uh, rainbow kit on react native to authenticate, uh, a native application, which we had not intended at all. And so thinking about how other platforms can, can use rainbow kit is, is another thing we're thinking about.

Andrew: What are some of those components that you see people using? Are you like, kind of thinking about putting out a rainbow kit design system type thing

Nick: yeah.

So I, I think right now we're, we're, we've kind of held off on doing that and we've said, you know, your design system, like. We can debate and, and you've had tons of great people on here who have opinions about design systems and CSS frameworks, and, and things like that. And, uh, we don't wanna be too opinionated there.

What we would love to see is the community build their own kind of like starter templates around, uh, things that, that make sense for them or, or tool sets that they're seeing as, as valuable to use with rainbow kit. Um, but I do think there are a number of things that we see pretty often. We build out a few small examples of how you could use rainbow kit and Wagni together to do something like NFT minting.

You can take our example right now and plug in your contract address and, and basically have an NFT minting site in probably. Less than half an hour. Um, there

are types of UIs like, uh, a swap UI that is pretty common. So any defi protocol that wants to swap into their token maybe, or, um, wants to do kind of like a unis swap style clone would use a certain swap UI that has become, uh, standard across the industry now.

So there there's some of that, and then there's some account management components that we've worked on, uh, like transaction history, um, and then diving into more details of those transaction history that I think a lot of teams would like, uh, they're just really, really hard to build when you have all these other things to focus on, like within your application already, that, that we could be pretty helpful with.

So we're, we're thinking about those as well.

Justin: So aside from the, the sort of native login experience, as you said, that was really interesting. What are some other cool things that you've seen built? Anything else that stands out?

Nick: Yeah, there. The last few weeks have been awesome because I, I feel like we've had a bunch of teams who provided early feedback, finally, like launching whatever their new new site is, their new tool is. And, and, uh, they're all using rainbow kit and, and having a pretty good experience with it. Um, Ethereum name service just kind of launched their, their alpha release of, of their new site that uses rainbow kit.

Uh, like I said before, I think that's a really essential part of decentralized identity. So it's exciting to see them embracing rainbow kit, um, Zora, who, which is an NFT marketplace and has tools for, um, NFT creators, just launch their creator toolkit, which uses rainbow kit and allows people to easily create NFTs.

Talked about forecaster already. Um, mint.fund is a, is a cool place where you can discover new NFT projects that either are trending right now, or were just released. They're using rainbow kit, um, innovative products or innovative projects like backed, um, which is peer to peer loans with NFTs as collateral.

They were an early adopter of rainbow kit and they've gone kind of like full, customized experience for their connect button and their, um, you know, they're not using our account model and they're, they're doing their own account page and they're using wagmi all over the application. Um, super amazing design and also just working on kind of an innovative, uh, product in general.

So, yeah, there's almost too many to name at at this point, but, uh, yeah, those are a few that, that.

Justin: I noticed that y'all actually use vanilla extract. Mark, I forget his last name, but mark something, he created vanilla extract. and co-created, uh, CSS modules back in the day. Uh, this is a completely aside, but what's your experience with that?

I've been really curious to check it out for a long time.

Nick: It's it's awesome. It's awesome. Uh, I also have to say like, love, love working with mark and have learned, uh, a ton from him and we, yeah, we've been loving vanilla extract. I mean, I, I'm a big fan of anything. Like, you know, I really liked styled system. I used styled components before and really liked those and felt that there was like another layer needed to, to fit my design tokens in.

Um, and so style system has, has been, you know, something I've really loved, and this is my first experience using vanilla extract, but I love the kind of like strict type safety you get with vanilla extract. And then I love the performance schemes you get, right? Like it's CSS at the end of the day, which is, uh, pretty amazing.

Um, and yeah, I it's nice when you're, when you're building something for the first time to have, uh, the person who created it, working on your team. So, uh, if you have any questions there, um, and I, I think like this rainbow kit project has, has ended up being like, people have asked me about the vanilla extract.

I've said, like, go look at this project, like it's all open source and you can see how the person who created this framework is building something that is, uh, you know, Put into use in the real world and has real world constraints with it. Um, that's been another fun thing about the project in general.

Even people who look at rainbow kit and say, well, I'd like to do the styling differently, or this is too opinionated for me, or I, I just wanna learn how to use Ethereum and write some of this on my own. I say, go look at the source here. There's like great examples, uh, of just like one way of doing these things from, um, you know, incredibly talented people.

So feeling, feeling fortunate to be on a team, that's doing that. And, and I've been really enjoying vanilla extract.

Justin: I guess for context for the listeners, vanilla extract is a. SS, zero run time style sheet, but it's written in type script. So it's like you write this type script file that sort of gets compiled into CSS. Uh, but while you're doing development, it gives you this like type safe sort of thing. It, it, it is, it's sort of separate though.

You, you have like these .css.ts files that you write, which are kind of interesting

Nick: Yeah. Yeah. And, and it feels to me like once, once you get your vanilla extract set up and like your design tokens in like, it feels similar to writing, you know, styled system or any of these other kind of like design system centric, CSS, and JS frameworks. Like, it feels exactly the same as that.

So you get all the advantages of the type safety, but you also get like, you know, our, our UI is so stateful these days that being able to pass in different props and using that react model is, is super helpful. Uh, rather than, you know, What I think we did at the beginning of this react CSS and JS phase, which is like flipping classes and, and things like that.

Yeah. So I really like this approach.

[00:19:54] Decentralized Identity

Andrew: Yeah. So let's, uh, go back to decentralized identity for a second. I think that's like one of the most interesting things about crypto, like a real concrete use case. That seems pretty useful to me.

Could you explain to our audience, uh, what decentralized identity is and how it might change, how you use the internet?

Nick: Sure. Yeah.

So I think of decentralized identity is, um, the idea that your, your data and identity are portable and that you own your data and identity. And if we think about the current kind of digital landscape, uh, your identity is, is fractured, right? I have my GitHub profile and I have my Twitter profile and I have my email and my Instagram and you know, all of these different identities and services that I use.

And I have history and social graph and preferences and profiles and friends and interactions on all of these. And they're all. Spread out. And when I want to go use a new

service,

I go create kind of a new identity, a new social graph, new preferences, all, all of those things. And I

think

decentralized identity is, is saying rather than having the companies own those things we O as the users own those and, and that identity is portable.

So when I log into, you know, a web three application, like I see my ENS name there, I see my profile info that I've specified, hopefully in the future, I will be able to bring my social graph and history and preferences with me. Um, and I Think

there's. Interesting applications and, and social features to be had when those things are true. I mean, if you can

imagine

if there was just one login across the web, regardless of whether it's on a blockchain or not, if there was one login in all of your history and preferences, uh, were attached to that, what, what could you do with that? I, I think

about

how, you know, if I could take my social graph from Twitter and transfer it to GitHub, or if, if I could take my contributions from GitHub and that could give me access to a developer conference or something like that, like all of that is kind of opened up when you say that there's one login across the web and when you say we have decentralized identity, so that type of stuff excites me.

And I think we've just kind of seen the tip of the iceberg in, in terms of what we could do if that's, you know, the world we're living in.

Andrew: Yeah, it it's such, such a cool idea. Like the, the ability to just have one, one me on the internet, like from anywhere from games to like tickets, everything makes much more sense when you own your own identity.

Nick: Yeah.

I, I even think like having one is cool and also like having many or are cool, right? Like I could, I could still have different accounts and different kind of identities for different things. I want to do. Like maybe I have a gaming identity that I want, you know, my social graph to be connected to.

And maybe I wanna have a completely separate thing for work in my professional life. And like, you can do that. You can have kind of the best of both worlds and in my opinion there. So yeah, I, I, I agree. Like I would, I would love that world and I, I hope we're helping, you know, build towards that.

Justin: The interesting thing for me about this is like this sort of inversion of control, cuz generally right now your identity is tracked across the internet and it's largely done by, you know, browser fingerprinting or cookies or whatever else it's like, all this data is following you around. It's just, you're not aware of exactly what it is and how it's being used and et cetera, et cetera.

And it, it seems like something like this might at least be a little bit more explicit of what is associated to it. You know, if you can actually observe, assuming it's on a blockchain or whatever, you can observe what's on the chain and see what you're consenting to share. Um, it changes the dynamic a little bit.

Um, so it's more

of a opt in with permissions.

Nick: yeah, I, I totally agree. I, I think that, uh, you know, one thing that this like web three movement has certainly done is it's made people rethink transparency and, and data ownership and. If that's all it does, you know, like that is still a, a victory in my opinion. And, and who knows what that looks like on the other side, but thinking about who owns what data who is, uh, you know, a third party or middleman to that data and then controls that flow and where there are kind of centralized dependencies.

Um, I think all of that stuff is interesting and, um, I think will probably help shape whether, you know, you're working in like web two or web three. Um, I think that, that these things are, are certainly gonna be influential.

[00:24:55] Web3 Development

Andrew: Speaking of web three, how different is web three than traditional dev? Uh, is it like vast mu vastly more complex? Do I have to learn like a whole new stack? Is it three times larger?

Nick: Yeah, that's a, that's a good question. Uh, I think I would say like the same, you know, maybe this. Not what you're expecting, but like the same fundamentals apply to me, which is like, if you understand browsers and you understand HTML and CSS and JavaScript, you know, it's important to understand the client's server model, you know, being able to communicate trade offs between design and product and engineering.

Like if you do all of those things that just make people a good developer, like you can be a good developer working in the crypto space, um, you know, knowing your language of choice and having some mastery over that. So you can think about the problems we're solving versus fighting with your own tooling. You know, those things still matter. And there are some

differences of, of course there are different user preferences and expectations, and there are complex topics when you get into like the cryptography that, uh, you know, are. Difficult to understand and reason about, and might not have been something you had to think about before, but just like learning any other complex web

topic. I think if you take it in bits and pieces and, and learn, what's valuable to get the job done, um, yeah, people will be fine. Um, and with this like new entrance of a lot of people to this space, there's a lot of new learning resources. There's some incredibly talented devel people out there who are creating really awesome fun courses on, you know, different stacks and tools you can use. There's tons of blog posts out there about stuff. Um, so I I think

like, you know, the, the simple answer is like, if, if you're a good dev, you're a good dev. Um, and there's, there's maybe intricacies

to the projects that you're working on, but a lot of the skills are, are pretty transferable. Um, yeah.

Andrew: Yeah. Probably most of the complexity in the stack will be hidden over time. Like as, as a web developer, it's like, I don't really reason about T C P I P any of that stuff. Like, but that's how the internet works. Like yeah. How, why going to crypto would I have to understand like all of the like inner workings of the technologies beneath what I'm working on?

Nick: Sure. And, and I think like, you know, like the early days of the internet, like the tooling is rough right

now, and we're seeing like, if you just go a few weeks and then update whatever tool

you're using, like the changes are massive. You know, people are working really, really hard to improve the developer experience and improve the user experience for this stuff now.

Um, but you know, it's early innings and there's, uh, there's a lot of work to be done. I think, um, you know, uh, just talking about like, is this easy for, for people who are like new to programming in general, like I've met teenagers who it, their first coding language is solidity. you know, and then there's, there's other people in the industry who are, you know, kind of startup or big tech seasoned vets, and there's people who are looking for their first job who are doing this stuff.

So, if you're enthusiastic and, and wanna learn, there's a, a really good community of people who are ready to bring in and, and help you get going.

Justin: Awesome. Um, so a lot of rainbow is open source, uh, and it it's, it's sort of a, this ecosystem service. So we've talked to a lot of people who have companies that are based in open source and, and operate in a same sort of space in the market. And these things can be hard to monetize sometimes. Uh, so when y'all are thinking about rainbow as a product, what does it look like to make this service into a business?

Nick: Yeah, let's talk first about like the, the open source aspect of rainbow, which is like,

I, I still

think is like amazing, right? Like if you, the, the idea that our whole business is open source, like you can just, you can look at the whole apps code. You can look at all of rainbow kit. You can look at all of the app.

You can look at our website. Like it is all open source. That to me is still mind blowing. Like all of UNO is open source. You can go look at what they're doing on their front end. You can fork it. You can go look at their contracts, you can fork them. That is totally amazing to me. And it's the norm in crypto, which I think is, is really wild.

So if you're looking to see, like I was saying before, like how are, how are people who are, you know, best in class at what they do building these things. You can go look at those right now and, and see what that's like. Whereas if you were to said five, 10 years ago, like, Hey, how is like, Facebook building that app.

Like, can I go, just go look at the source code and see the commits day by day of what everyone's doing. Like people would look at you, like you were crazy, right? Like that that's a crazy concept. So, uh, I like find myself appreciating that like once a week just being like, man, how did they do that? And then I just go look it up because it's open source.

Uh, and you can easily, you know, like talk to those people about that thing, uh, which is super wild to me. So just

had to like throw that out there that, that I think that's pretty cool.

Justin: Yeah. no, there's, there's tremendous business value in that. Uh, so artsy, the last company I worked at, they had this engineering had this, uh, primary principle where we're open sourced by default. So it was like, anytime you created a repo, if it was private, when you created it, there was a bot that commented.

It's like, Hey, what's your justification for making this private, you know, it's like,

there are a few business things that we had private for, for good reasons, but like most of the stack was public. And, and I find that like sharing problems or sharing learnings is a lot easier in that space. So yeah, I.

I'm totally sold. And to have that in the entire ecosystem is extremely valuable. Cause like you said, there's like so much more knowledge sharing that can happen.

Nick: Yeah, yeah. Artsy was ahead of the game. There, there was so much good open source alpha, uh, on the artsy GitHub, like it. That's awesome.

That's awesome.

in terms of, uh, monetization, um, I think one thing that's interesting about the competitiveness of, of being a wallet or, or being in the web three space in general is when everything is forcable.

and, you know, when I can take my seed phrase and put it in another wallet, the cost of switching is incredibly low. Okay. When there's like a fork of, you know, many forks of UN swap or urine or any of these other protocols, uh, the cost of me taking my money and, and my attention there is so low. So what, what you have to do is you have to constantly be thinking about what is best for the user.

Like what is really best for the user. They'll leave otherwise. And once

you create a place where you become this like aggregator of transactions. So if you're a place that people wanna do swaps because you're getting the best price and you have the most tokens where they

can go and buy and sell and trade their NFTs and view them in a beautiful fashion where they can see what their friends are doing and, and see part of their social graph there, where they can connect their digital identity and see what connections they've made when you've done that.

I think it's, it's reasonable to think that you've, you've done a good service and, uh, users will continue to pay for that service, which I think can take the form of small fees for certain types of transactions. And tons of those small fees can add up to be, uh, you know, a significant way to support a business like this.

And we've seen that play out with other wallet, wallets, and exchanges in the space. So, uh, we're following a similar model there. I think our app itself. Has a, has a very different feel and approach, but we're, we're following kind of a similar model there.

Andrew: Yeah, that, that, that makes a lot of sense that it's things that happening in your platform as you bring more of those things in like swapping and, and trading that's, that's pretty cool. So, uh, like ki kind of back to the open source thing, but it's like, it's, it's pretty cool. Like how much innovation is happening.

Like a lot of people joke around how, like the web space is like constantly changing, but they probably haven't even looked at the crypto space where it's like, you take a weekend off and it's probably changed by Monday. So like, uh, what are some of the cool projects that, that you've seen popping up? Or has there been like something lately that you're just like, oh shit, this, this blew my mind.

Nick: Hmm. So I guess I, I mentioned some of the, the projects that I think are, are like innovative already, and those ones happen to be using, you know, rainbow

kit and rainbow. So maybe, maybe that's a little unfair, but, uh, I'm, I'm also just like a big fan of watching the developer tooling progress in the space.

So, um, there's a number of projects that are doing things similar to rainbow kit, frankly, that are pretty neat. Then there's also like smart contract development in itself. Um, there's a tool called Foundry that has become pretty prolific for building, um, and writing smart contracts and Foundry consists of.

You know, uh, an Ethereum testing framework, there's a kind of like local test net. You can run. And then there's a, a CLI for running transactions and, and running interactions with Ethereum itself. Um, and the pace at which the team ships and the number of open source contributors to the team is just totally amazing.

And, and, uh, you know, they're really committed to providing and, and creating like the best tool set for developers. Um, yeah.

[00:35:09] Writing Smart Contracts

Andrew: Have you written any smart contracts yourself or have you stayed further up in the stack?

Nick: Yeah,

I, i, think it's

important if you're gonna be in this space to like at least dabble kind of all over the place. Um, so yeah, written a few smart contracts myself. I have a, a smart contract out there that allows you to change the URL of. You know, another website, if you're willing to pay more than the person prior to you, um, working on I've launched a kind of a bunch of small NFT projects and there's, uh, something called on chain NFTs.

Those are NFTs that are built, um, where the, the solidity itself creates, um, SVG output. So you don't have to go host that image on a centralized server or, or on IPFS even. Um, the image is in the contract. Um, and so I've been working on some, some tooling around on chain SVG, um, NFTs that I think, uh, you know, hopefully will release soon.

Um, but yeah, been

doing some of that

and, you know, it's, you know, just talking about like people new to this space, like how, how you get on ramped and like, whether that's tough, um, One thing. That's nice. Like, again, like these things are open source and you can dabble a little bit in all of them, similar to how you might experiment with different react

libraries or different front end frameworks. It's definitely important to go, you know, get kind of

perspective

on, on all of those things. So Yeah.

a little bit of smart contract development. Uh, try to keep not too many funds in there if I, if I don't have them audited or anything like that. Uh, but yeah, little bit of that little bit of front end doing rainbow kit things.

Yeah.

[00:36:58] Looking to the Future

Justin: Uh, so, uh, for, for rainbow, the, the product, uh, what, like what future features are you all gonna ship soon? That you're pretty excited about?

Nick: Yeah.

Um, we've, we've had our Android app in kind of a public beta and I'm really excited to get that to like a general release. Um, and that

should be

coming up

soon.

Um, yeah, super fun to, to be building react, native apps that, that work for iOS and Android. Um, and.

Love the Android app and been testing it out for the last few weeks.

And it's, it's super good. Um, so we've got

that coming up. We're working on, uh, a browser extension, which we've, we've talked about on, on Twitter a little bit. Um, you'll

see, you know, some other

wallets have extensions as well as mobile apps. So we've got kind of

our own

take on an extension that I'm super

excited about working

on. We'll be working on a, a

desktop app

later in the, the

year as well.

Um, and then coming up soon, which we we've leaked a few times on Twitter is this ENS profiles feature. So, uh, buying your ENS name setting kind of your ENS profile data is, is the

foundation

for that, that social graph and more social features we wanna build in the future. So excited about

that

stuff. Um, and

then there's,

there's a ton of rainbow kit things like

better support for sign in with Ethereum and just general kind of developer improvements like. Thinking

about

building an open source library that is good for solo developers and then also big teams and brands who have different opinions is, uh, you know, difficult but rewarding.

And, uh, we're excited to do more there to, to make it easier for people to get started with rainbow kit.

Andrew: Exciting. So, uh, do you think web3 is just a, uh, a misnomer, a marketing term or the future?

Nick: um, web three. I mean, I, I don't like the, uh, I don't know, I'm not a fan of the web three web two, you know, I don't know. I like building apps with databases. I like building apps with blockchains, like good product engineering and design. Like, it doesn't matter whether it uses a blockchain or a database, um, and people who are talented and prefer building in either one are, you know, There's no, I don't know.

Above or below each other. I, I don't know. So, um, yeah, I think it's like, it's healthy innovation and it's challenging people's ideas as to like what our technology stack should be, what our users should care about, who we should be trusting. Um, you know, there's something really magical about like permissionless systems.

So, you know, I really enjoy that. And I think that the effects that it'll have will, you know, span across crypto and non crypto applications. So the names are a little bit funny. It's probably good marketing by crypto people to use web three as a name, but, uh, yeah, no shade for no shade for any builders out there.

If you're building I'm a fan of yours,

Andrew: Yeah, it always comes back to, to user experience. Like the user doesn't care. If it's a database, they don't care if it's a blockchain. Like if, if were all truly decentralized, it'd probably be not the best experience. Like the tour browser is, is a great example of that. It's like, sure, you can ha you can, uh, do onion routing, but every page is gonna load very, very slow.

I'm sure the same would be the true if we're, instead of hosting on AWS doing like a decentralized computation across computers across the world, that sounds slow.

Nick: You don't, you don't wanna run your own server in, in that room back there,

Andrew: yeah. I have a computer in my house. I don't wanna sell, uh, time computing time on it.

Nick: Yeah.

I think there's like

layers and different levels of decentralization and there's, there's different things that we might decide are worth decentralizing and other things that aren't, um, maybe like, I, I don't know. I don't have a maximalist view on it. Um, I think we'll, we're gonna kind of like slowly get there.

Um, and. There's like a lot of good experimentation and, uh, you know, people challenging the status quo and there's tons of good and talented designers, engineers, and product people entering and yeah, just bullish on where the talent's going.

Justin: Feel like these things are always, uh, there's always like, you know, it follows the hype wave. It's like things go up and then like everybody really, really over invests. And then it like sort of crashes back down and people get like a little pessimistic and then it finds that sort of neutral where you're figuring out, okay, where is the good fit?

Like what problems does this really solve? And, um, it seems like we're probably getting closer to that aspect in the, uh, in the crypto world is like figuring out where it's really well suited, where it's not well suited, et cetera.

Nick: Yeah. Healthy.

Justin: Yeah. Yeah, absolutely. It speaks to maturity of the ecosystem really.

Andrew: So one question we asked to a lot of our more web centric guests is what the future of the web is. But I thought for this episode, it might make sense to, to change that a little bit. What do you think the future of crypto is? We've gone through like many different waves. Now. There was like the 2017 ICO, boom, where everything went to the moon and then crashed right back down.

We recently went through the same thing with NFTs and now all of these stable coins are crashing too. So where do you think the market's gonna go? And what do you think I should invest in, in over the next four years? I'm joking.

Nick: This is not investment advice. Um, I have to say that now. Um, you know, I, I don't know if I'm gonna have a good answer for this. Like, I, I

certainly can't

predict, you know, large trends. I, I

wish I could, but

what

I

can say is like, Talented people are entering the space and they're trying a lot of different things and they're, they're challenging general kind of like web status quo and, and they're ch

challenging

what we

expect out of our applications and what we expect out of data providers. Um, and, you know, I'm

personally

excited about different

ways that we can fund projects and builders and create sustainable models for open source software. And I see that as something that that crypto can do. So I hope

the next wave, uh, of, of crypto is, is about funding builders and, and projects, um, and yeah, research, uh, a, a healthy mix of, of research and finding tools that kind of fit mass adoption.

So, uh, I'm excited about, you know, different kind of, uh, Ethereum scaling things. I'm excited about L two S I'm excited about, you know, Users being able to go and, and bridge assets from different chains and, and not have to worry about that stuff so much. I'm excited about developer tooling. Um, so yeah, I don't know if I know where the future's going, but, um, yeah.

Excited about the people who are building it.

Andrew: Yeah, that, that inversion of control that we talked about earlier is, is really exciting. Hopefully that can, that can bleed over into creators cuz uh, giving creators more of the money from the content that they made is, is just a good move in my mind and frees up people a lot.

Nick: Yeah. It's

cool to think that we can fund open source software people anywhere in the world and they can build and identity and reputation system and, and work on, um, projects that the community cares about. And we can pay them in a more efficient manner looking at projects like Bitcoin or radical.

They're doing amazing things to support the open, open source ecosystem, um, you know, check outs, quadratic voting, if you haven't, um, super cool way to fund a lot of different projects. Um, and I think, you know, radical is also doing things like drips for, um, creators and, and maintainers of projects. So more of a steady income for open source contributors.

Um, and I think that stuff is, uh, really special in, in regardless of whether, you know, you know, NFTs or crashing or, you know, people are creating shit coins, like doing stuff like, you know, funding creators in this way and, and funding builders is, is super cool.

Andrew: yeah, let's get coin things. Pretty cool.

Nick: That's

awesome. Yeah.

We, you. I think I just supported, uh wame on, on gitcoin. Uh, like I said, where, you know, rainbow kits build on wagmi. So it's exciting to see that, like, you know, they're gonna get some funding there, um, and, and be able to keep working on it. And there's, you know, bounties out there. So for teams that maybe don't have, you know, connections to developers who, who can do specialized tasks or need something done that doesn't fit their team's skill strength, creating a, a bounty that anyone can go and work on and get paid automatically is, uh, pretty awesome.

Andrew: Yeah, I don't, I don't know if it's still around, but like four years ago there was like bounty and I, I think it was the same idea. So yeah. That's, that's cool. How it can cross borders.

Justin,

Nick: Nice.

Andrew: wanna move

on to tool tips?

Justin: yeah,

we moved smooth on tooltips.

Andrew: Oh, by the way, your guys' website is just so pretty. Like , it is like the smoothest thing, those click animations with the, the falling emoji.

Perfect.

Nick: Nice. Nice. Yeah. Yeah. Love the love the emoji cannon.

[00:47:16] Tooltips

Andrew: So the first project is something that popped up on my GitHub feed. Uh, it is a project called min dall-e and it's a tiny implementation of dall-e that you can run on your own. Computer uses a bunch of Python things. And for anybody who doesn't know what Dolly is, and hasn't been on Twitter in the past few weeks, uh, Dolly is, uh, a AI program that allows you to describe an image.

And then the AI is able to create an image out of what out of your description. So, uh, one of the examples they have on this page is court sketch of Godzilla on trial. And it's just amazing how many, like weird images this has been able to produce. And I think it's a really interesting way that like design could go.

Like I saw a guy on Twitter that kind of just did an exploration through Dolly where he described an initial image. And then was able to go, okay, I, of these four images, I like this one and let's go deeper on that one. And, uh, it just seems like a very interesting way to like, like flesh out ideas and do generative art.

Like I'm, I'm really excited to see where this technology goes. I haven't gotten my, uh, my, my, uh, acceptance into the beta program yet, but I'm, I'm still waiting fingers crossed.

Nick: So I I'm on the mid journey, uh, beta program and it I've, it's got me wondering, like, are we gonna see entire animation studios that are like built off of, you know, AI tools like this? Like is the next Pixar built on Dolly or, or mid journey?

Andrew: Yeah. Uh, did you, do you watch Westworld?

Nick: I,

I do watch Westworld.

Andrew: Yeah. So in the, the new season, they have one of the characters and they work at a video game company and I feel they were doing exactly what you were just describing. They were like describing a scene to an AI and then the AI was building the scene. And I could see that being like a way that you construct video game environments or video game characters, where you're like, oh, it's a woman in her late thirties, blah, blah, blah.

And then you hone in further on, further, and AI's doing most of the work for you.

Nick: Nice.

Nice.

Justin: That's a really cool

idea. Yeah. There's so much of what we do that is repetitive, you know? And like the, the key thing about automation over the years is to reduce this repetition. I think like seeing GitHub, copilot, you know, like repeating a lot of code for you is like you just tab complete. And it, like, I was writing some tests the other day and like wrote a whole test for me.

And I was like, and it, and it passed first time. I was like, oh, the future? You know, it's like this, this sort of thing too. Yeah, definitely. I think they had, uh, the first, uh, there was a famous magazine. I can't remember if it was like Cosmo or. Vogue or something. I don't know. One of those had a Dolly generated front page is like this female astronaut kind of vibe.

And it was, it was awesome. You know, so yeah, it's, it's a pretty cool, pretty cool idea.

Andrew: AI generation space is just crazy. Like I love GitHub coal pilot too. Like it's it's the one time where I saw there, there, it was free for open source developers that I went. Thank God. I open source that

Justin: this is a YouTube video, obviously we don't have to watch it. Um, there is a, both of these were on Hackaday articles. Hackaday is this, this site that I like a lot that, uh, just gives articles about hardware projects. Um, so this smart knob project is a hardware project. It's a custom project. This person did, and it's a haptic knob with a display inside the knob.

So you can turn it and it can set like snap points. So it feels like a, a knob with snaps, but these are all dynamic, cuz it actually has, uh, it's got an electric motor inside of it that sort of gives resistance and stuff and it's programmable. This project is just so, so, so interesting. Um, he, the, the person who did this project just made a lot of really like fun design choices.

So the PCB for the knob actually has notches in it. So it's like bendable and he is got a sensor that detects the bend to like, that's the click mechanism. And to make it feel like it clicks, he just has a VI the, the motor vibrate when you touch it down. So it's like this, like just marvelous little piece of engineering.

And there's a lot of content that he is, uh, he's produced on it. And I don't know this is, it just, it feels like, like just such a well designed well crafted project. If you're, if you're interested in what, like physical product development, like really good physical product development might be like, just watch this video.

It's just a gold mine. It's so good.

Andrew: Looks real pretty.

Justin: Yeah, no,

it's gorgeous. This would make a really great home thermostat, custom, like, you know,

Andrew: oh man. I, I could not do that.

Nick: this reminds me there. There's this little kind of like open source. Musical instrument, synthesizer, um, called unor. Um, and it has like three buttons and, and three encoders and all of the software is open source. And, you know, you write programs, I think in Lua. And it has like a little LCD screen and it has some, you know, it's a raspberry pie underneath the hood and there's like 3d printed cases for it.

Um, and you can buy, yeah, yeah, here it is. Uh, I think the, the one right below it, so there's like an open source grid for it. Um, and then, you know, there's the kind of like beautiful enclosed version of the thing. Oh yeah. You're gonna hear the.

Andrew: Oh, it's the sound's coming through. Oops. That's that's really cool.

Nick: Um, but like all of it's open source and there's like a little tiny kind of app store for it. So you can upload your own programs to it as well. Uh, and I've, I've got one of the, not like the nice enclosure ones, but I've got one of the DIY raspberry pie ones and you can make kind of like cool on, um, behind music and, and, and things like that.

So, yeah, it reminds me of that, just like the beauty and the, the care taken for, for like a piece of open source hardware. Love that stuff.

Andrew: Okay, so now onto Foundry,

Nick: I'm gonna count. Can I count that as one of mine?

Andrew: sure

Nick: Yeah.

Andrew: there's, there's no hard limits or minimums. Uh, whatever

Nick: All right.

Andrew: share,

Nick: Cool.

Andrew: rich,

Rich Harris shared a pasta maker, so

Nick: Oh, man. That's funny to think about like physical items that you like basically can't live without that's goofy. I like that

so I mentioned this earlier,

but

the, the tool that I picked is, is Foundry. Um, and I've been experimenting with writing my own smart contracts, and there's a couple of tools that you can use to do this.

Um, and I'm finding Foundry is the most compelling one. Um, I like it because a lot of other tools have you write solidity as your smart contracts. Um, but then you write those test in JavaScript or Python or another language. And Foundry's a little different because the testing F. You write your test in solidity.

And so you feel like you're getting better at solidity while you're writing it. And you can write deployment scripts in solidity, and you can write a bunch of other kind of like utility scripts in solidity as well. Um, and it comes with two other tools. Um, so forge is that testing framework. And then it comes with, um, cast and anvil and anvil's like the local Ethereum nodes.

You can kind of test what it would look like when it's on main net. Um, and then cast, you can just feel like an absolute hacker, uh, interacting with Ethereum from the command line, um, which is super cool. Um, lot of respect for the team, they've got an amazing, you know, telegram channel and telegram support channel.

Uh, it seems like there's people on there 24 7 answering questions and opening pool request. Um, and yeah, it's a, it's a really cool project. I'm, I'm really into it if you're looking forward or if you're looking to get started and you wanna try some smart contract develop. Highly suggest checking out Foundry and reading their Foundry book.

Um, it's awesome.

Andrew: I is a lot of this tooling written rust, or is this like just, just one of them?

Nick: Um, I think, well, I shouldn't say just, just this one, I know this one, uh, you know, really touts that as an advantage in terms of speed and in terms of like developer happiness and, and writing this tooling too. Um, I think other ones are written in JavaScript and, uh, I think there's a few that are written in, in Python and there's one that was written in high school a while ago.

Um,

Andrew: Do you

know what Ethereum's written in off the top of your head is like C sharp or something.

Nick: well there's like different, um, Ethereum implementation, so they all just have to

follow some spec.

Um, the, the most, the most popular one is, uh, in go, yeah, if you look up GA you'll, you'll see like a popular Ethereum implement.

Andrew: cool.

So my next tool tip is a Twitter thread about a new library called Kobe. And, uh, all this is, is a very, very tiny globe implementation that I think you can use as a react component or no, it's a WebGL. And shade thingy, but, uh, typically these types of experiences on a webpage are really pretty, but also really heavy.

Like I think in the thread, he says, uh, on one, one of the pages on a three JS based solution, it was 40 kilobytes just to load this fancy globe thing, which, which isn't too much. But when you're trying to have a marketing page where you're losing millions of dollars a second, if it doesn't load, you might want it to load as fast as possible.

So this is a really interesting thread that just kind of goes deep into how he approached it, why he did it and, uh, why it's better. So if you've been looking for, uh, a pretty 3d globe to put on your marketing website, I check out Kobe.

Nick: The author of this is elite. This is the same person who did, I'm gonna pronounce their name wrong. Uh, you know, apologies uhhu Shu did nextra also, and nextra is super nice kind of a docs generator for, for next JS. Um, I haven't seen this, this Kobe, but, um, yeah, this rocks, I would trust anything. They, they put out the extra stuff is super, super high quality.

Andrew: Nice.

Nick: If you're

looking for a quick doc site, extra nice.

Andrew: yeah, I've built me a few of these I think, uh, over the past 10 years I've built maybe five markdown static site generators.

Nick: Yeah.

Andrew: never again.

Nick: Yeah. It isn't that like building, uh, a CMS in general is like every two to three years. I, I find myself like, man, I could now could be the time to write the CMS that we all need, you know? And I like, like,

it could be in markdown. Yeah. It could be in markdown. It could have like react components that are loaded into it.

And then you start going down that path and you're like, ah, I see why this is so hard now.

I, I see why people, you know, I see why all of these solutions are, you know, like not completely what I want. It's cuz it's really hard.

Andrew: Yeah,

I understand why the developer hasn't looked at it in two years.

Nick: yeah. Yeah. This is, this is pain.

Justin: So speaking of awesome hardware projects, uh, I have a CNC in my apartment, uh, which is a weird thing to have in a Brooklyn apartment, but you know, we're

not gonna talk about that. Uh, yeah, uh, this, uh, other YouTube video is this whole process, this journey of this engineer, creating a customized tool, head changer for a CNC.

For those of you who might not know what a CNC is, it's a computer controlled router, cuts things outta wood and metal and whatever else. Um, your tool head is just a bit that you would put in the router. Uh, normally when you're doing, uh, a multi. tool cut. So you, you would have to like do one part of the cut and then the CNC stops.

And then you have to go in with like a wrench or something and take out the bit, and then you gotta replace the bit and then it'll go do more and then it'll come back and it'll stop and you gotta replace the bit again. And it's very annoying, very arduous process that can take something that would normally take a long time anyway and make it take like much longer.

Uh, so I've always wanted an automatic tool changer. I am, no, I don't have the skills to do this. He, he manufactured a lot. He like machined a lot of like metal parts for this thing. And, and it was crazy to watch. But again, if you just want to watch someone who really knows what they're doing, builds something incredibly cool.

This video is just fascinating. I mean, all the stuff he goes through is design iterations. His choices of like how he machines certain materials and how he like just builds this whole automated gantry. It's just, Ugh. It's. Quality so good height of YouTube entertainment,

Nick: That's awesome. What are you doing with the CNC machine in your apartment? Like what, what are you making?

Andrew: What do your neighbors think? that?

Justin: I have, uh, I have some, a little bit of noise protection. , uh, mostly small stuff. So like key caps and things, or like most of the kind of stuff I make, but,

uh, I mean, bases holders for things, uh, jigs, actually, it can be really nice to make jigs out of something CNC'd. And I, I use them for a lot of different like either electronics projects or woodworking products or whatever.

So I dunno.

There's all kinds of uses for it.

Nick: That's a sweet hobby. That's a sweet hobby. I dig it.

It's a tough one in a Brooklyn apartment.

Justin: Uh, yeah. Do not recommend it's a janky set up, but.

Nick: Nice. That's cool.

Andrew: Yeah, this genre of guy built this thing that's over engineered on YouTube is, is, is a fun one go to go down. Uh, one of my favorites is, uh, winter garden. He, uh, is building this marble machine that is like a music machine. And you can like program it like a player piano, but he's built, he built the whole thing out of like balsa wood, like seven years ago and has been, uh, as his YouTube community has grown, uh, they've started making parts for him.

So he outsources all of his designs to his followers. They send him back metal parts. He puts it together and plays cool music, Sono, another channel to check out if you haven't ever heard of him,

Nick: That absolutely rocks.

Andrew: he, it makes beautiful music with it. It's, it's very fun to watch.

Nick: I really respect, like, look at the, this guy's still going here. The absolute organization here is insane.

Andrew: Yeah.

Okay. So thanks for coming on. This was a, a very different conversation than we've ever had on this podcast. It was cool to learn about all the crypto stuff that you guys are doing.

Nick: Yeah, thanks for having

me, uh, enjoyed the conversation here. Uh, if anybody has questions about rainbow rainbow kit stuff, what's the talk crypto, you know, feel free to find me on, on Twitter or, uh, you know, yell at the rainbow Twitter account. All that stuff works. It's.

Justin: Yeah, thanks again, Nick, for coming on. Uh, and you are building some really beautiful looking products so that, you know, that's, that's always, uh, always a good indicator of the kind of like passion and care that goes into something. And. It's something that immediately caught our eye is just like the quality of the tooling too.

So, uh, yeah, it's an awesome project to check out. Like, like Nick was saying earlier open source. So folks listening, go check it out, look at how they're building stuff, cuz you know, even if you're not interested in web three, it's like the way that they're approaching building out rainbow kit, uh, and, and the site and everything is just great.

Nick: Yeah, thanks guys.

Andrew: Well, that's it for this week's episode of DevTools.fm, be sure to follow us on YouTube and wherever you consume your podcast. Thanks for listening.

Discussion in the ATmosphere

Loading comments...