This project uses Matic Mainnet, and Easyfy.Network - a fork of Compound running on Matic. User mint robot NFTs which have specific properties (strength, skill, etc). These NFT robots can be used to battle virtually on our Online Arena. Users otherwise can enter into a physical robot fighting tournament, Users stake $10 USDC for a tournament entry, and all entries are pooled and sent to Easify Network. The interest earned over the period of the tournament becomes the reward. We use Biconomy for gasless transactions / metatransaction - leveraging EIP 712 / permit on USDC. The robots read the NFT metadata to react / fight accordingly - for example, striking speed. Different NFT weapons can be represented on the physical robot by swapping out parts - the robots are modular. Part of robot body are simple 3D printed parts like the base, flipper, and swatter. The robot software is based on ROS (robot operating system). ROS is a a famous easy-to-use open-source framework and set of libraries. We use ROS for control of the robot, and communication. Each robot listens to events happening on the smart contract and can react accordingly. Users control the robots directly over socket communication.

Clash of Gears showcase

How it's made

The Robot NFT contracts are based on the ERC 1155 standard, with limited minting of skills and weapons. The tournament contract is similar to that of Pool Together except that rather that instead of a random lottery people fight robots. The robots are the Robot Operating System (ROS) on a Raspberry Pi. The robots relay back state information to an oracle - for example if they have been flipped - this indicated that an ongoing match has ended. Users who want to enter into a match have to agree off-chain and sign to enter the match. After agreeing to the match, and signing off, a unique passcode is generated. Both players are able to control the robot over WebSocket connection.A stream of the players and Eagle Eye View Camera is sent using WebRTC. The game is built using Unity 3D, and compiled for WebGL. At the start of each tournament Chainlink Alarm Clock is used to set an end date to the tournament. This forces the users to coordinate offchain and meet for a Robot Duel.