A Web3 launchpad built during the UnitZero blockchain hackathon. Creators mint a project as an NFT, and anyone can fund it with the network's native token. Each supporter's voting power is their share of the total raised.
Everything runs on the UnitZero testnet, so the funding is real transactions against a real chain, just not real money.
Node 16+ and the MetaMask extension.
git clone https://github.com/batuonlukus/unithackathon.git
cd unithackathon
npm install
npm startThe app comes up at http://localhost:3000. MetaMask needs UnitZero added as a custom network first:
| Field | Value |
|---|---|
| Network name | UnitZero Testnet |
| RPC URL | https://rpc-testnet.unit0.dev |
| Chain ID | 88817 |
| Currency symbol | UNIT |
| Block explorer | https://explorer-testnet.unit0.dev |
Connect a wallet, create a project with a name, description, and GitHub link, and the contract mints an NFT for it. Other wallets fund the project by sending UNIT; the contract records who sent what and recomputes every supporter's share of the total.
The ProjectFundingNFT contract is already deployed. Its address lives in
src/utils/contractInteractions.js, which
is also where wallet connection, minting, and funding calls are wrapped for the
React side. The UI is a single App.js with a hand-written dark theme in
App.css.
React 18 on Create React App, ethers.js v5. npm test and npm run build are
the stock CRA scripts.
Hackathon code on a testnet. No audit, no production hardening, and nothing here should touch real value.
MIT, see LICENSE.