Today marks the 17th day since the announcement of the Autonomous Agents Developer Contest. When introducing the contest, we were rather doubtful that developers would be able to not only take notice of the contest but also dig through the rather extensive documentation on Oscript, come up with ideas for entries and actually write their Autonomous Agent.
Autonomous Agent Entries For Round 1
Despite the steep demands, 5 developers managed to submit 6 entries and equally important, 2 new tutorials were created, both very suitable for developers looking for a quick introduction to get started writing Autonomous Agents.
Entry 1 — “Bank With Secrets” by Barborico
The idea is simple yet powerful. An Autonomous Agent allows a user to deposit funds for safe keeping. Whenever the user wants to withdraw funds again, the password is passed to the AA that compares it to a hashed phrase that was posted with the initial deposit. If the two hashes matches, funds are sent to the wallet specified by the user.
The AA can potentially service as a safe storage for Bytes for as long as the user has access to the wallet the funds were deposited from. Still, it would be a bit too unsafe to consider a replacement for backups.
Entry 2 — “Lottery” by Barbarico
Autonomous Agents have one very specific characteristic, that makes them extremely well suited for use cases where decentralized, fully transparent processing is required, but that very aspect also introduces difficulties particularly when wanting to provide a random result. And at the very core of any lottery you find exactly that. Randomness. If every participant in a lottery can predict the winning number, that lottery wouldn’t have many participants.
In an attempt to make it as close to impossible to predict the outcome as possible, Barborico introduces a series of different external factors that are difficult to predict. The first participant triggers the actual round and after a given amount of time, any participant can trigger the calculation of the winner. During this time window, new participants can enter.
Entry 3 — “Autonomous Lottery With Community Governance” by Pmiklos
Less than 24 hours after the first lottery entry was submitted, Pmiklos submitted yet another lottery. While similar in user experience, this entry takes an entirely different approach than the previous in that users receive “tickets” that they have to return to the AA in order to know if they won. This additional step introduces slightly more interaction between users and the AA.
The core mechanics for the lottery is slightly more sophisticated than Barborico’s entry, and seems slightly more informative to the users participating. Again, the problem of selecting a truly random winner proved to be the biggest nut to crack. Generally, relying on externally available data like price of BTC, hash of all participating addresses and similar introduces a significant problem to someone wanting to break the bank. Yet, it is still not entirely impossible.
Entry 4 — “OAAAAA — Obyte Autonomous Autonomous Agent Address Agent” by whoisterencelee
The cryptic, tongue breaking name aside, the entry introduces an interesting idea, to make Autonomous Agents mutable. Or to be more precise, to allow the author of an Autonomous Agent to introduce new versions of a given Autonomous Agent. To achieve this, an AA reference is created, keeping track of the addresses of other Autonomous Agents. Users wanting to interact with a specific AA can query the reference and get the most updated version returned. Users will of course always be able to use whatever version of an AA they want, but they may choose to use the latest version that might provide added features or corrected errors.
At the competition deadline, the system wasn’t entirely working yet, but the general idea was fleshed out and research on the possible ways to solve it was already in the making. As stated by terencelee: “this is basically a decentralized AA app store, keeping track of latest versions of any AA”.
Entry 5 — “Token Issuance and Trading Agent” by Genievot
The concept of this AA is quite unique in that it aims to allow users an easier way to issue new tokens. The AA handles the issuing of the token limiting the requirement for users to only pass a couple of parameters. Once the token is created, an exchange price can be set for it and the user can choose to withdraw his newly created tokens from the AA.
While the idea is great and, contrary to a chat bot, an AA can be trusted to always send the created tokens to the user who created it, there are still things that are a bit rough around the edges. When testing it, setting the exchange rate didn’t quite work and neither did the withdrawal.
Entry 6 — “A Simple DAO” by Fabien
The DAO, or Distributed Autonomous Organization, is a well known construction both in the corporate world as well as a popular theme in crypto. It could be a fund providing seed funding for start-ups where investors inject funds to a shared pool and applicants then applies for funding. The more funds a shareholder injected, the more voting power he gets. For an application to pass, at least 50% of the votes of the shareholders are required. In addition to the regular voting mechanism and release of funds, this AA also contains the possibility for applicants to return funds to the pool, thereby generating a yield on investors’ investments.
While the model is well known, the implementation through an Autonomous Agent makes the process entirely transparent, highly effective and far less bureaucratic and far less prone to corruption or abuse of power. Everyone can see what is being voted, applicants can see if they are close to making the cut and shareholders will be able to see where funds are being used. Introducing requirement for real name attestation for applicants could potentially further improve the model and reduce the potential for fraud.
Guide And Tutorial Entries For Round 1
Introducing an entirely new scripting language makes it equally difficult for everyone wanting to get started building Autonomous Agents. Therefore, the Guide and Tutorial category of the bi-weekly contest is an important step in helping others get an easier start.
For this first round, there were 2 entries submitted which, considering the short notice and both participants also participating with Autonomous Agent entries, is an impressive achievement showing great dedication.
Entry 1 — “Getting Started with Obyte Autonomous Agents” by pmiklos
The guide takes readers through the basics of writing Autonomous Agents. Where the editor can be found, how a fundamental “hello world” script could be written and does a great job at explaining the different commands and what they do. It doesn’t delve too deep into the realm of understanding how the entire Obyte platform works, and is therefore a really easy and quick introduction to Autonomous Agents.
The structure of the entry is well thought out and provides an easy-to-follow guide where every new aspect introduced is explained in detail.
Entry 2 — “How To Create A Simple Autonomous Agent” by Genievot
The entry takes the reader through the fundamental aspects of how Autonomous Agents work. It works its way through the various commands used and provides some great examples that are relatively easy to understand even without prior knowledge of Obyte or the Oscript language.
At times, terms and references are made, that aren’t explained which require the reader to search elsewhere for the meaning of a specific term, for example what an Oracle is and what it does. But for users with a bare minimum of prior knowledge of the Obyte platform, this guide provides some great examples of how to create slightly more advanced Autonomous Agents than the other entry.
Selecting winners is always a difficult task, and while there were slight differences in opinions of the jury, a clear picture of this first week’s winners stands. Overall, the creativity proved high and all entries address use cases that are relevant.
The third place and the prize of 35 GB and 73.85 GBB goes to:
Pmiklos — “Lottery With Community Governance”
The entry tackled some of the more difficult problems but kept a nice end user focus, making it clear to participants in the lottery what goes on and how the AA functions.
The second place and the prize of 70 GB and 147.7 GBB goes to:
Barborico — “Bank With Secrets
The entry proves that really interesting use cases are possible in relatively few lines of code. The capability for a user to pass a hashed value that the AA will later use to compare a clear text string definitely holds some interesting potential.
A unanimous jury all pointed to this entry as the most interesting of this first round of the Autonomous Agents Developer Contest. The first place and the prize of 140 GB and 422 GBB goes to:
Fabien — “A Simple DAO”
The DAO represents one of the constructions or organizations made possible by distributed ledgers. In the real world industry, we have yet to see the possibility exploited to its fullest potential, but everyone agrees, that DAO enables far bigger, more efficient, distributed organisational structures both in terms of business processes as well as social processes.
By building a DAO in only 2 weeks also proves how Oscript can be used to create rather advanced applications in very little time and relatively few lines of code.
Best guide / Tutorial
The two entries competing for the extra prize worth 55 GB and 116.05 GBB were neck-to-neck and while both did an absolutely excellent job at introducing new developers to the concept of Autonomous Agents and the Oscript language, one stood out slightly over the other.
The winner of the best guide / tutorial in the first round of the contest is:
Pmiklos “Getting Started With Obyte Autonomous Agents”
On behalf of the Obyte Core Team and the Jury, we congratulate the winners and look forward to even more entries for the second round. The deadline for entries are August 15th and the winners of round 2 will be announced August 18th.