Hello Scrypto community!
Scrypto v0.4 has just been released, bringing long awaited features such as the ability to link a front-end to your components and having a more complete authentication model. We want to celebrate this milestone by launching the second official Scrypto developer challenge.
Last time, the subject was decentralized exchanges and we received amazing submissions from the community. The competition we are launching today will be about building an oracle Scrypto blueprint. We heard great feedback from the community about the previous competition and so we are now offering a prize pool of $5000 XRD.
The Challenge
The components you instantiate on Radix can only access data that is already present on the network. It cannot do REST API calls or get the price of an asset for example. Oracles are a solution to this problem, by offering a bridge between off-chain data and Scrypto components, or offering a way for on-chain components to communicate back out to off-chain systems in some way.
Starting today, you will have until May 27th to come up with a Scrypto package that represents an Oracle. You could, for example, create an oracle giving access to the outcome of the match of your favorite undefeated WBO cruiserweight world boxing champion, or come up with a price feed oracle that allows users and other components to have access to crypto prices directly on-chain. You could even build an “output oracle or compute-enabled oracle” that communicates back out to the real world – for example, acting as a payment confirmation system for an e-commerce or banking website. The possibilities are limitless.
Since oracles need an off-chain system to securely update its data, you can assume that this system is already in place and can call methods on your component. You are free to build this off-chain process, but it will not be taken into account while judging. You may want to consider building something (or even making use of an existing blueprint that you or somebody else has built!) that makes use of your Oracle to really show off why it’s valuable, but it’s up to you.
Also, now that you are able to create a basic web UI to interact with components using Scrypto v0.4 and the Public Test Environment, we’ll be providing extra points in the judging to entries that provide a working web front-end to interact with the blueprint and components that you come up with – but we’re not judging anyone on how pretty or usable the web front-end is - strictly functionality right now.
Prizes
Just like the previous competition, every participant will come out with a collectible NFT prize. This NFT will represent your participation in this event and will allow you to show how early you were in the Scrypto ecosystem! As a reminder, NFTs are not a thing on the Olympia network. We are going to keep track of the ownership of the NFTs internally until Babylon is out and we will be able to send it to you.
Other than this participation NFT, we are increasing the prize pool from our previous competition to $5000 worth of XRD shared between the three best submissions ($2750 XRD to the first, $1500 XRD to second and $750 XRD to third place).
But wait, there’s more… The three winners, along with 10 randomly selected participants will each receive a t-shirt with the Radix logo so that you can code your future blueprints with style 😎
How we will judge the examples
When the challenge is closed for submissions, the Scrypto team will take a look at the submissions and decide on the three winners based on these criteria:
- Quality and asset-orientedness of your code. Refer to our design patterns page.
- Breadth of functionality
- Creativity of the concept
- Quality of the documentation and comments in the code for others who wish to use the blueprint
- Usage of the frontend javascript SDK and the transaction manifest to allow us to test your components using a web interface. The look of the frontend will not influence the judging.
How to participate
To participate in this Scrypto competition, please read the following steps.
- Install the Scrypto toolchain and make sure you are on v0.4 with `scrypto --version`
- Fork the challenge's repository
- Clone the forked repository on your local environment
- Start a new scrypto project with `scrypto new-package [name]` inside the oracle directory
- Before the deadline on May 27th at 11:55 pm UTC, commit and push your project folder and create a pull request here
- Send an email to clement@rdx.works containing a link to your pull request to complete your submission
Resources
Having trouble finding what you should build or want to learn more about oracles first? Here are some resources and ideas just for you.
- We recommend reading this article, by ChainLink to understand the Oracle problem and learn about the different types of oracles
- If you prefer learning by watching videos, we recommend watching this video explaining what oracles are, again by ChainLink
- This article shows an example of an oracle on Ethereum that fetches off-chain football game results from a web API
- ChainLink gives an example of another use-case for building an oracle here. It serves as a web API call middleman. In this case, they are using it to get access to Google’s weather data.
- Component state can only be updated when someone decides to call a method on them. You cannot tell the platform to automatically call a method every epoch for example. Oracles can help solve this problem. We recommend reading about ChainLink’s Keepers if you are interested in this.
- A big problem with decentralized apps is generating random numbers. Generating the random number off-ledger and making it available on-chain through an oracle might be a good solution for this. You can read more about this here.
Details of the challenge
- To enter, you must be a registered member of the Radix Developer Program. Unfortunately new signups are not possible right now, so if you want to enter and aren’t already a member, email clement@rdx.works for instructions.
- Your entry must be built with Scrypto v0.4.
- You can submit multiple examples but only one will be considered for the prizes.
- The competition starts on May 2nd 2022 at 12:00 am UTC. All entries must be submitted no later than May 27th 2022 at 11:55 pm UTC. The winners will be announced by the 6th of June 2022.
- $5000 value of XRD will be shared between 3 winners. 1st gets $2750 XRD. 2nd $1500 XRD and the 3rd $750 XRD. The value of XRD will be based on the spot price when we send the tokens.
- Decisions on the winners are at the sole discretion of the RDX Works team and the decisions are final.
- We will keep track of the NFTs and their owners internally until after Babylon release when they will be minted and sent to Radix addresses provided by each participant.
- All entries are subject to the Radix competition terms and conditions. Winners will be required to disclose their name, DOB, and country of residence to receive any XRD prizes.