artall64 / cosmic-cowboys-contracts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cosmic Cowboys Contracts

This repo contains the Solidity smart contracts for Cosmic Cowboys, a dynamic on-chain game that gives life to NPC using ERC-6551 and AI.

ℹ️ To see the repo for the front end app portion of this project, please visit polluterofminds/cosmic-cowboys-app

The project consists of several elements:

  • A primary key that can deploy / own the contracts
  • An altered ERC-721 where each NFT is an NPC. The additions to the contract include on-chain state like health and location.
  • ERC-20 Contract for the in game currency
  • Two ERC-1155 Contracts for in game supplies and items
  • A custom "Operator" contract that abstracts the other contracts and allows on chain dynamics.
  • A custom implementation of ERC-6551 for deploying to chains that may not have an implementation address, like Scroll.

With this repo we deploy all the previously mentioned contracts and mint 20 NPC characters, give each their own Tokenbound Account, and mint currency and items to those accounts. The end result will also give env variables that can be used for the front end portion of the app.

Deploying

Fist clone this repo and install dependences

git clone https://github.com/stevedylandev/cosmic-cowboys-contracts && cd cosmic-cowboys-contracts && npm install

To deploy the contracts you can create a .env file with the following variables:

PRIVATE_KEY=
ALCHEMY_URL=
ALCHEMY_URL_BASE=
ALCHEMY_KEY=
ALCHEMY_KEY_BASE=
SEPOLIA_URL=
SEPOLIA_KEY=
ETHERSCAN_API_KEY=

Depending what networks you want to deploy to you can alter those variables.

Once ready you can deploy with your choice of network like goerli

npx hardhat run scripts/deployContracts.js --network goerli

Once you run this it will deploy all contracts as well as setup the NPCs for the game.

About


Languages

Language:JavaScript 52.4%Language:Solidity 47.6%