project screenshot 1
project screenshot 2
project screenshot 3

Project Survivor

Survive Waves, Level Up, Conquer Foes - All with Your NFT using IPC by protocol laps

Project Survivor

Created At

Scaling Ethereum 2024

Winner of

Filecoin - Most meaningful use of Interplanetary Consensus for scalability 3rd place

Arbitrum - Qualifying Arbitrum Submissions

Prize Pool

Project Description

<h4 align="center">Survive Waves, Level Up, Conquer Foes - All with Your NFT!</h4> <p align="center"> <a href="#introduction">Introduction</a> • <a href="#struggles">Struggles</a> • <a href="#local-deployment">Local deployment</a> • <a href="#smart-contracts-deployments">smart contracts deployments</a> • <a href="#license">License</a> </p>

Introduction

IPC is super fast which makes it suitable for gaming , the idea of Survival project is to be able to survive waves of enemey and level up your NFT, not only that but it can be upgraded without even needing to pause the game and wait for tx to complete between waves or mid waves.

Struggles

Struggles of working with IPC for Project Survival :

  1. Reading smart contract Data: one major pain points was trying to get wagmi to play nicely IPC and read data from smart contracts deployed that. and that super needed to allow the users to mint the nft , use it, then level it up in the marketplace during game play.

  2. modifying the IPC: we wanted to custmize the IPC to store the gamelogic and help with that while it wasnt yet finished for the hackathon we are in love with the potential

How it's Made

Local deployment

  1. Deploy IPC node: you can follow this guide here Deploy a subnet

  2. Deploy Contract in the contract directory deploy the contract to subnet node using remix

  3. NFT APP in the NFTAPP directory do the following

a. install dep

    npm i

b. add the IPC infomation in network directory

{
  "selectedChain": "381277380063393",
  "381277380063393": {
    "chainId": "381277380063393",
    "chainName": "IPC",
    "rpcUrls": [
      "http://localhost:8545/"
    ],
    "nativeCurrency": {
      "symbol": "FIL"
    },
    "blockExplorerUrls": [
      ""
    ]
  }
}

c. update the contract address
d. run the nft app

npm run dev
  1. deploy game app in the gameapp directory do the following

a. install dep

npm i

b. add the IPC chain ID in the src\lib\wagmi.ts

    const IPC: Chain = {
      id: 381277380063393, // Chain ID
      name: 'IPC',
      network: 'IPC',
      nativeCurrency: {
        name: 'FIL',
        symbol: 'FIL', // Currency Symbol
        decimals: 18,
      },
      rpcUrls: {
        default: { http: ['http://localhost:8545/'] } ,
        public: { http: ['http://localhost:8545/'] } // Include the public key if required by the Chain type
      },
      testnet: true,
    };

c. update the contract address in src\lib\wawa.ts

d. run the nft app

npm run dev

b. run the app

npm run start

smart contracts deployments

IPC is also deployed on the Arbiturm Blockchain

SubnetRegistry : 0xaC0809e81d84d9f9b4a9d05C71A8D89CAa3561DB

Gateway : 0xBFb1288b4Bb316c9A4E431c3D73aB38c508023D5

background image mobile

Join the mailing list

Get the latest news and updates