Last month, The Graph team attended ETHDenver, one of the largest Ethereum hackathons in the world. We were there to connect with Ethereum developers, get inspired by the amazing dApps being built, and also support hackers building on The Graph, competing for one of the two $2,500 bounties we submitted as sponsors.
We’ve sponsored ETH Global events before, and gotten tremendous value out of them, but this one was particularly special. It would be the first opportunity for hackers to test drive our recently launched Hosted Service and Graph Explorer, which we launched at Graph Day at the end of January (read the recap). To give some context, this meant that developers for the first time could build rich decentralized applications (dApps), with complex data requirements, on Ethereum and IPFS, without having to run any indexing and query infrastructure locally.
We were excited, and admittedly a bit nervous, to see what developers could do with this new superpower. And we couldn’t have been more blown away by what hackers were able to accomplish in less than 48 hours.
We had a record 15 bounty submissions from teams building on The Graph, a greater than 2x increase over ETHSanFrancisco this past October, and those projects were able to do far more in less time. By not having to focus on the idiosyncrasies of getting data off of Ethereum and IPFS, developers could spend more time focusing on what made their apps unique — the project idea, the smart contract logic, and a polished user experience. The overall feedback from hackers who were already familiar with Graph Node was that the developer experience was vastly improved from previous hackathons. Julian on our Discord had this to say:
“…the DX feels very refined and the onboarding is nicely streamlined. Within an hour or so I feel empowered to make my own subgraphs.”
We thoroughly enjoyed spending time with the community in Denver where we saw familiar faces and made many new friends. Most of our global team was in Denver to support hackers in person and on our Discord into the wee hours of the night.
Although it was cold outside, the Sports Castle was on fire! 🔥
We want to extend a big thank you to the organizers, sponsors, volunteers, judges, and of course, hackers! We learned a lot and had fun along the way. We’ve identified some key areas of improvement, including more detailed documentation and an updated Graph CLI tool for scaffolding a subgraph directly from a deployed contract address.
Our Project Lead, Yaniv Tal participated in a panel on Building the Infrastructure for Adoption with Igor Barinov (POA Network), Neil Bly (Mainframe), George Ornbo (Clearmatics) and Ramon Recuero (Zeppelin).
And our Research Lead Brandon Ramirez led a workshop on Building Your First Subgraph.
🏆 Bounty Winners
PoolTogether (Winner of Best Usage of The Graph)
David Anderson, Scott Herren, and Leighton Cusack met on the Thursday before the hackathon at a hacker “speed dating” event the organizers set up. They had the idea to encourage savings among the lower income bracket. The problem they were tackling was that over $80 billion dollars is spent on lottery tickets in the United States each year, but at the same time, 40% of Americans do not have $400 of cash saved. PoolTogether provides a smart contract allowing people to pool their saved money with the chance for one saver to win the interest from all the pooled money. Then, the pooled money is returned to all the players. This maintains the incentives of a lottery without the losses. Our judges thought this was an extremely clever idea, and we’re happy to hear that the team will continue working on this project to bring it into production.
The team used The Graph to pull market rates from the Compound subgraph to calculate interest on the pooled funds. Since a community sugraph already existed for Compound, they were able to get starting building immediately as 3rd party developers without having to write their own indexing logic. Congratulations to David, Scott, and Leighton!
Here’s a link to their source code.
DutchX Subgraph (Winner of Best New Subgraph on the Graph Explorer)
Grant Wuerker had been interested in building on The Graph for some time and in getting data from open exchange protocols.The subgraph he built indexes DutchX auction data like token, price, and volume. We are excited to see the community adding valuable data sources like this to The Graph. We’d eventually like to see most blockchain data available for querying via The Graph, and you can see the rapid expansion of community-built subgraphs via Graph Explorer. Congratulations Grant!
Here’s a link to the DutchX subgraph where you can run sample queries in the playground.
This repository provides a library that queries 0x events from a 0x-subgraph deployed on The Graph.
Unlike the 0x-event-extractor or extracting event logs via the `getLogsAsync` method of 0x.js, this client does not require a server and allows event filtering beyond the indexed event arguments (i.e. `makerAddress`, `feeRecipientAddress`, `orderHash` for the Fill event).
Here’s a link to their subgraph in Graph Explorer.
ETH DevTools is a Chrome Devtools plugin with multiple modules to let users monitor and help smart contract developers debug directly from their dApps. The team put a GraphQL playground directly into Chrome Devtools, adding it where dApp developers have the easiest access in the most convenient, context-specific place. They also added an assortment of pre-populated examples with all subgraphs currently featured by The Graph, allowing users to quickly switch between subgraphs and example queries from the comfort of their own dApp and development environment.
Here’s a link to their source code.
ETH Pages is a decentralized address book where a user can verifiably locate an Ethereum public key from a user’s Telegram handle or email address. Information on the platform cannot be tampered with and will never go down because all social media handles and Ethereum addresses are mapped on-chain. Off-chain verification nodes send emails that allow the user to verify authenticity and proof of ownership of social network IDs. This can be used as a reliable phonebook or censorship-resistant way for anyone to locate an Ethereum address.
The team used The Graph to supply their front-end dApp with user data.
EthASketch allows users to sketch collaboratively on the Ethereum blockchain while also instructing an IRL handmade 2D plotter to see everyone’s doodles. The 2D plotter was built using two stepper motors, a fan for pen control, custom 3D printed spools, custom Arduino firmware that connected the controllers over WebSocket to a browser through a stable server, and finally a web admin interface to bridge blockchain submissions to instructions for the plotter over MQTT (along with centering, calibration, etc).
Once a sketch is done and set up, the organizers can “clear” the canvas by setting a new point to fetch from for the smart contract. By using a combination of Fortmatic and The Graph, users can participate with or without a Web3 browser on the platform.
Fun fact: The creator of this project, Iain Nash, was a winner of a Graph bounty at ETHBerlin 2018. It was great to see him again building on The Graph! He also had some kind words after experiencing the new DX.
EthoCaching is an Ethereum smart contract that allows users to submit geocache locations to the blockchain. These are tracked using The Graph and are queried from a standard website. The website is used to both view a map of geocaches on the system as well as to submit new ones.
EthVelcro allows Ethereum to trigger webhooks. Users register event listeners or Graph Protocol subscriptions in the Velcro smart contract along with webhooks. When a matching event is emitted, the webhook is triggered. Velcro will eventually allow you to connect Ethereum to IFTTT or other services to easily link it to the real world.
Here’s a link to their source code.
Proof of Opossum
This team created a dApp that utilized Status-JS, and a byproduct was the random generation of Status nicknames, two adjectives, and an animal. Because they found some of the names amusing, they decided to create a leaderboard for the nicknames using ERC20s for voting. It was built with OpenZeppelin ZepKit and created using The Graph. They built a subgraph to index the nicknames and serve them up on their dApp.
Here’s their source code.
That’s a wrap! We’ll be sponsoring more hackathons in 2019, and we look forward to working with you in person to build your grand ideas.