New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Circles Developer Workshop | Vanshika | ETHDam III - 2025

CryptoCanalTue, Oct 7, 2025, 12:00 AM

Welcome to the 3rd Edition of ETHDam, hosted May 9–11, 2025 in Amsterdam. This year, we brought together the brightest minds in privacy, security, and AI for a unique 48-hour hackathon + conference combo. 🌷 https://www.ethdam.com// 🌷 ------------------ Circles Workshop | Vanshika | ETHDam III - 2025 Circles is a decentralized currency protocol reimagining money as something created between people—not above them. By distributing the power to issue currency equally across participants, Circles removes hierarchy and unlocks a truly peer-to-peer economic layer where trust and collaboration are the foundation. ​In this hands-on workshop, you’ll explore the Circles SDK — a TypeScript-toolkit built for developers. Developers will tap into trust connections formed through the social graph, manage personal and group currencies using the ERC-1155 standard, and enable transitive value transfers across users' networks. The workshop also covers avatar generation, wallet integrations (including Safe), and wrapping tokens into ERC-20 format for seamless use with DeFi platforms like CowSwap. ​Whether you're building social apps, mutual credit systems, or collective finance tools, this workshop will show you how to utilize the Circles protocol to power next-gen community economies — all running on the fast, low-cost Gnosis Chain. 𝕏 Follow: https://x.com/ThisisVanshika https://aboutcircles.com/ https://x.com/aboutcircles ------------------ About ETHDam & CryptoCanal ETHDam is powered by CryptoCanal, an education and events platform rooted in Amsterdam, expanding into Rotterdam and Zürich. Keep up with us to see updates on future events: https://www.cryptocanal.org/ Follow CryptoCanal on X: https://twitter.com/CryptoCanal Join CryptoCanal TG Community: https://t.me/CryptoCanalCommunity Join CryptoCanal Discord: https://discord.com/invite/XJVjpCqQBz CryptoCanal unites crypto enthusiasts committed to making a positive impact. Unapologetically political, we prioritize education, events, and services while championing cypherpunk values like privacy, sovereignty, and censorship resistance. ------------------ 🎥 Credits: Intro / outro by babyPRO - https://babypro.art/ ETHDam Photography by Paulus – https://concretestate.eu/ MC of ETHDam - James Campbell - he builds decentralized, end-to-end encrypted, privacy tools. Come and say hello on Farcaster https://farcaster.xyz/theref ------------------ Special thanks to our partners who made ETHDam possible: 🌹 Hackathon – Bouquet: Oasis Network https://oasisprotocol.org/ 🌷 Hackathon – Petal: Circles https://aboutcircles.com 💛 Conference – Gold: Zano https://zano.org/ Dash https://www.dash.org/ Bitvavo https://bitvavo.com/en 🩶 Conference – Silver: Igra Labs https://igralabs.com/hero 💛 Conference – Copper: Lido https://lido.fi/ DeTrip https://detrip.travel/ Cake Wallet https://cakewallet.com/ The Grid https://thegrid.id/ Calimero Network https://calimero.network/ 0xbow https://0xbow.io/ Mina https://minaprotocol.com/ JobStash https://jobstash.xyz/ Cyber Capital https://www.cyber.capital/ POAP https://poap.xyz/ Acronym Foundation (Supported our Top 10 Hackers) https://acronymfoundation.org/ 🌱 Sponsor: EF Ecosystem Support Program https://esp.ethereum.foundation ------------------ 00:00 Welcome & Overview 01:06 Introduction to Circles 03:29 Trust System & Civil Resistance 04:26 Core Principles of Circles 06:33 Bounties & Use Cases 08:31 Sandbox Setup & Minting CRC 10:22 Circles SDK & Profiles 11:33 Account Types: Human, Group, Organization 13:25 Live Demo: Creating Accounts 22:26 Building with Circles & Final Tips

Transcript

Welcome to Ethan to Ethan to Etham to Ethan to Etham. Hello and welcome to Amsterdam and Etham. Good morning. Um welcome to the first workshop of the day. I am Munchika.

I'm work with Nosis and today I'm representing circles and I'm going to be um talking about how you can build with circles some very interesting public goods application. Um just to get a little bit of overview um how many of you might have attended circles workshop in past or like the one that we did online on 5th of May anyone who was part of it okay Jera was there and you okay perfect so we did cover bunch of theoretical concepts in that workshop but today I will give you a little bit more um rundown and more technical aspect of it and if you still have any confusions on the critical side then you can definitely reach out to us we on the booth. So yeah, let's just get to get into it. What is circles, right? Circles is the new form of money system where each user can create their own currency and operate independently of any centralized institution.

That's the theoretical term. Just to simplify the whole thing, we know what money is, right? You can use the money to exchange for goods and services. Now if we had to reimagine this money in a decentralized world the way the way currently crypto is right now right so what if we could use this sort of money concept and kind of have this where we don't have third party intermediaries no government control exactly and write like no bank institutions so that is sort of the idea of um circles and today we invite builders to rethink about money for the decentralized world and build on So who can basically create a circle's account? How can you start issuing your own money?

Well, everyone can start creating your own currency. But it's a decision of whose money you would be accepting. So there's a very important concept of circles protocol in itself that how are we going to kind of protect civil accounts, right? So basically if you have to invite someone basically you have to like accept someone's money you would have to trust them. So it's a decision based on some person who is actually already part of circle's money system.

So let's say today I am a circles user and I know bunch of people who are sitting here and I want them to accept my CRC. So I will invite them to join the circles network and when I trust them I basically tell them that hey you can now accept my token and I will accept yours if there's a mutual trust connection between us. So there is the intermediarly there's like um the concept of trust connection or web of trust I would say which makes it very decentralized. So based on trust connections and based on the people that you um really know you trust them. So until unless you do not have a trust connection, basically you cannot accept anyone's CRC.

So this kind of excludes the civil accounts in this whole process because why would you ever trust a civil account, right? And you only trust the people that you exactly know. So what's the core three core rules of circles? First CRC issuance. So CRC is basically like the short form of circles.

Okay, we are saying that this circles token can be created by everyone. So we have fixed a rate of 1 CRC per hour which means 24 CRC day can be minted by everyone. And then there's a 7% demarrage to kind of like give it a real world um view to this. We have 7% annual demarrage which means that all of your balances all over the year it will decrease by 7% so that you can spend and circulate the CRC money rather than keeping it in your pocket. So that is to just motivate you that if you are keeping the money and and just like how inflation works this this is supposed to like give your CRC money a little bit more value in the real world.

And then there's a selective trust system. So basically you can control whose CRC you would like to accept based on the trust. So that's three core values of circles protocol. Now let's talk about bounties right. So we are doing five bounties, five tracks basically.

Um the first one obviously is an open track. any application, any product that is built with circles SDK and has a really great use case, something that does not falls in the next four tracks, feel free to go ahead uh and apply for this track if you have a really nice idea about how you can bring CRC to the real world. But apart from this one, we have four more tracks. So a community focused tabs that you can build using groups accounts. Um I will be talking about different kind of accounts because I know a bunch of you might have not attended the previous workshop and this will give you a bit more overview of how these um circles communities and groups can basically utilize the idea of decentralized uh you know like Dows and and group based apps.

Then obviously third one social platform. So the idea behind this track is that you can utilize the web of trust connections and build like really small uh or like mini dabs for telegram or really nice social um identity focused applications. So bunch of ideas around yeah social networking side of things and then we have AI agents and circles SDK. So there are a lot of um open source AI agents tool. I think Eliza is one of the famous ones and you can easily integrate with um circles SDK because that's also a TypeScript toolkit and you can build out either like a trading bot something to do with CRC or you can also have some kind of social agent that lets you know like pay other agents.

So yeah, $2,000 split between two projects. And then last but I think one of the most important ones is making marketplace applications. Basically you design a service of your own and then you consider that um service to accept CRC as a payment tool. So let's say if someone in the room wants to run a business, you can actually utilize organization accounts and accept payments from bunch of people in form of CRC. So yeah, let's let's get into the technical side of things.

So one of the important things to remember is that we will be using sandbox version for our um workshop the session ideas and and um uh whatever you're building because um circles by default as I mentioned to kind of build on top of the production environment you would need real trust connections and um I know developers need a little bit more sort of you know things here and there. So we created rings which is again on NOS's chain u mainet. So it works completely fine on the mainet and what we have given here for the sandbox environment is that when you join the network as as a developer when you join the network you would get a 200 CRC bonus right away as soon as you join. So you can utilize this 200 CRC in different way you can utilize it for inviting people or you can like you know just check how how you can pay CRC. So do bunch of things with this 200 CRC but at the same time for the next 48 hours 48 hours and more than that actually you will be minting 24 CRC a day.

So by the end of today let's say or tomorrow you will have about 2 thou 224 CRC but with a little bit of less value when there's a 7% demarrage applied to that. So kind of like spend your CRC when you have it right. Um then obviously we have an invitation fees of 0.1 CRC. This is given with the idea of how the real world um circles protocol work.

So by default on the actual production uh version we have um invitation fees of 96 CRC and a bonus of 48 CRC. So to kind of curb that whole thing, you also have an invitation fees here for 0.1 CRC. If you're building an application and you want to apply invitation fees for everyone, you can do that. But if you want to self-invite yourself, if you're a solo hacker, then you can also just do a 0x0 address and just self-invite yourself there.

So, okay, time to talk about SDK. We have the TypeScript SDK. This is the main core um circles SDK that has all the um all the functions and everything that you need. But we also have some important dependency packages. So we would be using um adapter ethers if you want to like do things with a private key or like browser provider then you should definitely have the adapter ethers but if you want to build something with the safe wallet and and like you know do safe transactions then you can also um install the safe adapter in itself and then we have three more helper um sort of packages that you should definitely install for data profiles and utils.

Yeah. Okay. Time to talk about circle profiles. So in the most simplest way why we need profiles is because we want to search these people, right? We want to kind of see how I can invite someone and just having their circle's address does not make sense.

So I want to make this whole experience a more web two-ish experience. So we created profiles which is basically stored on IPFS and it's a particularly a metadata. So every profile has its own unique CID the content identifier which basically serves as a reference point for us for this specific profile data. By default um name is super important. So so that I can search everyone with the name right.

So name is um super important but then you can also have other um other objects like description and um profile image location and even geoloc. So you can kind of customize the profiles um based on what tool you are building. And we have profiles for humans, groups and organization. All these three oops. So as I was talking about different type of avatar accounts that exist.

So based on the product that you're planning to build or or basically whatever you're hacking on and uh whatever your use case is, you might want to see which avatar account fits the best. And to just give an overview, human accounts are basically capable of doing three most important things. Number one, invite someone. Number two, they can mint their own personal tokens, which is when you create your own CRC. So if you have to check out how am I able to like create my create my own CRC, you should definitely sign up first as a human account.

Get the understanding of how this works and then you can pick group account or an organization account based on your needs. And then the third one is you can transfer your CRC to the people who actually trust you and accept your tokens. Then the other two accounts are much more focused accounts based on the need. So groups accounts or groups avatars are basically super important for the teams who are building around communities and groups and dows. Um and the idea of group accounts is basically very simple.

Um let's say I'm a group owner right of etheram group and I want to invite bunch of you people who have um you know who who who are part of the workshop and what I will do simply is first of all you need to be already a a human avatar or human account so that I can search you up and like you know I can basically invite to the uh group itself. So you should already be a human and you should already have your own personal CRC. And when I invite you to the group account, you can basically mint group tokens. And these group tokens can basically unlock certain offers or services. For example, let's say if you had to buy this really cool ETHM um hoodie, you can use CRC group CRC tokens to buy that thing, right?

So what happens here is you use your personal CRC as a collateral and against that collateral you mint your group tokens and when your trust is sort of revoked or when you decide that okay I don't want to be a part of this group your personal CRC gets back to you and then you um yeah your your group token is basically gone so that is the idea of groups account that we invite communities and bunch of like groups to kind of create their own sort of services there now organization accounts might seem to be like a really huge thing but it's a bit more simpler than group accounts. What happens in organization accounts is basically there is no minting involved at all. It's it's like an business. So as a business what you would do is like accept payments, right? So if you just had to accept payments and you do not want to give any sort of offer or or you don't think like you need a group for a specifically close group of people then you can go with organization accounts and accept CRC payments.

Again in that case what you have to do is that you have to trust those people from whom you want to accept their tokens as payment and that's all. There is no minting involved and there is no redemption of your personal tokens. You just use your CRC to pair the things. Let's do a small demo of these accounts. Um right now I am on app dot about circles.

Um so to create your account if you're thinking you have to initialize SDK and everything we have abstracted all of that and we give you this like really cool application which is like um sandbox version but also like builder focused application. So you can just toggle the rings mode actually here and you can choose how you want to create your account. So let's say I want to use my MetaMask right and I'll simply choose this MetaMask account and I have this connected wallet now. So I see two things here. I see my groups and I see register.

So as soon as you click on register there will be this sort of popup and we do not want to touch the advanced section. Uh we are just going to play around with the human and organization and groups. So for human as as you see it says you need to be invited by someone who is already using circles. So let's um register ourselves as person here. So by default as I mentioned we have the zero x0 account like it's a zero address account.

Um we'll just this is prior selected. So I will just put my name here and I do not want to add any description but I want to add location. So let's add Amsterdam here. And I could add my image if I want to. So let's just put this right.

And then I will just do create. So h I think wait there might be some small issues with my metam mask. As usual, I will try to get for so you can also use faucet by the way um the nosis for faucet um to kind of get your extra tokens because you still need bit of gas fees to like do these transactions. So make sure that you have that. Okay, let's try this now once again.

Okay. So, this will create a profile and this will also log me into the um yeah the the circles basically onboard me to the circles protocol. So now you see I have 200 CRC which is the bonus and now I can invite people and every time um an hour goes by right or like let's say a few minutes have passed I will see mint some 0.5 or 0.8 or one CRC after 1 hour has passed and I can mint my group tokens.

So at some point you will see this becoming 200 uh some circles token. So for example, I have this very old account of mine which is again a dev sandbox version and I have about 335 circles to me here because this account has not been open for about 300 hours or something and all of this has accumulated together. So now I can mint this much and my total balance will change. But also the funny thing is that if you see 187 days ago I had 200 CRC and now it's only worth as 192.66 six six circles which is because of the demarrage.

So make sure you spend your CRC right. So this is your human account. You can simply log in and and join as a human being here. Now let's talk about um groups. So we have this really nice groups also.

So again for create creation of your own groups you can just use the application directly and create your group and then build your actual application around it. Right. So I can just put the name as let's say EDAM and I'll put a symbol. So one of the important things to remember for groups profile is that symbol is mandatory. You cannot leave out symbols because that is how your group CRC token is defined.

So I will just put dam as my symbol token and I can leave the group image in description for later on which I can update and let's try to register this. It's taking some time. Cool. Uh but meanwhile yeah this will basically create your group. Um, let's try to see if I already have an existing group so that I can show you.

Okay, it's still stuck on the loading. Uh but yeah, you can you can create group. Maybe at at some point it will work. Uh but yes, you can create this group simply from here. And now um for the organization account, so you need a new address for each and every account.

But your groups can be created with same wallet address. And why is that so? Because our groups are basically using proxy address. Um basically they are proxy contracts. Which means if you already have a human account with an wallet address, you could still utilize that wallet address to generate multiple groups or you could use safe which is like the best option there to uh work with the groups.

So that's about the accounts register and you can just start working with them um as you need. Now talking about the groups, what are groups capable of? So we also want to like um introduce the idea of the membership condition. Let's say everyone in this room has some sort of NFD or PO app. So I want to add a membership condition that whosoever has a PO app can become part of this group.

So I don't want to trust anyone randomly and I also do not want um to just simply accept anyone's token. So I create this membership condition that any to be a part of this group you have to have this PO app and then I will trust you and then you can start minting the group tokens. So we also have the membership conditions that you can basically define and register short names for your group which happens with the name registry contract. Um now we can also trust trust batch with conditions which means that let's say you had um 10 accounts and you think that everyone suffice the conditions. So you can just trust batch everyone in the group itself.

Um in app.about about circles. Actually, you can use Excel sheet of addresses also like bunch of other addresses, you know, like from your contact list and just um call a do a batch call for trusting them. Um and let's say you want to support some sort of fee. So you are a group and you think that I also would like to charge a fee of one CRC every single time you know someone does certain things in the groups.

Then you can also collect fees by default. Um your fee collection address is your group address but you can also change that to a different wallet address if you want to like create some sort of uh separate fee treasury as well. So let's talk about trust grab which is a very interesting thing actually. So this is sort of our own um production explorer. So if you have a production account, you can basically search here.

And I have one Shigashwasta which is like the um my my own circles account, my main circles account. And what I have here is very interesting, right? This is the social graph that I have right now. So you see bunch of people in my circles in the circle circle of trust connection. So I see bunch of groups and I also see like bunch of these people.

So this is what I was talking about when I said that there's a web of trust, right? Your trust connections are very important here because if you have the right connections then you can like you know send your CRC tokens but also like uh kind of make sure that you're not trusting any civil uh civil accounts as well. So this is how the trust graph works and based on this trust graph you can derive bunch of data as well like you know you can um check if if um there's a transitive transfer flow or not. So transitive flow is nothing but like let's say um I'm not in touch with a person but there is my friend who is in touch with that person. So I can use the path of their trust connection to reach to the other person and I don't have to worry about trusting them which is which is like very simple because if if you see you don't you might want not want to trust this mutual person mutual other person but you have your friend who knows this so I can just use their trust trust u path to do this kind of transfer.

Exactly. Okay. What else? Um let's see. So creating demands for circles with offers.

Um you could also say this is like more idea focused and basically whatever things that you can build. But I also feel that this is something that will bring a lot of people to kind of actually uh introduce CRC on a much more broader aspect. So I have this really nice Okay, let me it's gone here. Okay. So I have this like really nice um list of ideas um and you could utilize that to create demand for CRC.

So obviously payment and transactions is like one of the most important ones here. Um but you can create like bot or something. So you can pay um CRC for Discord, Telegram, Farcaster B. Frames are very interesting. people could actually create far caster frames and every time you see your favorite creator you could pay CRC to the to them and you know like really help them out with with their um content uh creation that they're doing.

Then we have community subscription. So we have seen in the past there have been some really good products around community subscriptions, right? Uh let's say you want to make a community of people who kind of share crypto content and you want to tip them or you want to also like buy that subscription, you can do that with CRC and then buy alpaka socks or some kind of goods um as well. Then we have the AI and web3 services. So I think one of the very cool thing is like if your agents AI agents could make payments with CRC.

So maybe like integrating that um with your AI agent track or like running some kind of service via let's say nois node something like that you could use CRC for just you know having this this um sort of selling with a CRC point and then we have some gaming and experiments so like raffles lotteryies some kind of vending machine pumpf fun inspired thing that could happen with the CRC um you could also buy NFTs with CRC right and And then we have the forum and community initiative. So providing some kind of forum rewards or some kind of points, some kind of marketplace thing. So these are the sort of ideas that we think that in real world it could be really interesting and you can integrate in the current sort of product um scenarios. If if you really want to play with making a realtime payment like let's say use some kind of token, we actually have a setup for this. So if someone of you want to build something with D5 protocol itself like use some kind of currency Euroe or USDC um we are happy to support that and uh we we have the setup so we can guide you through that but but like right now it's not in the exactly circles idea like it's not mentioned here but we definitely have that kind of setup to integrate um D5 too and yeah so next steps set up the ring sandbox environment to the circles and create your profile and start with an avatar.

Um earlier we used to have this really nice um sort of platform called circles garden which is like more legacy now but now we have opened weight list for our new wallet metry which includes circles and basically all these things that I've talked about um you know like groups and uh your own avatar and like kind of doing transfers. So if you're interested you can sign up for the weight list as well. Um but in the meantime have a really good time for hacking. If you want to also look into a small code base um I have like just create a very just just a simple typescript right that what's how much time will it take for you to just set up the SDK and it's basically few lines of code. So what basically we need here is uh we'll have to import the type circles config from the circles SDK and the SDK um avatar instance sorry the SDK instance um so that you can like create this um SDK with your adapter and configuration and then if you're using safe you could also um import browser contract runner or like private key contract runner based on whichever u scenario you want to do in safe.

So I will just like comment this out. Then we have the config. So I know there's like a huge set of config and how is the easiest way to kind of get this. So if you go on docs.about circles, we have a quick start guide here which will guide you through all the imports and everything.

So make sure you read this if you are planning to integrate circles obviously and we have this ring sandbox version of circles mentioned here and also like the configuration of how it would look like. So just you can copy paste this whole thing and uh pass the circles configuration here um here when you're initializing the new SDK. We also need the adapter as I mentioned in the beginning of our workshop. So once you have the browser provider contract runner which is basically whatever wallet you have rabi wallet or meta mask wallet whatever wallet you have you could just use that initialize that and then just pass this adapter and the circles configuration in your SDK and that's it that is all you need to just initialize the SDK for profiles creation what is important is your name most importantly so just um the profiles function is like SDK.profiles profiles.

create and you pass your profile object and this will create your avatar profile. Um if you had let's say a group you would need a symbol here. So your token symbol is also important there. So you can just add that and your group profile will get created. So that is mostly it.

Um yeah go through this. Then we also have all the things related to human avatar and accounts like how does the creation of personal accounts happen and how do you even find the mintable amount for let's say an account right how much tokens can I mint so as you see um when I showed you this it showed about uh not here let's go back here I probably changed my account. Ah well never mind. So you can basically um just find the total CRC that is available for minting and then you can call just the personal um mint sort of transaction to uh mint your tokens. So all you need to do is avatar.

personal mint and it will mint your personal tokens. If you want to fetch profile for an avatar, it's a very simple very like extremely simple way to get your profiles. So avatar.get profile will get you the account details like avatar account details and you can also update your profile. So let's say later onwards you decide that okay I want to change my profile picture or or I want to change my name or whatever then you can just call this avatar.

update profile and this will update your profile based on whatever changes you have made. For managing trust connections like basically how am I supposed to not trust people? Um what you need is their avatar address. So important thing to remember here is that if you had to trust people they would they would basically need a profile just a simple profile or just a simple address that would be that that that they would like to be invited for. So let's say I have a safe address and I would like anyone in the room to invite me.

So I just give you my address that hey you know what just trust this uh trust the safe address which is going to be my primary account here and then with uh that account when I log in I can accept my invitation and then I can go about minting my tokens. So it's very simple to kind of just um invite people to the trust network itself. Then hm this is more about groups. So again bunch of things on groups. If you want to understand how um finding groups works or like how do you can manage the group invites you can definitely go to the docs.

We also have a very small um thing with the react like a sort of a script you would say which has the circles SDK context. So if you want to like set this SDK into your React application or a V react v application, you can just simply utilize this and then um yeah all the things are included here. So just you could utilize that with your further code base. So uh yeah, I think that's it. I'm also close to the time.

So that's it for the circles workshop and if you have any questions about the protocol, about the SDK, um my team members are here. you can come to the booth and let us know about your questions. If there are any questions in the room right now, um I can maybe take one or two. Thank you very much. [Applause]

Automatic transcript — names and jargon may be misspelled.