← Back to home

Project Survivor

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

Screenshots

Project Survivor screenshot 1
Project Survivor screenshot 2
Project Survivor screenshot 3

Problem Statement

<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>IntroductionIPCis 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.StrugglesStruggles of working with IPC for Project Survival :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.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

Solution

Local deploymentDeploy IPC node:you can follow this guide hereDeploy a subnetDeploy Contractin the contract directory deploy the contract to subnet node usingremixNFT APPin the NFTAPP directory do the followinga. install depnpm ib. 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 addressd. run the nft appnpm run devdeploy game appin the gameapp directory do the followinga. install depnpm ib. add the IPC chain ID in thesrc\lib\wagmi.tsconst 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 insrc\lib\wawa.tsd. run the nft appnpm run devb. run the appnpm run startsmart contracts deploymentsIPC is also deployed on the Arbiturm BlockchainSubnetRegistry :0xaC0809e81d84d9f9b4a9d05C71A8D89CAa3561DBGateway :0xBFb1288b4Bb316c9A4E431c3D73aB38c508023D5

Hackathon

Scaling Ethereum 2024

2024

Prizes

  • 🏆

    Most meaningful use of Interplanetary Consensus for scalability3rd place

    Filecoin

  • 🏆

    Qualifying Arbitrum Submissions

    Arbitrum

Contributors