You are viewing an archive of the Piccadilly Circus Games Competition. Join our Discord for the latest information.

Develop Tooling

Create a tool for deployment automation, development, data visualization, trading scenarios, or making use of generative AI. Submit your amazing tool creation for a chance to win an award. 1st, 2nd and 3rd prizes are given in each category. You can make as many submissions as you can master, in any or all of the categories…

Synopsis

You compete in this challenge by building tooling for working with Autonity.

There are multiple develop tooling tasks for Round #6 in five categories:

A roulette award is also run at the end of the round, giving game participants who have entered for a Develop Tooling task but not yet won an award an opportunity to win.

Entries can be submitted at any point between the start time of the Games and the end time of the final Game Round #6. Entries submitted between the start and end dates of a Game Round will be judged at the end of that round. Entries submitted between game rounds will be carried forward as an entry to the next round. A participant can submit multiple entries for Develop Tooling tasks in the Games.

Submissions that are clones of other GitHub projects without significant development by the submitter will not be considered valid entries. Winners will be announced at round end with other award winners.

How to enter

How to submit entries to Develop Tooling tasks

Ready to take part? Complete the Games Registration Form if you haven’t done so already.

Develop Tooling task entries are submitted in a simple process:

  1. Develop – Develop your submission in a repository of the GitHub account you provided at game registration and make the repo publicly accessible. Label your repo with topics autonity and one of:
    • deployment
    • developer
    • visualization
    • trading
    • ai
  2. Submit – Use Developer awards Form to submit the entry to the Games by providing the url to the repo above.

Submitted entries must be in the public domain and open sourced if licensed. See Licensing for award submissions for accepted licenses.

Tell the community about your entry!

Why not advertise your new Developer Tool to the community so other game participants can easily find and make use of it?

Post your endpoint address to Autonity’s Discord Server in the PICCADILLY CIRCUS GAMES / Tools channel!

Awards

The develop tooling challenge has 6 awards across which a total award pool of 35000 Award Tributes is distributed:

Sub-task Task award pool share Award Tributes
Best Deployment Tool 17% 6,000
Best Developer Tool 17% 6,000
Best Visualization Tool 17% 6,000
Best Trading Tool 17% 6,000
Best AI Tool 17% 6,000
Roulette Award 15% 5,000

The Develop Tooling tasks have a 1st, 2nd and 3rd prize model for the top 3 submissions in each category. The Roulette Award randomly selects 5 participants who have entered for a develop tooling task during the game but have not been chosen as a winner.

Upon completion of Round #6, selected winners will win Award Tributes per the table beneath.

Task Award Tributes Winners
Best Deployment Tool - Category 1 Up to 6,000 Tributes: 1st 3000, 2nd 2000, 3rd 1000 3 winners
Best Developer Tool - Category 2 Up to 6,000 Tributes: 1st 3000, 2nd 2000, 3rd 1000 3 winners
Best Visualization Tool - Category 3 Up to 6,000 Tributes: 1st 3000, 2nd 2000, 3rd 1000 3 winners
Best Trading Tool - Category 4 Up to 6,000 Tributes: 1st 3000, 2nd 2000, 3rd 1000 3 winners
Best AI Tool - Category 5 Up to 6,000 Tributes: 1st 3000, 2nd 2000, 3rd 1000 3 winners
The Roulette Award 1000 Tributes per winner 5 winners

Task: Develop Tooling

This task is allocated 30,000 Award Tributes and up to 15 winners.

To take part, create tooling in any of the following categories:

Each category has a set of candidate development tasks to tackle. For task details, see the briefs below.

Roulette Award

The award is allocated 5,000 Award Tributes and up to 5 winners.

The roulette gives every game participant that has made a valid submission for a Develop Tooling task but not won a Develop Tooling prize a chance to win an award!

Every valid non-winning submission made in this or an earlier game round is included in the Develop Tooling tasks challenge roulette.

The roulette is run after Round #6 Develop Tooling task submissions have been judged. It randomly selects 5 participants who have entered for a Develop Tooling task during the PCGC but have not been chosen as a winner.

5 roulette winners are chosen, winning 1,000 Award Tributes each.

Scoring rule

Develop Tooling scoring

Entries for Develop Tooling tasks are judged by a community panel made up of the Autonity core development team. Entries are judged using the Developer Tooling Rubric.

Winning submissions are those with the highest score (see scoreboard ranking).

Roulette Award scoring

Every valid non-winning submission for any Develop Tooling task submitted during PCGC Game Rounds 1 to 6 inclusive is auto-enrolled in the Develop Tooling tasks challenge roulette award.

The roulette randomly selects 5 roulette winners, winning 1,000 Award Tributes each.


Briefs

There are five broad categories of tool defined: deployment, developer, visualization, trading, and AI.

In each category specific tasks are defined. Choose and complete a specific task to enter for an award. You can complete and submit as many tasks as you like in any of the categories.

For the criteria used to score entries see the Developer Tooling Rubric.

Category 1 - deployment tooling

Create a new tool or add Autonity support to existing tooling for network deployment and node or validator operations. Use of autonity.py and the Autonity Utility Tool aut as a dependency is encouraged. Complete one of the following to enter:

  • Create a DEB, RPM or other packaging script for autonity, aut or autonity.py.

  • Automation scripts for Node deployment to launch Autonity as:

    • a system service, e.g. systemd
    • deployment automation scripts e.g. Helm, K8s, Docker, as a system service on Ubuntu
  • Develop a tool for validator lifecycle management - registration, bonding, pause, re-activate - that uses aut

  • Add Autonity support to an existing network monitoring, logging, or metrics platform/framework

  • Add Autonity support to an existing blockchain explorer of your choice

  • Write a script in your favourite language that automates some autonity functionality using aut and the language’s system interface

Category 2 developer tooling

Develop a new software implementation to help developers build with Autonity. Your submission should be specific to Autonity. Use of autonity.py and the Autonity Utility Tool aut as a dependency is encouraged. Complete one of the following:

  • Develop automation scripts for a local testnet deployment

  • Develop a Python tool for deploying smart contracts to an Autonity network

  • Develop a tool or GraphQL query to extract time-series data from an Autonity blockchain. Data that would be of potential interest to a trading application is encouraged

  • Add Autonity support to a smart contract development framework or IDE. E.g. Brownie, Hardhat, Remix…

  • Add a sub-command to the Autonity Utility Tool’s aut contract command group that allows one to listen to events from a smart contract, using the web socket interface of the node

  • Add support for a popular hardware wallet to the Autonity Utility Tool. For example, Ledger, Tresor, Yubi HSM…

  • Add support for a popular multisig wallet to the Autonity Utility Tool. For example, Safe Wallet…

  • Develop for Autonity Go Client an implementation of ERC-4361: Sign-In with Ethereum for RPC node authentication of a client request

  • Develop for Autonity Oracle Server a plugin adaptor for a publicly accessible FX data source. See docs.autonity.org and Developing data plugins for how to do this using Autonity Oracle Server’s plugin template architecture.

Category 3 visualization tooling

Develop dashboards for visualizing and navigating data. Complete one of the following and visualize:

  • Network health and structure, visualizing metrics of network nodes such as sync state, uptime, geographic centralization, validator nodes, public rpc endpoints.

  • Staking metrics data specific to Autonity’s liquid staking model. Visualize datapoints such as stake participation rate, self-bonded and delegated stake amounts, validator ratios of self-bonded to delegated stake, …

  • Validator metrics from the perspective of a stake delegator assessing which validator to stake for maximum return and competitiveness. Visualize datapoints such as commission rate, how often in the consensus committee, slashing history, validator state (active, paused, or jailed), …

  • Slashing activity across epochs, visualizing datapoints such as accountability events detected, faults slashed for, slashing amounts, slashing rules broken, slashing frequency, slashing accusations successfully defended by innocence proofs, validator slashing history, …

Category 4 - trading tooling

Develop tools and models for trading. Your submission should be specific to Autonity. Use of open source libraries and toolkits for trading in the EVM-based ecosystem is encouraged.

Complete one of the following tasks:

  • Develop an integration with a trading strategy and execution platform for EVM-compatible chains. For example:
    • the Trading Strategy AI algorithmic trading protocol for decentralized markets - https://tradingstrategy.ai/
  • Create an agent to simulate trading in an on-chain DEX deployed to an Autonity network. Use an open source library such as:
    • Hummingbot - https://hummingbot.org/
    • Freqtrade - https://www.freqtrade.io/en/stable/
  • Develop an integration with an open source exchange library for trading on the Piccadilly on- and off-chain exchanges. For example:
    • Develop an SDK Provider to access the Piccadilly off-chain exchange API using the CCTX exchange library - https://github.com/ccxt/ccxt/tree/master.
    • Develop a Hummingbot connector to access the Piccadilly off-chain exchange API - https://docs.hummingbot.org/developers/connectors/.

Category 5 - generative AI

Make use of AI to develop bots and algorithms for working with Autonity. Your submission should be specific to Autonity. Use of open source libraries is encouraged.

Complete one of the following tasks:

  • Use AI to analyse or predict the accuracy of the reported price provided by Autonity’s oracle network.
  • Use AI to create question-answering algorithms pulling out real-time data from blockchain state. For example, to answer questions like “How many blocks?”, “Which block has the most transactions?”, “What kind of transactions are being processed on Autonity?”, …