This repository now supports both Ethereum/Polygon (via WAGMI) and Starknet implementations of the BigIncGenesis smart contract.
-
Install Dojo (includes Katana):
curl -L https://install.dojo.sh | bash dojoup -
Install Starkli:
curl https://get.starkli.sh | sh starkliup -
Install Scarb:
curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
Option 1: Full Automated Setup
npm run setup:fullThis will:
- Start Katana devnet
- Deploy contracts (BigIncGenesis, MockUSDT, MockUSDC)
- Update frontend configuration
- Start Next.js dev server with Starknet enabled
Option 2: Manual Step-by-Step
-
Start Katana devnet:
npm run setup:devnet
-
Deploy contracts:
npm run deploy:contracts
-
Start frontend with Starknet:
npm run dev:starknet
After deployment, contract addresses are automatically updated in:
src/lib/starknet/config.tsdeployment/contracts.json
The devnet provides prefunded test accounts:
Account #0:
- Address:
0xf082b9d66cd3d9e4edc4d9c9450e7b154e88d490a22b214ee41c9d291df876 - Private Key:
0x53b7668914511a29edc1247c0d2a9a44d0c9c78b4a2d8163c6439a4bde52a98
Account #1:
- Address:
0x175c0552eda5d4b38250a5388d4d11b1a018df0c3081c7fe2ee3478ada43d78 - Private Key:
0x7dd2923d111acc143d8e1f1b95850bce0479e19bdd4dc4c83a33da7efeb0fd7
- Visit
http://localhost:3000/dewhitepaper - Connect your Starknet wallet (Braavos, ArgentX, etc.)
- The page will automatically detect if Starknet contracts are deployed
- Use MockUSDT/USDC to buy shares
- View live share distribution in the pie chart
The app supports both Ethereum and Starknet:
- Ethereum: Uses WAGMI + WalletConnect
- Starknet: Uses starknet-react + StarknetKit
- Automatically switches based on
NEXT_PUBLIC_USE_STARKNETor contract availability
Starknet-Specific:
ShareChartStarknet.tsx- Live on-chain share visualizationShareModalStarknet.tsx- Buy shares using Mock USDT/USDCsrc/lib/starknet/hooks.ts- Contract interaction hookssrc/lib/starknet/config.ts- Chain and contract configuration
Smart Contracts:
BigIncGenesis.cairo- Main share management contractMockERC20.cairo- Mock USDT/USDC for testing
# Stop Next.js dev server
Ctrl+C
# Stop Katana devnet
npm run stop:devnetThe BigIncGenesis contract supports:
mint_share()- Buy shares with USDT/USDCget_shares(address)- Get user's share balanceget_shareholders()- Get all shareholdersget_available_shares()- Get remaining shares for saletransfer_share()- Transfer shares between usersdonate()- Donate tokens to the contract
NEXT_PUBLIC_USE_STARKNET=true- Enables Starknet mode in frontend
Contract not found errors:
- Ensure Katana is running on port 5050
- Redeploy contracts with
npm run deploy:contracts
Wallet connection issues:
- Use browser wallets compatible with Starknet devnet
- Check that wallet is connected to the correct network
Transaction failures:
- Ensure you have sufficient mock token balance
- Approve tokens before minting shares
Build errors:
- Run
scarb buildin thecontract_/directory - Check that all dependencies are installed