Web3API: The Universal Web3 Integration Standard - Jordan Ellis
Ethereum Denver·Sat, Oct 9, 2021, 12:00 AM
This talk is from ETHDenver & ColoradoJam , the world’s largest Web3 BUIDLathon and Community Gathering. ETHDenver’s content is crypto and blockchain focused. Learn more: ethdenver.com Subscribe to our channel to learn more + connect on Twitter: https://twitter.com/EthereumDenver. Speaker: Jordan Ellis, web3 API This talk was recorded Wednesday, February 10th, 2021. ETHDenver 2021’s content themes included DeFi & Money Legos, NFTs & the Creator Economy, ColoradoJam & the Next Frontier of Statehood, Protocols & Interoperability, Open Source & Public Goods, The Ownership Economy & Digital Orgs, Usability Design & Adoption and Legal, Privacy & Identity. Industry experts also weighed in on topics like decentralization, privacy, identity, non-fungible tokens, scaling, governance, diversity, and arts and culture in blockchain technology. The 2021 event was February 5-12 and hosted virtually in 2021 with 5000+ blockchain enthusiasts, developers and community members from 80 countries and 50 U.S. states. 🔴 SUBSCRIBE ETHDenver’s YouTube https://www.youtube.com/channel/UCgz9NU06t_FkT0Py1Vadczw 💡 LEARN ETHDenver’s Official Website https://www.ethdenver.com/ 👋 CONNECT ETHDenver Twitter https://twitter.com/EthereumDenver 📖 READ ETHDenver News on Medium https://medium.com/ethdenver 🛍️ SHOP ETHDenver Official Merchandise bufficorn.com 💬 CHAT Telegram https://t.me/Ethdenver Discord https://discord.gg/AxFmNdCVnU 📱 FOLLOW LinkedIn https://www.linkedin.com/company/ethdenver Instagram https://www.instagram.com/ethdenver/ Facebook https://www.facebook.com/ETHDenver/
Transcript
next up in our line today with our public goods and impact summit we're really excited to bring you jordan from web 3 api jordan's going to be talking to us today about the universal web 3 integration standard jordan how are you today i'm well how are you awesome thanks really happy to be here happy to have you back yeah thanks for having me welcome to the stage take it away cool so let me go ahead and i'll share my screen all right so as you had just said i'm here today to talk about this project called web3 api um it aims to be the universal integration standard for web3 so first off who is this person talking to you my name is jordan i go by dork jelly and all the different platforms i have a history in working in a lot of closed source software and corporate software and i left about two years ago and have been extremely happy ever since i've been working with the dior collective which is a dev shop that runs itself as a dao and then out of that spun the web through api project which i'll talk a bit more about why that actually makes sense so for drug we've been working with lots of different web 3 startups and communities over the past two years and through doing so we noticed a very common problem that persisted throughout all of them and kind of permeated the whole web 3 space and so this problem is the integration problem that's what we've been calling it and so i'll walk you through what this integration problem is and then i'll present to you the solution that web3 api is to to this problem and so first off in web 2 we don't have this problem what we do instead is we actually just send requests to web2 services that all have these public apis applications remain very lightweight and they're able to integrate dozens um or you know theoretically infinite number of apis uh seamlessly through these very simple um rest interfaces let's say to to these central servers but the problem here is that um all of the business logic all of the logic that is doing things on your behalf is executing in these central servers and so you know like uh for instance like stripe is spending your money for you or tweet uh uh twitter is tweeting on your behalf and so in web3 we we aim to solve that and so how exactly do we solve that well we instead do everything inside of the application um all of that business logic that used to live in the essential servers it is now wrapped up into these sdks most commonly javascript wrappers and so these live inside of your app and it's doing things like uploading files to ipfs for you or it's signing messages to send to the ethereum network with your private key and so this is um great because it makes things more uh self-sovereign and and you have to trust uh less middlemen but it comes with its own set of problems and so i'll walk through those one by one to to explain why this is not currently future proof so first off um javascript wrappers are not standardized they're all architected differently and if you wanted to build an app that composed multiple of them it becomes very difficult and so for example let's say you wanted to come combine let's say compound and balancer and unit swap and aragon into a single application you would be presented with lots of different problems of how to be able to use all of these javascript wrappers simultaneously secondly it is sub-scalable so there is an upper bound to composability when it comes to building apps in web 3. and this is because as you integrate new projects into your app you have to add their sdk which then bloats the size of your app and so this is why for example lots of d5 aggregation tools are now using central servers to be able to do the aggregation on behalf of the app because the app just grows in size and it becomes way too big javascript is slow and insecure this is something that's been discussed heavily in uh you know the the computer science world so i won't drill into it too much but long story short javascript is very slow it's very insecure and it leads to lots of um lots of exploits that can compromise user funds which is very very um very important to think about in the world of web3 and then the the last part here is that it's not multi-platform so in order to support many different use cases you need to actually re-author these sdks in many different languages and so a great example of this is if you look at the ipfs ecosystem they've created i think over half a dozen sdks for the ipfs standard and as they you know as they develop new things they have to go and update all of those different sdks and so that um it's it's not very uh time and uh cost effective and so integrating web3 should be simple right like it shouldn't be this difficult um if we want to be able to reach escape velocity with web3 integrating in into many different applications and so that's what this solution aims to do it is a a universal integration standard where um all you have to do is just send these very simple requests to the web3 api client and everything is handled for you um and so the user interface as an app developer is the same as web 2 and we don't sacrifice decentralization as we do this and so how do we do this like there's there's some magic under the hood that that's allowing this to be possible and it really just comes down to the fact that webassembly is a new and emerging technology that's been worked on for the past like five ten years and it's um really changing how we build things and so i'll talk a bit more about how this affects web3 api so instead of embedding these javascript wrappers what we do instead is we embed the web3 api client in your language of choice so if you're building a javascript application you add the web3 api javascript client and once the client is added that's all you need to do you're able to send queries to any decentralized protocol using its um using its endpoint so for example api.uniswap.eth as an ens domain and then at runtime what the client will do is it's going to download these webassembly modules that contain the business logic and execute them at runtime and so what this allows you to do is um not not bloat your application with all these different sdks since they're being downloaded and it makes the user interface extremely simple because it's all through simple queries and so we think that this is definitely 10 times better than javascript wrappers it's multi-platform so you only have to write it once and you can use it everywhere it's hyper composable there's theoretically like an infinite number of web web 3 apis that you can add to your application with uploading it you're able to now build dynamic applications which i'll talk about that in a second through these different standard interfaces um and then lastly it's faster and more secure so here's a quick quote just for like some outside validation from the non-web3 space this is from the founder of docker basically saying that if webassembly had existed back in 2008 when they first created docker they wouldn't have needed docker and so webassembly is a very great technology that solves a lot of problems in computing so how do we actually go about integrating this um you know like we we said it should be simple but but is it actually simple and so here's showing you what it means to add web through api and and use web3 api in your applications the first step is just simply installing the client um you just you know if you're building a node application npm install web3 api client js and then the second step is to send a request to any available api so then and it's really that simple you specify a uri so here we have like api.aragon.
ethe on the left where we're getting a list of proposals and then on the right we have uniswap.ethe where we're swapping something and so in order to build these web through apis this is kind of what the developer experience looks like the first step is defining your schema we use graphql as an interface definition language because it's very commonly used and it has great application support here we're defining the query module with a single method that has an argument with a custom type and then on the right we have our webassembly module and so this is currently being written in assembly script so it looks a little bit like typescript and what we're doing is we're importing our types from our w3 folder that's like our magic code generation folder that does a lot of stuff for you and then now inside of your method where you write your business logic you can put anything you want and so this not only makes it easy to write these wasa modules but it also makes it easy to compose and interact with outside dependencies and so let's look at that so in order to kind of utilize this like you know as said composability on steroids all you have to do is um import a api into your schema and then um inside of your webassembly code you just import that api's type and you can now send a query to it and so you know an example here is let's say we're building the the uniswap uh web3 api we would be importing the ethereum uh package and then now on the right here we send a query to the ethereum package um and yeah it's uh it's only importing the schema so it's it's not importing all of its business logic so it still is fetching everything at runtime and so the the other part that i'd like to touch on here is the fact that this allows you to create extendable standards and so what this means is that just like for smart contracts you can define like the erc20 standard you can also do that for these web 3 apis where for example you could define a standard interface for voting and so now what you can do is is you can have an app that shows a voting interface and it could be using um a voting web three api that implements a simple quorum or maybe a voting web theory api that implements some sort of liquid democracy or something like that and so it now allows your applications to become more dynamic without having them to manually update themselves and rebuild everything you can also publish these web 3 apis anywhere and so currently um off the bat we're supporting ens and ipfs but we've defined a standard interface for this api resolution standard so that that way you can implement a web through api that does handshake protocol resolution or are weave or three box or lf um and so you know like we're using web3 api to build web3 api which which is really powerful and it allows outside people to permissionlessly extend its capabilities which is really cool and at the bottom here you can see some examples that are like a little more boring i guess you could say where you could send it to a central server you could look it up in memory if you have embedded apis or you could load it from a file system we here like i the the point i want to make here is the fact that we support progressively migrating to this new standard so we don't expect the world of javascript web 3 to be rewritten in a day and so what we do instead is we support this concept of plugins where you can take your existing javascript sdks and you can then wrap them as a plug-in and add that to the web3 api client in whatever language you're building in and so you know in an example is uh an example of this is that we actually haven't implemented the ethereum web3 api in webassembly yet we just use a um we basically use a wrapper around ether's js and so it it allows us to move very quickly while building the tool chain and it will allow users to move very quickly as they slowly migrate their things and make them cross-platform so the the main north star that we're building up to here is this web3hub experience where you'll be able to type in keywords like multisig or automated market maker or loans and based off of that you'll get results of different apis that exist in web3 and right inside of the web3hub you'll be able to interact and use those same protocols you know for example you could look up uniswap and you could actually execute a swap in the web3hub or you could look up aragon and you could look at your daoist proposals or things like that so in order to kind of draw this back to the web 2 comparables web3 api is comparable to docker as web 3 hub is comparable to docker hub here are some commonly compared to projects that are commonly confused with us we're solving a very different problem that no one else is touching and so that's kind of why we we compare these with the oracle solutions with the blockchain caching solutions and then we're a solution to this integration problem that i just described so our initial prototype was built at hack fs which is an amazing validating experience we won lots of uh lots of awards from really great web 3 groups which was very uh validating for us and then immediately after that we got contacted to join the git coin kernel program and so that was kind of like our continued fostering support which helped us further expand our network and be able to meet other other projects in the space like it it was a very very exciting project and community that we're still involved with today and then from that we launched a a git coin campaign which far and exceeded our expectations where we um gained a ton of community validation just kind of showing that there's lots of people out there that are interested in the solution which was very cool um here's a list of our current launch partners these are projects that we're partnered with that are very interested in using it as a first user and we're working with them as we build out the the solution um on our website you can see some um different quotes from the launch partners themselves talking about why this why this tool chain is so important to them and lastly we're running this all through a community-governed owl because we really do believe in community-governed uh community-governed community-governed infrastructure sorry and so um you know like uh coming from dior where we're we're a dev shop run as a dow like a cooperative dow we very much wanted to use those same dow first principles here and it's it's really paid off for us in the long run and uh it's it's only going to grow and expand and further represent the interested parties um as we move and move into the future and so some stats on on where we're currently at we have around 60 members representing over uh 20 different organizations uh it's been active for around four and a half months there's been over 100 proposals submitted over 200 000 funds paid out to builders and there's only more to come into the future and so if you're interested in joining the dow being a part of the project in any way feel free to just check out this dow one pager at dow.web3api.dev um we're extremely interested it was collaborating with anyone who's interested and come and evolve to the next standard with us we we're really excited about this being a next phase for web3 developers to try and help us reach that that um that exit velocity so that any web 2 developer can can come and integrate web 3 at the drop of a hat so if you'd like to learn more information please just feel free to visit our website and feel free to contact me directly so that's all i got that was awesome jordan thank you cheers to web three api bitcoin community showing up you've got a ton of support for the dow that was awesome yeah thanks so much yeah super exciting to hear about is there anything else you want to tell the community before we take off today um not too much uh i would just say like uh if you're thinking about jumping into web 3 if you're listening to this on your couch you know like not wanting to go back to your day job i would say please feel free to do so there's there's tons of awesome opportunities here it'll welcome you with open arms and just like the last presenter had said um make those calculated risks and uh liv live that life that that's really representing your your your morals and your values so and i think that web 3 is a really great place to do that i i haven't found a better place that's awesome i think unfortunately all know somebody who's hating their day job right now and would be liking to building the communities of the future so let's hear this far and wide awesome thank you so much thanks jordan have a great day you too bye
Automatic transcript — names and jargon may be misspelled.