Social protocol where interactions are monetized π° allowing users to earn through engaging with their community π«.
β To know what this project aims to be, read the about page.
π₯ Pending development tasks on this Trello board
βοΈ Currently built using Scaffold-ETH 2, Foundry, OnchainKit, Pinata, Vercel, NextJS, RainbowKit, Wagmi, Viem, and Typescript.
π¦ Considering using protocols: Circle USDC as native gas, The Graph for indexing events, AAVE for earning interest on USDC, Chainlink for cross-chain NFT bridging.
π Considering using contracts: ERC721, Ownable and Upgradeable from Solady for contract ownership. And maybe EIP712 Signatures for some gasless activity.
π To be deployed on Avalanche L1 and Bridge ERC20 and ERC721 using Avalanche Interchain Token Transfer and Chainlink CCIP Transfer Tokens with EVM compatible chains.
- Node (>= v18.17)
- Yarn (v1 or v2+)
- Git
- Foundry
To get started follow the steps below:
- Open a terminal and run this commands to clone this repo and install dependencies:
git clone https://github.com/luloxi/PunkSociety.git
cd PunkSociety
yarn install
- Duplicate and rename
packages/foundry/.env.example
topackages/foundry/.env
NOTE:
ETHERSCAN_API_KEY
andALCHEMY_API_KEY
are not required until you deploy to a live EVM like Avalanche, Base, Ethereum, etc.
-
Rename the
.env.example
to.env
in thepackages/nextjs
folder. For each variable, follow the instructions above the variable. -
Start a local Avalanche L1:
It'd be ideal to run it with one command like yarn subnet
with a config file, but so far, you gotta follow this instructions.
You'll start a local Avalanche L1 using Ava Labs avalanche-starter-kit. The network runs on your local machine and can be used for testing and development.
- Open a terminal, navigate to
PunkSociety
and run this command to deploy the contracts:
yarn deploy
This command deploys a PunkSociety contracts to your Avalanche L1.
NOTE: Contracts are located in
packages/foundry/contracts
and can be modified to suit your needs. Theyarn deploy
command uses the deploy script located inpackages/foundry/script/Deploy.s.sol
to deploy the contract to the network. You can also customize the deploy script.
NOTE 2: To deploy to a different network, you can run
yarn deploy --network <network-name>
. For example, to deploy to the Ethereum network, you can runyarn deploy --network ethereum
.
- Open a second terminal, navigate to
PunkSociety
and run this command to start your NextJS app:
yarn start
Visit your app on: http://localhost:3000
.
NOTE: You can interact with your smart contract on
http://localhost:3000/debug
and see a local block explorer onhttp://localhost:3000/blockexplorer