- Solidity 76.4%
- TypeScript 19.2%
- Python 1.7%
- CSS 1.1%
- Shell 0.8%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| app | ||
| contracts | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| LICENSE | ||
| README.md | ||
Basilica Minter
A fully decentralized dapp and Solidity contract for minting Basilica (ΒΑΣΙΛΙΚΗ) on PulseChain by creating a LAU token — or reusing one already held — through the CHO/LAU-factory system. There is no backend and no off-chain API: every number the app shows (base fee, block timestamp, pool reserves, recent mints) is read directly from RPC.
Layout
| Path | What it is |
|---|---|
contracts/ |
The Minter contract (Foundry, Solidity 0.8.33, evm_version = "shanghai") and its fork tests. |
app/ |
The dapp — Preact + viem, no backend, no UI framework. See app/README.md for architecture, env vars, and both deploy targets (Cloudflare Pages, Nixpacks). |
scripts/ |
pack-cloudflare.sh — builds the app and zips exactly what a Cloudflare Pages direct upload needs. |
Contract
Deployed and verified on PulseChain mainnet at
0x12aC6aDe3C600F7f9a1bA1a8C66434a747995c76.
cd contracts
forge test # fork tests against live PulseChain state
forge build
evm_version must stay "shanghai" — PulseChain has not adopted the Cancun
opcodes, and a contract compiled for Cancun deploys without error and then
reverts on every call. scripts/scan_opcodes.py checks the compiled
bytecode for Cancun-only opcodes as a build-time gate.
Develop the dapp
cd app
npm install
npm run dev
See app/README.md for the full picture: how the on-chain
data layer works, every environment variable, and how to build and deploy to
each supported target.
License
MIT — see LICENSE.