📣 See it live at https://reverent-kare-6dc98a.netlify.app/
We've had an idea internally for a while to build a "Community Ledger" where members of our community could pay a fee to inscribe their names/handles and a message in a "ledger" which will live on forever on chain. It could be a fun idea to let our community members leave some kind of legacy (discussed a bit in here).
Your task is to build a basic version of this idea.
Your core smart contract should:
- let users mint an NFT with a
name
andmessage
prop, representing their "brick" id in the ledger - charge users in token XYZ to mint a brick (XYZ is a fake/test ERC20 token you will need to deploy)
- charge users on an increasing scale - the first mint should cost 10 XYZ and subsequent mints should increase in cost by 3%
- be upgradeable (TransparentUpgradeableProxy)
- be verified on Kovan explorer
Your frontend (React mandatory, Typescript optional) should:
- display minted bricks, with id numbers, names and messages
- allow users to mint a brick (this will require an erc20 approve tx on XYZ and a mint tx)
- display 1) number of total bricks, 2) amount of XYZ in the contract, 3) current price for a brick
- be practical, but well designed with a bit of flourish
- Install dependencies
yarn install
-
Setup environment variables:
- Create a
.env
file - Populate values specified in the
.env.example
file.
- Create a
-
Run app
yarn start
The master
branch is deployed automatically at https://reverent-kare-6dc98a.netlify.app/.
- CommunityPowerToken (XYZ):
- Proxy:
0x50E9f22D70e396e6BdA7590914e50a5D7fb15186
- Contract:
0xc4c3ec9cfefAb10bd9c107cDC16EECe6186bB90D
- Proxy:
- CommunityLedger:
- Proxy:
0x202B88201Cbfe15E7c6D7Cd5dB73Ad4FbDc16Eb8
- Contract:
0x0298FFf6EBD25AB53f4F4fcd6BaAB095e6145a16
- Proxy: