{"id":14964009,"url":"https://github.com/dodging-turtis/dodging-turtis","last_synced_at":"2025-09-30T19:30:57.441Z","repository":{"id":39252122,"uuid":"384930919","full_name":"Dodging-Turtis/Dodging-Turtis","owner":"Dodging-Turtis","description":"Turtle-themed NFT game and marketplace promoting Indian art.","archived":false,"fork":false,"pushed_at":"2022-09-21T12:01:04.000Z","size":77474,"stargazers_count":65,"open_issues_count":0,"forks_count":24,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-07T05:06:06.779Z","etag":null,"topics":["blockchain","chainlink","ethereum","filecoin","ipfs","mern","nft","nftstorage","openzeppelin","phaser","polygon","react","smart-contracts","solidity","truffle","web3"],"latest_commit_sha":null,"homepage":"https://dodging-turtis-three.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dodging-Turtis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-11T11:27:26.000Z","updated_at":"2025-03-07T16:09:58.000Z","dependencies_parsed_at":"2023-01-17T18:30:53.017Z","dependency_job_id":null,"html_url":"https://github.com/Dodging-Turtis/Dodging-Turtis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Dodging-Turtis/Dodging-Turtis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dodging-Turtis%2FDodging-Turtis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dodging-Turtis%2FDodging-Turtis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dodging-Turtis%2FDodging-Turtis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dodging-Turtis%2FDodging-Turtis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dodging-Turtis","download_url":"https://codeload.github.com/Dodging-Turtis/Dodging-Turtis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dodging-Turtis%2FDodging-Turtis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277746957,"owners_count":25870057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","chainlink","ethereum","filecoin","ipfs","mern","nft","nftstorage","openzeppelin","phaser","polygon","react","smart-contracts","solidity","truffle","web3"],"created_at":"2024-09-24T13:32:27.841Z","updated_at":"2025-09-30T19:30:54.373Z","avatar_url":"https://github.com/Dodging-Turtis.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dodging Turtis\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150418640-92754365-f2a5-410b-840d-65f1e95204ee.png)\n\n\u003e Dodging Turtis is an NFT based game which runs on the `POLYGON` network in the `Ethereum` Blockchain and is powered by decentralized `Chainlink` Oracles.\n\n\u003cbr /\u003e\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150414116-cdc6c2e1-fca0-4c46-8242-b306f1292291.png)\n\n\n## About the project\n\nThe game involves a Turtle character who dodges through the platforms coming towards it with increasing speed. The NFT here is the Turtle character. Everytime a row of blocks are dodged by the turtle, \u003cb\u003e10 points\u003c/b\u003e are added to the score. The current game is over when the Turtle collides with any of the platforms.\n\nInorder to dodge through the blocks, the Turtle can move left or right using the arrow keys. The speed of the left and right movement of the Turtle varies for each Turtle NFT. The game is really fun to play and it can get really challenging as the speed of the platforms increase with time.\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150413926-84b65d7f-052f-4c0d-b1b0-09a8dcdb95cd.jpg)\n\n\nThe player is rewarded with a new random Turtle NFT everytime a new checkpoint score is reached by the user. The checkpoint score is atleast 110 more than the previous high score of the player.\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150415170-f281718d-d16f-4880-95ae-06f189135ab4.png)\n\n\nHigher the score achieved for a new checkpoint, higher the `speed` of the NFT character that the user receives as a reward. More speed allows the player to move faster through the platforms and reach high score easily. Users would want to own NFTs with higher speed and hence it acts a selling point.\n\nThe NFTs are dynamic. Every new Turtle NFT has a unique name, randomized image and a random speed which is ranged according to the score achieved by the user. ERC721 standard is used for implementing the NFT. The symbol the Turtis NFT token is `TRTL`.\n\n### Some of the randomly generated Turtles are as follows:\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150414723-1417bdd3-229d-4b66-b528-f66e1b999445.png)\n\n![Turtis](https://user-images.githubusercontent.com/55662714/150417567-ebeea9d8-4daf-447c-b976-a59898621560.png)\n\n\u003cbr\u003e\n\n![Turtis](https://user-images.githubusercontent.com/55662714/140104978-b4662328-fa0c-4e5f-84f5-d8c43bcaeef8.png)\n\n\nThe metadata for the NFT is stored in `FlieCoin` and `IPFS` using `nft.storage` using the [Custom API](https://github.com/DineshBS44/Turtis-API) and it returns the IPFS Hash to the smart contract using Chainlink Oracles.\n\u003cbr\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/55662714/140105023-1ef74225-422d-461a-8fed-4e08c4120b49.png\" alt=\"center\" width=\"40\" height=\"40\"\u003e\u003cbr\u003e\n\nThe DApp(Decentralized Application) which includes the Game is deployed to the `MATIC Mumbai Testnet`\n\nUsers can select any Turtle from the Turtles they own and play the game. The DApp also has an \u003cb\u003eNFT marketplace\u003c/b\u003e. The users can buy and sell their NFTs inside the DApp. The users can also see the NFTs that are owned by other users even if they are not for sale.\n\n![Turtis](https://user-images.githubusercontent.com/55662714/140105117-08ecfea2-a6d0-4c92-806e-ba7c8667df65.png)\n\n## Working Demo of our DApp\n\nThe Application frontend is deployed to https://dodgingturtis.netlify.app/. Make sure you have Metamask installed in your browser and connect it to MATIC Mumbai Testnet using the Custom RPC option. Also, get some MATIC from the Faucet.\n\n## Turtis contract\n\n\u003ca href=\"https://mumbai.polygonscan.com/address/0x22Ebc23a695F4fEcE850cEb8a38Df95BBf1011d5#contracts\"\u003eClick here\u003c/a\u003e to view the Turtis contract on Polygonscan\n\nThe contract \u003ca href=\"https://mumbai.polygonscan.com/address/0x22Ebc23a695F4fEcE850cEb8a38Df95BBf1011d5#code\"\u003ecode\u003c/a\u003e has been verified and it is visible on `mumbai.polygonscan.com`\n\n## TurtisGameUserAuth contract\n\n\u003ca href=\"https://mumbai.polygonscan.com/address/0x87D83BBE86A224d5B27e330a9d5D1D62EC710512\"\u003eClick here\u003c/a\u003e to view the TurtisGameUserAuth contract on Polygonscan\n\nThe contract \u003ca href=\"https://mumbai.polygonscan.com/address/0x87D83BBE86A224d5B27e330a9d5D1D62EC710512#code\"\u003ecode\u003c/a\u003e has been verified and it is visible on `mumbai.polygonscan.com`\n\n## Built With\n\n- [Ethereum](https://www.ethereum.org/) - Ethereum is a decentralized platform that runs smart contracts\n- [Chainlink](https://chain.link/) - Chainlink's decentralized oracle network provides reliable, tamper-proof data for complex smart contracts\n- [Polygon](https://polygon.technology/) - Polygon is a protocol and a framework for building and connecting Ethereum-compatible blockchain networks and provides scalable solutions\n- [Solidity](https://docs.soliditylang.org/en/v0.8.6/) - The most popular language for writing smart contracts\n- [Phaser](https://phaser.io/) - An open source framework for building browser based games\n- [ReactJS](https://reactjs.org/) - A JavaScript library for building user interfaces\n- [nft.storage](https://nft.storage/) - Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.\n- [IPFS](https://ipfs.io/) - P2P network for storing and sharing files in a distributed file system\n- [Filecoin](https://filecoin.io/) - A decentralized storage network to store humanity's most important information\n- [Truffle Framework](http://truffleframework.com/) - Truffle is the most popular development framework for Ethereum with a mission to make your life a whole lot easier\n- [Alchemy](https://docs.alchemy.com/alchemy/documentation/apis/polygon-api) - To access a node which connects with Ethereum Blockchain on the Polygon Mumbai Testnet\n- [Remix - Solidity IDE](https://remix.ethereum.org/) - To compile, test and deploy faster using Javascript VM\n- [Visual Studio Code](https://code.visualstudio.com/) - Code Editor\n- [Ganache - One Click Blockchain](https://truffleframework.com/ganache) - Local blockchain for testing\n- [Open Zeppelin ](https://openzeppelin.org/) - Open source Library of pre-built contracts\n- [Metamask](https://metamask.io/) - Wallet Provider\n- [Polygonscan](https://mumbai.polygonscan.com/) - View and keep track of transactions happening around a smart contract as well as view its code, read and write stuff to it\n\n## The DApp User Interface\n\n![Turtis](https://user-images.githubusercontent.com/55662714/140105241-1eb1c085-7e99-45b6-89f6-5a6f83086ef1.png)\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Prerequisites\n\nPlease make sure you've already installed NPM \u0026 Yarn packages, Truffle and enabled MetaMask extension in your browser.\n\nIf you don't have `yarn` installed, run the following command:\n\n```\nnpm install -g yarn\n```\n\nIf you don't have Truffle installed, run the following command:\n\n```\nnpm install -g truffle\n```\n\nPlease make sure that the Metamask wallet is connected to the `MATIC Mumbai Testnet` and has some MATIC tokens.\n\n### Installing\n\nA step by step guide to locally run the DApp\n\n- First, get free API keys from [Alchemy](https://docs.alchemy.com/alchemy/documentation/apis/polygon-api) and [Polygonscan](https://polygonscan.com/)\n- Clone this repository:\n\n```\ngit clone https://github.com/Hardikag17/NFT-Game\n```\n\n- Install all the required packages using the following command\n\n```\nyarn\n```\n\n- Create a `.env` file and store the following contents in it and include API keys:\n\n```\nPOLYGONSCAN_API_KEY=\"\u003cPolygon API Key\u003e\"\nMNEMONIC=\"\u003cEnter your metamask seed phrase here\u003e\"\nPOLYGON_MUMBAI_RPC_URL=\"https://polygon-mumbai.g.alchemy.com/v2/\u003cAlchemy API Key\u003e\"\n```\n\n- To launch the DApp, use the following command:\n\n```\nyarn start\n```\n\n## Libraries/services used\n\n- **@truffle/hdwallet-provider** - Used to create a provider using Seed phrase(Mnemonic) and Alchemy RPC URL to connect to the Blockchain\n- **web3** - To interact with the deployed smart contract on Polygon Mumbai Testnet\n- **@chainlink/contracts** - To inherit ChainlinkClient contract to call an API using the decentralized Chainlink Oracles\n- **@openzeppelin/contracts** - To inherit the ERC721 based contracts\n- **phaser** - To build the game\n- **react** - For creating the fronted DApp\n- **@ion-phaser/react** - React specific wrapper for ion-phaser component\n- **truffle-plugin-verify** - To verify the smart contract code on Polygonscan using its API\n- **dotenv** - For managing data in .env files\n- **solc** - For compiling solidity contracts\n- **ganache-cli** - For running a local blockchain mostly used for testing purposes\n- **mocha \u0026 chai** - To test the smart contracts written in solidity\n- **solhint** - To lint solidity files\n- **prettier \u0026 prettier-plugin-solidity** - To format the code\n\n### Some versions of Frameworks and Libraries used in this project are\n\n- **Truffle version** - 5.3.14\n- **Solidity version** - 0.6.6\n- **Node JS version** - 14.16.1\n- **@truffle/hdwallet-provider version** - 1.4.1\n- **web3 version** - 1.4.0\n\n## Developers\n\n- **Dinesh B S** [(@DineshBS44)](https://github.com/DineshBS44)\n- **Hardik Agarwal** [(@Hardikag17)](https://github.com/Hardikag17)\n- **Hritika M Kucheriya** [(@hritikamk)](https://github.com/hritikamk)\n- **Suryashankar Das** [(@iamsdas)](https://github.com/iamsdas)\n\n## Contributors\n\n## License\n\nLicensed under MIT License : https://opensource.org/licenses/MIT\n\n\u003cbr\u003e\n\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodging-turtis%2Fdodging-turtis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdodging-turtis%2Fdodging-turtis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodging-turtis%2Fdodging-turtis/lists"}