Back to All Episodes
Season 3Episode 140

Memento of a Dialogue: Generative Art Powered by Real Ethereum Messages

December 7, 2024
32m
1 Guest

Listen Now

About This Episode

In this episode of DevNTell, Narb welcomes Joyce Lai, a lawyer-turned-developer and artist, to discuss her latest project, 'Memento of a Dialogue.' This unique generative art collection features 100 pieces, each embedded with real human messages sourced from the Ethereum blockchain since 2016. Joyce shares her personal journey into coding, emphasizing the value of persistence and the impact of the Developer DAO mentorship program. She details the technical and artistic processes behind the collection, highlighting how it captures a dialogue between the past and present through blockchain metadata. The episode concludes with Joyce's advice for aspiring coders and her future plans to further explore the stories behind these immortalized messages.

Key Takeaways

1

Joyce Lai shared her inspirational story of learning to code with the help of her mentor, leading to her building Memento of a Dialogue

2

Participation in mentorship programs, like Developer DAO, can be crucial for overcoming initial barriers in learning to code.

3

Foundational coding skills in languages like JavaScript and P5.js are essential for creating complex generative art and blockchain projects.

4

Memento of a Dialogue serves as a creative archive, immortalizing and visualizing human stories found on the blockchain.

5

The project illustrates how blockchain technology can be used to preserve personal history and foster connections across time through art.

Featured Guest

JL

Joyce Lai

Founder @ Memento of a Dialogue

Memento of a Dialogue

Timestamps(click to jump)

Episode Transcript

Narb

GM GM. Welcome to what's going to be another great episode of DevNTell. So if you didn't know, DevNTell is a 30-minute window for people who are founders, weekend hackers, or anyone in between to showcase their interesting projects they've built using Web3 technology. And today I'm ecstatic to welcome Joyce Lai, who's founder of Memento of a Dialogue collection as well as an OG DD member. Uh so if you didn't know, this collection, this NFT collection is made up of 100 generative artworks embedded with real Ethereum messages dating back from 2016. So if you stick around for today's episode, you'll see Joyce tell her story of learning how to code through the Developer DAO, through the mentorship program, and how it led to her creating this generative art collection. All right, let's get into it.

Narb

GM GM. Welcome back to the show, Joyce. Uh, pleasure to have you back on.

Joyce Lai

Thank you, it's so nice to see you.

Narb

Yes, likewise, likewise. Uh, so for folks, if you didn't catch that earlier episode, uh, did you want to give a brief introduction about yourself?

Joyce Lai

Sure, um, so I'm actually a lawyer-developer, um, and most recently also artist. So I joined crypto back in 2017. Um, I was one of the attorneys at ConsenSys, um, and since then have been doing various things including, um, learning to code and creating my first generative art project, um, called Memento of a Dialogue. So wanted to share that with you all today.

Narb

Awesome, awesome. And yeah, I want to I want to deep dive a little bit on this uh transition you you've taken. So what, um, what exactly inspired you or uh made you want to go from a Web3 lawyer to learning how to code? Was there like a particular thing you wanted to build and you're like, 'Ah, I wish I could do this on my own' or...

Joyce Lai

So I'm one of those people who have a ton of ideas in my head all the time, and I always felt like I had the ideas but no way to really implement them. So in a way I felt like I was just someone who had thoughts but like without a voice. And I've actually tried to learn to code even when I was um at a law firm. So this is like pre-crypto. Um, and it was like I tried to learn Python. So in the mornings I would try to do like a like a bootcamp, but I was doing that in isolation. And it was before like ChatGPT obviously, and so I just like just kept getting stuck. I mean, I can learn about it and like take notes, but there's no like application. I just got really stuck and there was no one to help me, so I kind of gave up on that. Um, so fast forward to last year, so it was uh basically I had left ConsenSys, had been doing um starting my own practice to do like advisory work, and I just had more flexibility. Um, I've also became like a a mom during these last several years, and so when you when you are a mom, like you start to have to really prioritize your life um in not in the usual way you might think of, but you start to think like, 'If I'm going to take time away from my daughter, I need to be doing things I like really want to do.' And so, um, through a few different also um non-linear events here, like I decided, you know, I'm just going to learn this once and for all. I um could build in more flexibility now so I can just learn on my own time more easily. And so I started doing a Udemy course. It was the Angela Yu um like full-stack web development course, which I you've probably heard of as well. So I started doing that and I got stuck. And I didn't realize like with like development like when you're stuck sometimes you just have no other thing to do but for post your problems on the internet. And I posted my problems all over the internet, and one of the places I put it in was in the Developer DAO Discord and Piablow saw my like very desperate question and he DM'ed me and said, 'Hey, I'm actually launching a program. Uh, would you like a mentor?' And I said, um, 'Yes, I definitely want a mentor.' So I applied for the mentorship program, um, and he matched me up with a guy named Chris who is a senior software engineer at The Graph, um, also a DD member. And so he is just like so kind and he basically spent like seven seven months with me like an hour a week, and I did my homework and we talked about the things we were stuck in and we built um well I built a thing called like a Math Golf game as like a practice experiment. So there's a front end, there's a back end. And um yeah, so with him like he kind of taught me the things to focus on and like coincidentally it was also when ChatGPT really blew up. And so I had a human mentor and then also like a AI mentor, which really was just like those two things worked together was like the unlock to like basically allowing someone like me to who's very motivated but just needs a little extra help to to really get things going.

Narb

That's amazing to hear and very inspired I'm sure um some people that are watching today who are on the fence of wanting to learn how to code um I I'm sure they'll be inspired to take that that first step after hearing your story. And uh good on you uh that's amazing to hear that the uh it's you've unlocked a superpower uh so to speak uh when you learn to code uh which is like really uh it's it makes things much more easier uh and easy to do um I'm much like yourself I have so many different ideas um but you'll find that now that you have the superpower it's the time, which which one to concentrate on. Yeah, it's it's true right, and I'm I'm really glad that I took kind of like the longer path to learn the fundamentals because even with like AI, right, like you have it it's only helpful if you ask it the right question and really knowing um kind of what questions to ask, like what to isolate. Like it's I think that's really the key to making even the AI tools useful.

Narb

Yeah, I agree. Yeah, you have to know um what to ask and at the same time when you get the response back you know how you have to know how to identify whether or not it actually gave you the right thing or leading you down some rabbit hole it thinks is right. But uh that's a tangent on its own. Um I guess um when you were learning how to code um what were some of the different um different things that you were going through in terms of the learnings, like were you learning predominantly just front-end development, Web3, blockchain interactions with smart contracts, uh what types of things did you end up learning? Yeah, so actually did not start with um anything smart contracts related because like I didn't even get the other stuff so I wasn't really trying to learn the new stuff. And the new stuff is so much harder to learn because there's no good structured learning materials, right, and even the tools like some of them just don't work. So it's like you trying to figure out a new thing for yourself with things that are also really nascent. Um I I didn't start with that so you know with like the bootcamp, it was really starting with the real basics, like what is the internet, right? Like what exactly is an API? Um like you know, what what is a function? Right, like really, really basic stuff um and having like a simple project which was called Math Golf, um I call it Math Golf but it was really inspired by just a counter. So when you one of the the first things to do is you basically create a button, every time you click on it it adds one, but you have to record it on a database. And that's all it is, right, it's just connecting those together. And so this Math Golf game really is like a gamified version of that. But yeah, learn the the super basic stuff um and then later um we started making like a decentralized Math Golf game so we actually went through the process to put the back end into a Solidity contract. Um I think we actually put it up on Polygon and yeah so didn't start with the fancy Web3 stuff but started with the very, very normal JavaScript um things.

Narb

It's funny you call JavaScript normal, it's the whole whole section of memes around that. But yes, um that's yeah, that's wonderful and that's exactly how you should take it. Learning the fundamentals is very, very, very important instead of diving into a particular niche after the fact. Um but I guess in terms of uh oh and uh yeah Billy's saying uh completely opposite of him uh whatever works Solidity first Solidity first it's all good well Solidity is kind of yeah so when I started I didn't even know my computer had a terminal.

Joyce Lai

Like that's how much I didn't know. Like the fact that I could pull up a terminal was like shocking to me. Um but now I'm like pushing my changes like onto GitHub like via Git, right, and now I kind of understand that process. So yeah, I feel like I've like really come a long way um really like just with with Chris's like help. Um I really can't thank him enough for that. Awesome, awesome. Shout out to Chris uh on the show and Piablow for getting the the ball rolling. Oh yes for sure.

Narb

I guess uh okay this is a great great segue. Um so what uh what exactly is Memento of a Dialogue and what inspired you to create it? Um I can bring the I can bring it on stage uh if you want uh let's see yeah. Yeah, by the way I have no idea where to see the people who are listening live is there a way to see them? Uh there's a uh section uh the comment section um should show up with all the comments but you might have like a weird thing uh if you didn't. I see, I see, okay, I see that now. Um so okay let's talk about Memento of a Dialogue. So I love Web3 because I really, really believe in like the idea that you can do things permissionlessly, right, and I think a lot of the things that people do now are like real fancy but if you kind of get to the really core of what everything is, it's just the ability to write something on a public platform then no one can erase and no one can prevent you from doing so right. Like that is really the idea. And um many years ago I remember seeing this CoinDesk article about someone who had memorialized like a whistleblower and they did that like for COVID like on Ethereum and I've just always like thought of that, kept it in the back of my mind. Um so really intrigued by people putting like human messages on there and um so when I was like brainstorming on what to do with our project, I definitely wanted to use um open data. At first I was thinking about using wallet data, um but I wanted to be able to put it on a platform and not have to necessarily do all the contract work myself and um that caused a few limitations because the the platforms range from like like Art Blocks smart contracts where they're like everything needs to be super pure and nothing can live off-chain. And so then um I wasn't able to use do anything really dynamic. And then so I came across like Highlight, which has a few tools that lets you do a few dynamic things, one of them being using the time and so I kind of kept that in there and then brainstormed about like what types of open data exist that are like make sense to actually incorporate. And so I decided to use Ethereum messages as the basis because I just think it's so powerful that people can write something on there and and it's just there forever. Like there's something about that that really speaks to me. Um and so then I I decided on messages and it was really quite hard to source these 100 messages. I did it by hand. I found this tool called ethereum.ms and I just searched different keywords um until I found like the 100 that I was happy with that had no profanity that like had a nice range.

Narb

Oh so all these messages were hand-picked by you?

Joyce Lai

Every single one of these messages were hand-picked. I had like a whole entire spreadsheet with them. Um I probably went from like 200ish that were appropriate and then I like parsed them down to 100 that um yeah, were the most interesting and also like did not have anything offensive in them. Wow, that must have been a lot of work. It was, I spent like a few weeks a few weeks um doing that just in itself. Yeah, so so that's kind of like the genesis of the idea. Like should I dive deeper into the the art itself? Yeah, yeah, definitely. Okay, so here is let me just pull this one. So this is um written in P5.js code and so here on Highlight you can basically run the code and it will show you random generations of that. Um so a few things to highlight there is the background gradient you see changes. So the top half of the gradient refers to the time of the message, so the timestamp in UTC. And then the bottom half oh that's a good one. So the top here you can tell is morning time UTC and then the bottom half is time of the mint. So you can tell that the person if this had been a real piece minted at the PM UTC time.

Joyce Lai

And so which is why I added like this UTC clock there. Um so these are the pieces that have been minted thus far, so from here you basically have a representation of these two people in two different times, right? The top being when the message was created and the bottom being when the message was discovered. So here, um this is number eight and in the details hmm where is the metadata? Oh sorry right here. So this is the metadata and you'll see that there is a um message transaction hash inside every single one of these. And if you go to Etherscan you can just drop that in and this is the message. And so with each mint you get a surprise message um that I've curated. This one was from September 6th, 2023. Um I've also created a space here on the website that shows all the minted pieces and the corresponding message so you can ooh I don't know what that one is. Is someone minting one right now? But this is the um the most recent one that was minted. And so this is message, you can double check that on Etherscan.

Joyce Lai

So visually that's the time-based component. Um you'll see here that there's also a color tone oh someone said something. Okay. You got a live minter. Oh that's wow. We're going to go find your message really soon. Yeah, legend legend. So also um there's a color tone, right? Because we're talking about like human perspectives here and um we don't really know what the circumstances are that this person is writing something like this. And so I wanted to add this additional layer to it where these are basically lenses in which you can view each of these messages. So if you look at the about here, so these are the color palettes. There are different uh varieties to them, but like these are meant to be like lenses that you can use to read the message because who knows like why or when or or like who was was doing this, right? Um so so the idea here is someone wrote these messages, we don't know who they are, they don't know if anyone was going to see them, but through this art we've discovered them. And then my kind of um dream is to see like can we show these these message people that we actually read their message? So that that is the the experiment here. Okay so let's see um what the latest one was. Um so this is using oh weird so this is using the API from um from Alchemy so now I this is the first like bug I've seen. Nice, live bugs. Not the first time, not the first time. Yeah on a live stream too, now I don't know what to think about this. Okay so this is yeah I guess Alchemy has indexed it yet, but this is this is yours this is the newest one. And let's see what this message is I'm so curious.

Joyce Lai

Here it is. Says 'Friendship is like a snowflake, delicate and beautiful, but also strong and enduring like ice.' It's true. Interesting. Yeah so in some of these you'll see that there is um a dimple wait no. Yeah so if you throw the hash uh go to Highlight and then throw the hash on Etherscan that's probably a little easier. And some of them have like other messages that they've written so whenever you have some time you can also just dig into uh the Etherscan and see what else exists.

Joyce Lai

Yeah but I you know found messages of people who kind of seem like they're posting from Gaza. Um yeah there's just like some real deep stuff there. So hopefully you know this project will one allow people to realize this exists and then two like kind of lead them to be more curious to dig through other things that will exist in the future.

Narb

This is amazing. Uh I think I I may have missed it and I apologize if I did but um the actual triangles themselves um how are those generated? Are they from the actual message or...

Joyce Lai

Um um so they're not. Um I thought a lot about like how much of the message in itself I should use. And I came to the conclusion that you know what like someone else wrote this, right, maybe thinking about it from like a copyright perspective, like I don't really want to take their stuff. I don't think it was mine to take. So I thought it was fair to um post the transaction hash because that's just you know a record, like that's just like the receipt kind of. Um so the triangles like the the three sides, three corners represents like a relationship between the message person uh myself as the artist and also the collector. And if you look at the squares, like what inspired me to do that is really like a Polaroid picture. So for example, if you imagine you gave someone an Instax camera at like a wedding and they took a bunch of pictures and you ended up with a gallery wall of them, that's what um the inspiration was. So each one of these um squares and triangles have a uh uniquely generated rotation. That's what causes kind of like the the organicness of it. Um so that's randomly generated using the hash of the transaction and then I basically preset like 20 or 30 different patterns within the triangles that could be uh used and like which one of those show up in a triangle, that's random also. So between like those variations and the angle you actually come up with a lot of different ways that this can look. Um and also obviously the color palette. So within each of these um shapes we use the color palette and the color is like never used twice in there. Um yeah actually it was kind of tedious to make sure these lines all end up inside the triangle every single time. That was actually like took a lot of tweaking to do. Um but yeah so so that's what that's what the art represents is how how it's made. This is using P5.js.

Narb

Awesome. And is the image itself uh just curious how you took the approach of uh where to store the image? Did you do like the SVG uh on-chain or are you storing the image uh somewhere else and then referencing it like on Arweave or something?

Joyce Lai

Um I believe that there is an image saved via Highlight onto Arweave. Or maybe they put the metadata into Arweave. Um yeah um so but yeah I don't think that the entire code is necessarily all posted there. I don't think that's the way the way Highlight does it, yeah.

Narb

Gotcha, gotcha. Yeah, I just remember uh back when NFTs took off there was like a method somebody came up with where they actually saved an entire SVG onto the smart contract code itself and then someone minted. It was quite convoluted but it was it was interesting in that. Yeah this is not these are not SVGs so um so there's that. Um so I think um so as a part of this process what Highlight does is it um saves I think just like a screenshot at a certain time and you can choose like at what time to take that screenshot and then they upload it into into their server.

Narb

Awesome, awesome. Uh so I guess uh how many uh how many of the collection is left for minting and uh where can people go to mint?

Joyce Lai

Yeah so um there's 100 of them total. Um there's 100 of them total and I guess right now 37 has been minted. Oh wow, that's amazing. Yeah so I guess we have another 60-something to go. Um you can do up to five at a time in a wallet. I have there's been I think two collectors who did five at a time. And um yeah so it's weird right like this is like my first time being an artist so there's a lot of dynamics I never really quite thought of. Um but I kind of feel like people like you kind of worry like, 'Oh what if like no one buys it?' or like 'What if I don't like sell out?' But really like it turns out I don't care. Um part of it was like you know there's a mission behind this. Like if you look at the way I priced it, like I'm not really trying to turn this into my sole living. But it's um been really interesting seeing who gets what. I feel like everyone has kind of who has minted has kind of gone like an appropriate one for them. So it's just been like really nice to see uh what people have been getting because each one of these is unique so it's just kind of like when you happen to mint mint one that's the one you get. Yeah so um hopefully by by next year I can get all of them out because what I would love is to like use this as like the next step to create some more content with it. Um I'm talking to like a journalist next week to do a little bit of a profile of the project. And then I'm kind of brainstorming on um how to turn this into like the next conversation if you think about the messages as like the original seeds, right, the initial LEGO block and we've kind of like lifted that up from that into this layer which is like the art layer. So then it's like okay could we then elevate it to the next layer? And so really you have this event that happened from a long time ago really unknowingly, right, like kind of prompting this uh next level of connection between all these people and yeah haven't figured out exactly what could be the right format but maybe I can do like a podcast series with the collector or someone or they can nominate someone and maybe we can even write back a message to that wallet, right, at the end of the day. I don't know, like a lot of a lot of things could be done um with it um but now that we have like a pretty good sized amount minted, I think this is kind of like the right time to start thinking of what that next step could be.

Narb

Yeah, yeah, and like you mentioned earlier too it would be awesome to uh to actually track down who made the messages and perhaps those those can be like your guests on on that podcast or whatever. Yeah, just be like, 'What happened? Like what was this?' Yeah. What led you to write this? Um and now it's been artified, so um yeah, yeah, yeah this is like fantastic and uh I love the creativity here. Um you should have you should have taken this to Art Basel I think that was happening this week or something. Yeah it's it's happening right now. Um I'm not sure if I'm like cool enough yet for Art Basel or but maybe by next year we'll we'll get a little bit more publicity on there. Yeah but this is like a a really new thing for me so I'm also like learning the ropes on how to navigate kind of that ecosystem but yeah definitely all like learning process. Yeah, I'll say. Uh and it's uh yeah you're like I mentioned at the start, um this is an amazing journey and I I love the the grit uh and consistency to get to this point. I guess as we're coming to a close, um what would you what would you say to somebody who's watching this today and they're on the fence of wanting to learn how to code um but need that like last little push um to get them over? Like what like how would you inspire them? I mean, I would just say that it's really worth it and I would also say that you can even treat it like a job, um which is easier said than done because you still really need to have like a real time commitment to to just practice, right, and to make all the mistakes and to learn by doing. But I would just say it's like really worth it. Like for me, like this wouldn't have existed but for for for that, right, and now I get to like you know share this with you, share this with people who are listening, and you're just able to make things happen that you otherwise would not. In a cost-effective way too, right, like it's also unrealistic if I want to just hire a dev to do this because I didn't know what it was going to look like. How can I I can hire someone and be like, 'Hey, I kind of have this idea?' like that doesn't work. So it's really like the only way for me to have put kind of the thought together but to use this as like the actual way to experiment. Yeah, it's just this just wouldn't have existed other than me being able to tinker with it continuously for an extended period of time.

Narb

Yeah, yeah. That consistency and that dedication is the way. And uh yeah, and uh we're all rooting for you here at DD to to keep going. Uh this is an amazing project. Um and just before uh we let you go, um what is the best way to keep up um with your project and how can people reach out to you if they um they want to talk? Yeah so um I have a Twitter account for the project. It is at Memento um Memento Dialogue. Now do I not have the Now why is this still not pulling up from Alchemy? Okay, I got to fix that. But uh the account is Memento Dialogue, I think that's the best way to keep up with the project. Oh, I'm not signed in here. I don't know if you can pull it up on your side. Uh oh we we have this we have it we have it posted on uh the YouTube description. I just wanted you to say it with words. Yes so it's on uh Twitter, you can just DM me um because it's just me on both of the accounts anyway. Yeah or or if you're in DD just um ping me on on Discord although with like the the fraud settings it might be a little bit more difficult. But yeah, happy to chat, happy to explain through anything or if this is something you want to do yourself, I'm also happy to chat about that too. Awesome, awesome. Uh great stuff and uh we are one minute over, two minutes over. I know I promised you we'd be 30, but it was okay. This was worth it. Um yeah just want to thank you again Joyce uh for coming on the show and taking the time to show us this amazing uh piece of art um that you've built. Yeah thank you for your time. Yeah my pleasure. And uh you're welcome back on uh anytime if you want to show us the evolution of your project if you take it when you take it to the next step uh yeah we would love to hear what you did. Yeah and thank you for minting that that live, that's amazing. Um I'm kind of starting to think about the V2 of the website just to make it a little bit easier to navigate, so I'll let you know when that's up. Excellent, love it, love it. Uh all right, I guess uh with that I just want to wish everybody a very happy Friday, happy weekend wherever you may be and we'll catch you back here for another episode of DevNTell. All right y'all, cheers. Thank you. Bye.

Listen On

Resources & Links

Share This Episode

Share on X

Watch Episodes Live!

Subscribe to our event calendar and never miss a live episode.

View Event Calendar