Programmatic On Chain Philanthropy with Endaoment by Robbie Heeger
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
Endaoment invites developers & builders for good to a workshop exploring use cases & applications for new web3 tooling that makes crypto giving flow. Learn about how to find contract addresses for organizations, format donation transactions and deploy new contracts for nonprofits. If you're passionate about bridging web3 and impact, join the Endaoment.Tech team to learn about our new developer tools and innovate together live, as community. #consciouscrypto LOCATION: #BUIDLHub 3403 Brighton Blvd, Denver, CO 80216
Transcript
Morning everyone. How are we doing? Welcome to day two of the Biddhub I believe. Uh and uh today this morning we have a quick 25m minute presentation. Um and some fun new tools to share with you as well.
um hot off the presses endowment uh has just launched new uh primitives for developers to be able to integrate uh onchain programmable philanthropy directly into any application or website or portfolio tracker, NFT platform, protocol, you name it. Uh we've tried to build a tool that helps you to incorporate impact into what you're building. uh a little bit about what we'll cover today and then I'll I'll dive into intros and a little bit of setup information. So, first off, endow what? Uh most people haven't yet heard about endowment, and that's that's all good, but we'll spend some time making sure we're all running on on the same set of information that you guys know a little bit more about what endowment is.
And then we'll dive into these three new tools. Uh what they mean, what we've built for them, uh the documentation resources that you can have as developers to be able to integrate impact directly into your app. So first things first, let's get clear about what Endowment is. Uh first off, hi, I'm Robbie. Nice to meet you all.
I am the president and CEO of Endowment. And Endowment is crypto's community foundation. We launched in 2020. We are a 501c3 taxexempt public charity and community foundation based out of California. Um, what do all of those terms mean?
Uh, first off, a 501c3 means that we are certified by the IRS as a taxexempt organization. Every dollar that we take in at endowment is taxexempt to the fullest extent of the law. Uh, a public charity is a certain kind of 501c3. uh a a public charity has to have a majority of its fundraising come from people unaffiliated with the nonprofit. So they have to pass a public charity test in which the IRS looks back over your contributions and determines whether or not you are actually in the public interest versus in the interest of a very small group of people.
And this allows us to offer a broader range of philanthropic financial services. We offer two main kinds of philanthropic financial services. Those are donor advised funds. Donoradvised funds are like individual little charitable foundations that anybody can stand up. And the other type of fund that we offer is a community fund.
A community fund is also known as a field of interest fund. It's when you identify a field of interest or a group of people who are going to work together to determine what kinds of causes that they'd like to support. And the last type of fund that we support is called a uh individual beneficiary fund or a single recipient fund in which the only recipient of that fund is one specific organization as long as they exist in good standing with the IRS. And now uh those are important to understand how we've built this architecture for uh facilitating onchain charitable donations. But before we go any further, what has this meant for the crypto community?
Well, it's meant an incredible outlet for people to give. Uh, to date, we've raised almost $52 million in charitable donations from users all across the Ethereum and crypto landscape. So, shout out to you guys. Congratulations on what is a really remarkable amount of impact. Um, and and thank you for all of the giving that you've done already to date.
Um, that's happened across about uh 1,200 different donation events. Those 1,200 different donation events though don't include individual NFT mints. One of the things that we've seen huge amounts of traction on are around NFT based fundraisers and those take thousands and thousands of mint opportunities and combine them into one bulk donation. And so we assume if we count those micro donations, we we have sort of an internal count that's well into the sort of five figures of individual donation events. And with these developer tools, we're really excited to see that number rise.
We're going to start counting those micro donations as individual donations. And that's just going to be more reflective of the kinds of philanthropic activity that's happening across the crypto landscape. We've onboarded about 2600 nonprofits and have several hundred donor advised funds or community field of interest funds for a total of around 28 2,900 uh contract addresses on chain that can be used as charitable endpoints. taxexempt endpoints for contributing capital to causes that you care about. Um, and that's led to around 700 800 individual grants to individual nonprofits, granting out over $31 million to date to nonprofits.
So, this is a very real, very live system running on mainet. We're now on V2 of our of our interface. We've built this comprehensive donation interface that marries our protocol. Our protocol is the smart contract suite that manages all of these different contract addresses. Uh this includes the organization single beneficiary funds as well as the community funds and private donor advised funds.
Uh but our web app is really meant to line up with our onchain protocol to give people a beautiful interface to interact with these contract addresses. And so if you go to endowment.org, or click on launch app and find an organization that you love. You'll see that once they're deployed, they'll have a smart contract address. Each nonprofit has their own destination smart contract address.
And with Endowment V2, that destination smart contract address is entirely composable. So, you can think of it almost like an EOA for that nonprofit. and we'll take care of the liquidation into stable coins, hooking up with the nonprofit to get their payment method of preference and wiring them or passing them the stable coins uh over to their own individual wallet or to their bank account um without you, the donor, having to figure out any of those logistics. And deploying new contract addresses is entirely trustless. So, if you have organizations that you love, you can just search for them on endowment or as we'll see here in a minute, we using our developer tools, you can find that organization and deploy their smart contract address without anybody giving you permission to do so.
And that will help us onboard that charity into the crypto ecosystem. So, what are these three new tools that we're rolling out here? Well, just last week we announced the endowment developers program. And the endowment developers program consists of three main utilities for developers to help incorporate impact directly into your app or website. First and uh probably most straightforward is the SDK.
SDK is here to enable you to with a few short lines of code integrate the capacity to format transactions that are ultimately taxexempt donations straight into your protocol or application. We've also taken all of the feature sets of the SDK and boiled them down into a public free totally open accessible API endpoint. Uh feel free to go ahead and get after it and if we feel like you're doing too many calls, we'll let you know. um it's it's really there for you to use. Uh we really want to see people come in and if you have a more customizable interface or infrastructure where you're looking to you know take a app that you've already built that has robust Axios connections or you know existing API infrastructure and you already have all the tools to sort of format up transactions and do gas estimation and all of that fun stuff.
You can use the API instead of the SDK but the the SDK is really there to be the uh the oneliner easy approach. let us take on the hard stuff for you of figuring out the swap route and uh gas estimation, contract addresses, all of that, all that fun stuff. Um lastly, we would be nowhere without our commitment to decentralization. Um and so it was really important to us at endowment to launch a subgraph in conjunction with these tools around app development. Um, the subgraph is really there to help you pull statistics about philanthropic activity that's happening on chain or to be able to audit what's happening on chain and say, did they actually move that money to that nonprofit or are people actually giving as much as they say they're giving?
You know, what we've learned over the last year and change very painfully is that people will often make large commitments to philanthropy, but it's hard to track. It's hard to know if they've actually made that donation. And with the subgraph, we're hoping that we can bring some of that decentralized transparency more easily into the hands of users to be able to audit what's happening on the endowment platform and build really cool dashboards and and sort of alert systems around uh giving that's happening inside of the Ethereum ecosystem. So, we're going to take these tools one at a time and uh I'll also jump out and give you uh a a sort of modified short quick demo. Uh just watching the time, want to make sure that we're able to get through everything.
But um we'll show you some of the resources that we've built here for you guys to understand how to appropriately integrate the endowment ecosystem into your app. And uh yeah, I think you'll find it pretty cool. So we like to think of this SDK as an SDK for public good. We hear a lot of uh people working on the public goods infrastructure space and are really impressed by all the work that they're doing and we wanted to help facilitate that by bringing this SDK to market and and what's important for everybody here to know at this developers convention is that this SDK is sort of industry class easy to integrate comes with JavaScript and TypeScript compatibility. It's really meant for React applications to easily be integrated straight into, you know, your component architecture.
It comes with access to search over 90,000 organizations that are already in our database. That number grows every time somebody runs a search on endowment. We pull in more data about more nonprofits. Uh and right now, you know, we're sitting on over 200, as we talked about earlier, closer to 2,800 different contract addresses that represent either individual organizations or collective efforts to do giving as sort of a giving circle or individuals who are doing who who are doing giving that is directed just by them through their own grant recommendations. And really, this is built specifically for web 3, right?
So, we are formatting up gas limits, uh figuring out what contract addresses you're supposed to be routing things to. We effectively format the data object for transactions on your behalf to make sure that you get clean and successful transactions with the endowment interface. We've built a really lovely code sandbox. Oo, good morning. We've built a really lovely code sandbox for you guys to play with and to get it comfortable with the endowment SDK.
So you can see on the left we're running like a very very barebones React application where we're importing the endowment SDK. Oops, let's not nuke it. Right? So we're importing the endowment SDK to help us format up a series of different examples. And so the three examples that I kind of want to walk you guys through that we see as the core examples of the of really any of these tools being utilized by a developer are discoverability of organization contract addresses uh deploying organizations that are not yet deployed.
So we'll take a look at that as well. Um, and also charitable giving, um, which is the actual act of sending in money and us doing what we call a swap and donate, where we take in a donation, swap it for USDC, and deposit it at the end destination address that we're looking for. So, first off, this is pretty straightforward. We've done some pretty gnarly uh, styling here, but, you know, we can easily pull up UNICEF. You can see that we have several different UNICEF related organizations already in the database with the big one UNICEF already being deployed right and and this can either pull you out to Etherscan where you can see this UNICEF transaction now nobody yet has given to UNICEF anybody wants to change that we will gladly help you out u but uh you can also come here and see it on endowment and so all of this information is the same between endowment and the SDK Okay.
As well as between UNICEF and their current tax filing. So, we're pulling current tax financial information about UNICEF. And you can see that you can donate easily through the app using a wallet or from a fund if you have a fund. Um, or you can use this new sort of composable architecture that we have to monitor uh uh and pull the contract address and just send assets straight to that contract address. And what we've built on the back end is some very cool, very robust Tenderly dashboards and uh automated web hooks and workflows around inbound assets to any of our smart contract addresses.
Um if you send in assets, our system will automatically notice it and if it meets a threshold uh amount, we will automatically liquidate it and deposit it into the uh into the desired contract address. But if it just sits there and it's a really small amount, we can come back and swap and reconcile. Um, but ultimately, you know, what is important for this group to know is that you can easily come here and build a search box for finding any nonprofit address that that you want to format a donation to. And more importantly for your users to be able to say, "Oh, I'd like to give to this or this or this cause." and for you to know that you have a robust search engine at your disposal that you don't have to build yourself for both finding these contract addresses but also finding metadata about these nonprofits.
If for example that's a let's do does anybody have a uh particularly favorite organization in the crowd? You got to say it louder for me. All right. I'm sure that they're deployed. They've actually Oh, wow.
Wonderful. Here's Doctors Without Borders. You can see them on Endowment. Doctors Without Borders has actually done quite a bit of fundraising on Endowment already, as you can see. But we do have an undeployed nonprofit here, which is Burners for Direct Action.
And so burners for direct action has not yet been deployed. And so it's worth understanding what's the difference between a deployed and undeployed org. Well, as you can see, burners for direct action has this big blue deploy button, which means we haven't actually created a contract address for them yet. We have data about them from the government, but we don't actually have an endpoint for them. And so something that we've set up here is the ability for for you the developer if you find an org that you would like to deploy, you can actually format that transaction for creating a deployment.
So let's go back to burners for direct action. If we grab their EIN, for instance, wonderful. Loving that. There we go. and we put this in here and we search without the space.
There we go. You'll see here that we have get deployment data and what the SDK will do for you is format up this transaction object that basically takes the EIN of the organization. So the unique tax identifier for the organization gets formatted up into uh as into a contract address by using the EIN as the salt for a create 2. So each contract address for endowment is actually unique to the EIN of that organization, which we think is really cool. It's a great way for us to verify that like that organization's contract address actually represents that organization and that there can only be one contract address for that EIN.
So um this would take this you' broadcast it into a transaction. In the interest of time, I'm not going to do that right now because we don't want to wait for the chain. Um but that's deploying an organization on endowment. So we already have 2,800 deployed but if for some reason it's not deployed you can easily use the SDK to format that deploy transaction or you can come here and deploy it on the app. Same same the last thing that we'll show you from the SDK is uh charitable giving.
So in this instance you would give it an organization that you found through the SDK. You would give it the con the the sort of uh contract address of the asset that you would like to donate and an amount that you would like to donate and it will format up for you using the unis swap auto router a trade pathway as well as the necessary additional transaction data that's required to issue uh what we call a swap and donate. And so if this were to be broadcasted out into a transaction, right, we would basically have a one E donation in this case to endowment. This is our EIN here. Um, but again, in the interest of time looking that we only have 6 minutes left here, I will spare us the transaction itself.
Um, but very very cool to sort of see this running in real time. And you can imagine that you would put users through a search select, figure out how much you want to donate, format the transaction, and it's off. And that would all that would be all it would take for you to integrate giving directly into your app. That's the SDK. Uh, but what about the API?
The API is basically the same set of features as the SDK, just bundled up in a slightly different format. And so, uh, same process where you're finding orgs, getting their contract address, or you're getting the contract address for a public fund if you want to give to sort of like, uh, a batching endpoint. Uh, whether you make a fund for your community or you have uh, we have the Turkey Syria relief fund right now, right? So, if you know you want to support earthquake victims, but you don't want to have to choose where, you can give to a community fund instead of giving to an individual org. Um, and then we'll format up that that contract call for you.
Um, in the future, we're looking to do the endto-end endowment experience through the API in the SDK itself. So that if you're building a portfolio tracker and you want to be able to pull in information about a user's DAFF that's connected with their wallet, that you can show their charitable giving in the same place that you're showing the value of their portfolio or their ability to bridge or, you know, their farmed assets. uh in in the same way that you would want to show that complete picture of a wallet, uh we want to be able to give you the ability to show the complete picture of their philanthropic history on chain as well. We also have a really nice styled up set of docs and resources for you here. This is uh linked to from developers.
endowment.org, but also you can just go to api.endowment.org/as. Um, and here you'll find uh just a little playground for you to be able to do things like getting a list of public funds or uh searching through a list of those public funds or getting a bunch of orgs or searching for specific orgs or deploying orgs, right?
Same set of features just a different way to plug into it depending on how you want to plug into it. We wanted that max flexibility. Last but not least, we're really excited about the subgraph. The subgraph is in its infancy right now. It just came out.
Everything you're seeing here just came out on Thursday of last week. Um but for now, the subgraph is a great aggregator of statistics about the endowment ecosystem. And uh just like any other subgraph, you can play with the subgraph on the playground at uh the graph network's website. So if we go to the playground here, you'll see we have a query formatted up that is giving us the top five endow entities um or just five first endow entities and also uh the first five portfolio positions. So we allow people when they're sitting on idle philanthropic capital to invest them into a range of portfolios so that they can grow taxfree.
Um, and here you'll see that we're just pulling this data straight from the chain in order to be able to show people, you know, who's got the most position in portfolios or who's got, you know, the largest donor advice fund at endowment or what is the most fundraised to organization on endowment. All of these are really easy queries to build here uh using GraphQL in the graph network and using the graph playground. So we really hope that um you'll jump into this playground, play around with it, but also feel free to curate. Um we the team are backing this subgraph. It's not going anywhere.
We'll be supporting it over the long term and have some really exciting partnerships that we think will boost its queries. Um so it would encourage everyone to come and curate on the endowment subgraph as well. That's really what we wanted to come here to show you. I've got two minutes left for questions. Um, but uh we're really really excited about these developer tools.
Our goal is to make it as easy as possible for people to integrate giving straight into the work that you're doing. We hear of so many people who have treasuries or projects or NFTTS drops that they're doing that they want to split with charity. And from everything from just finding the contract address of your favorite charity to all the way through to managing the endto-end endowment app experience in an environment that isn't the endowment app. We're really excited about the potential of these three new tools. Um I will be here all week.
The team will be at the Regen Landia booth. Um if you want to grab any of these QR codes, I'll leave them up on the screen. Um we're also kicking off very shortly a developer uh incentivization program. So if you are interested in integrating on endowment and could use some support from the team whether that's emotional and physical or you know software support or if it's financial support um we would love to have that conversation with you. So please do reach out um and this QR code will get you on an emailing list to hear more about those programs as we launch them.
Um and thank you thank you so much. I hope you all consider taking a small amount of whatever new wealth you've created and leveraging it for impact in your community. Um, it's so it's it's the best feeling in the world, especially when it's magic internet money that you're giving away. Um, I I can't stress it enough. If you haven't tried giving yet, especially if you haven't tried giving yet through endowment, it's um it's a really really lovely lovely experience and memory that you can build for yourself and a really great way to ground yourself into a real world use case for crypto.
Um so, thank you for your time. Thank you for your attention. Um and thank you for all the future impact that you'll make. We can't wait to see what you build. Any questions quickly from the crowd?
I know I have 12 seconds left, but they're not looking at me. So, yes. Yeah. So, if you donate through the app, you have the option to get a tax receipt. Soon, these developer tools will also support tax receipts.
That's sort of like a V v1. We call this V 0.5 right now. Um uh this is V1 will probably have uh tax receipts included into it. Um but it's a question of PII.
It's a much more security sensitive interaction. So we do it inside of our own app where we have a lot more confidence in the sort of transfer of private information. Um but yes, you can get tax receipts. You can also get tax receipts after the fact. So, you can make a huge donation and as long as you can come back to us and prove that you were the one that made that donation by signing a message with that wallet, um, we can come back and give you a tax receipt after the fact.
We also help people figure out whether they need to get the gift appraised. There are regulations in the United States about gift appraisals. Um, and so if I if you're in a position where you've given a large gift and you need a tax receipt, you probably also need an appraisal. And so we help walk donors through that process. Um, get them connected to different vendors who do appraisals.
We as the nonprofit are not allowed to appraise the thing that we take in. Otherwise, we would appraise it for a trillion dollars and, you know, game over. So, uh, no, not that we would ever do that. Um, but, uh, yeah, that's is that an answer to your question? Okay, cool.
Okay, I I I must give up the stage. If you'd like to ask more questions, I also have some merch for everybody. If you uh deploy organizations, uh we we're giving some big merch as well. So, um yeah, encourage you to find your favorite nonprofits and uh get them deployed. And now I'll hand off the mic.
It's all yours, bro. Thank you, everyone.
Automatic transcript — names and jargon may be misspelled.