Blog Article

What Happened at Hack-a-Soroban

Author

Veronica Irwin

Publishing date

Soroban

Hackathon

Smart contracts

What’s in a hackathon?

There’s not too many engineers that have never heard of a hackathon. But if you’re unfamiliar, let us introduce you.

Hackathons are a useful tool in debugging and improving software. Typically, teams of engineers work very hard for a short period of time — say, a couple days, or even just 24 hours — on solving a problem with technology. Teams who produce the most interesting or useful project often win prizes for their work, like cash, crypto, or swag.

The Stellar community has participated in hackathons for years, ranging from a 48-hour NFT hackathon at SXSW last year to a collab with HackNYU in 2020. Last month, community developers tinkered with Stellar’s new batteries-included smart contract platform, Soroban, ahead of the product’s Mainnet launch later this year.

But developers at the Stellar Development Foundation are part of the community, too, with great ideas to share with the rest of the community. The Soroban ecosystem is building in the open, because our best work is done together, not in individual silos. Besides, part of the magic of blockchain is due to the brilliant ideas produced by collaborators all around the world, united by a shared vision of a more reliable and open financial system.

In that vein, we’re excited to share with the community some of the projects created by the SDF and Cheesecake teams. These engineers worked on these projects in the spirit of collaboration and experimentation with Soroban smart contracts. We hope that community developers will draw further inspiration from these projects, reach out to collaborate, and build tools and products that improve upon these concepts.

The projects

At the hackathon, developers employed by SDF and at Cheesecake Labs teamed up to build software tools that demonstrate the flexibility of smart contracts and will help support a robust ecosystem of products on Soroban. 56 participants worked together on 14 different projects across 7 time zones, for one week, from January 17th to the morning of January 24th. We’re incredibly proud of what they created:

Sorobon Name Service

Like the Ethereum Naming Service (ENS), the Soroban Name Service helps users assign names to long and cumbersome internet addresses. Unlike ENS, however, any root domain can be assigned - not just “.eth” or “.xlm.” It uses a deployer to call an init function, which sets which source account is deployed to the admin of the root domain. The admin can then distribute authorization to other addresses to control the level 1 domain (.xlm, .eth, etc.). A register command then registers a hashed version of the address with the owner.

The main registry smart contract, deployer contract, and UI design were finalized during the hackathon, while a resolver smart contract, UI integration with the registry smart contract, and wallet integration are still in the works (and anyone who would like to build on it for Sorobonathan: Equinox is very welcome to do so!).

This project was created by Thibault de Lacheze-Murel, Alex Cordeiro, Nick Gilbert, Garand Tyson, Gleb Zernov, and Jordyn O Cleirigh.

SorobountyDAO

The SorobountyDAO is a smart contract meant to orchestrate the governance body of a bounty program for improving and building on Soroban. It allows participants to register with a Freighter wallet, make a proposal, vote on new proposals and view which proposals received the most votes. Users with a predetermined NFT (or multiple NFTs) are permitted to vote, so that participation can be restricted to certain accounts.

This project was created by Paul Bellamy, Cassio Marcos Goulart, Anke Liu, Mercedes Madanire, Simon Chow, Ryan Ehrhardt, and Marcelo Salloum.

Recurring Revenue

This contract allows assets to be deployed to a receiving account at a set start time and on a set customized cadence. To demonstrate the project, the team used the metaphor of setting up recurring payments for an online streaming service. Though the sender must initialize the contract, they do not need to manage each individual payment. Instead, the contract deploys them until they halt the payments. The contract also allows the receiver to invoke a withdraw function at their own time, and for the sender to make changes to the amount being sent or the cadence of payments with immediacy.

This project was created by Sydney Wiseman, Piyal Basu, John Rubisoff, Louisa Bai, and Tyler van der Hoeven.

Solidity for Soroban

Soroban was designed for anyone to use — but not everyone is familiar with its programming language, Rust. This team designed a smart contract allowing people to write Soroban smart contracts in Solidity, the language that was designed for the Ethereum Virtual Machine (and still the language most commonly used by DeFi developers). This was done by creating a Soroban target in Solang, a compiler which currently supports Solana and Substrate (Polkadot) as targets. Though the project generated only limited support for Soroban, this is a key initiative in making Soroban accessible to everyone.

The team was composed of Leigh McCulloch, Graydon Hoare, and Jake Urban.

Zero-Knowledge Blackjack

The transparency of blockchain has plenty of benefits. But sometimes users need to keep their information private, and that’s where Zero-knowledge (ZK) proofs come into play. ZK proofs are a way to cryptographically demonstrate whether an entity, like a wallet, has a property without revealing the property itself. Typically, ZK proofs show on the blockchain that private information is valid to proceed with an operation.

The winning team of SDF’s internal hackathon created a ZK proof using Soroban. Though Stellar is designed principally for payments (not gaming) the project used the metaphor of Blackjack to demonstrate how ZK proofs can work on Soroban because, in Blackjack, a player must demonstrate that their hand has a sum under 21 without directly showing the other players their cards.

This project was created by Hidenori Shinohara and Jay Geng.

Parent Allowance Account

A group of Cheesecake Labs developers worked on creating allowance accounts with Soroban, allowing parents to deposit a lump sum into a smart contract that is disbursed in regular recurring payments to their children. The parent (admin) decides to which children (users) the money is distributed and at what cadence. The admin also decides how much money each account receives, which does not have to be equal.

The team members were Fabricius Zatti, Hectore Zoboli, Daniel Burghardt, Érico Rosiski Weber and Danilo Vieira Teodoro.

NFTs

NFTs are a staple of other smart contract platforms, like those built on Ethereum and Solana. So it only makes sense that this team would try to make smart contracts for a similar asset on Soroban. The final project was able to call an NFT on a smart contract and add an entry to the ledger, successfully minting a simple NFT of the Stellar logo. These capabilities demonstrate the feasibility of minting NFTs and even building an NFT marketplace on Soroban.

This team was made up of Reece Markowsky, Sunny VanLeeuwen and Jesse Chen.

IFTTT Gateway

“IFTTT" is an online platform that connects different systems, such as Twitter, Dropbox, and Google Assistant, through automated actions. These actions allow the systems to work together and perform tasks that they wouldn't be able to do alone. For instance, IFTTT can be used to turn on smart home lights when you arrive home as indicated by Google Calendar. The team behind the project has created similar connections on a blockchain network. An example contract they created involved sending data, in the form of a poem, to an IFTTT applet, which then added it to a Google Doc.

The project was developed by Shawn Reuland and Tsachi Herman.

E-commerce Payments on Stellar

The concept for this project was simple and useful: create a platform for merchants to accept payments using Soroban. This would allow merchants to accept Circle’s USD Coin (USDC), a fully-reserved dollar digital currency. The payment option would be included alongside options like credit cards or ‘buy now pay later’ products, and allows customers to checkout by inputting their public key. Merchants, meanwhile, save on fees compared to typical interchange fees and other payment processing fees.

Molly Karcher, Howard Chen, Charles Shin, Jessie Serrino, Bruno Müller, Iveta Lacane, and Bri Wylde made up the team.

Deposit Distribution

This project was based off of a dApp created for the conference Eth London, solving for the problem of event attendees who RSVP but don’t actually attend. The contract collects deposits from attendees when they register, then splits the deposits amongst people who show up.

In order to make the project scalable, attendees were stored as individual keys in Soroban’s key value store, rather than storing a map of attendees as one item in the key value store. This also helps ensure that attendees are not permitted to deposit funds twice, and that admins cannot deposit funds. Money is then withdrawn in batches, to save on the cost of disbursement and also increase scalability.

This project was created by Siddharth Suresh, Marta Lokhava, and Jeesun Kim.

Soroban starbridge

The Soroban starbridge is a bridge between Ethereum and Stellar using Soroban and Ethereum smart contracts at both ends. It allows assets to be transferred with time lock cancellation, so that the transaction can only be executed within a designated time. Validators do not need to be connected to a database, and Stellar is able to perform withdrawals at a larger scale.

This project was created by Alfonso Acosta, Stephen Fung, and Tamir Sen.

Soroban Helmcharts

This project aimed to create a helmchart that could be used to deploy a k8s hosted environment for testing Soroban code changes. This included an isolated private network with validator and history archive setup, network setup/takeover, a Horizon cluster with Friendbot funding, as well as a Soroban RPC node and core watcher node for transaction submission. Though the project was not completed, all of the component helm charts are written and a working parent stellar-network values chart is near-complete.

The team was Tom Llewellyn-Smith, Jacek Nykis, Satyam Zode and Michael Martinez.

The hacking is ongoing!

Some of these teams have pledged to continue working on their projects, building out Soroban functionality in preparation for the platform to go live later this year. Others are moving on to other projects expanding the Soroban ecosystem. But all of them have created work they’d love the community to build on.

For each project, either a github repository or demo is hyperlinked. Feel free to use that documentation as inspiration, or even a launchpad for building similar, but even better projects. It’s the perfect time to experiment with Soroban, after all: Sorobanathon: Equinox is live, and running through April 1st. Build more code samples or create a tutorial for a chance to earn anywhere from 25 XLM to 10,000 XLM.