Ten small, independent smart contracts for a public creator identity and community toolkit on Base.
ProfileRegistry- self-managed profile URIs.MessageBoard- permanent short public messages.Guestbook- one signed guestbook entry per wallet.ProofRegistry- timestamps unique document hashes.LinkRegistry- self-managed named project and social links.TipJar- receives ETH and lets the owner withdraw it.SimplePoll- one vote per wallet in a fixed poll.AchievementBadges- owner-issued, non-transferable badges.AllowlistRegistry- owner-managed wallet allowlist.DeploymentDirectory- indexes every contract in the suite.
npm install
npm testStore the deployment key in Hardhat's encrypted keystore. Never paste it into chat, commit it, or put it directly in the configuration:
npx hardhat keystore set DEPLOYER_PRIVATE_KEYnpm run estimate:base
npm run deploy:baseThe deployment script writes public addresses and transaction hashes to
deployments/base.json.
Deployed on June 13, 2026 from
0x2c0A...d42d.
| Contract | Address |
|---|---|
| ProfileRegistry | 0x3Ef1...C1cf |
| MessageBoard | 0xABFD...3FB0 |
| Guestbook | 0xFc39...d0CD |
| ProofRegistry | 0xB6d1...5593 |
| LinkRegistry | 0xd8D0...b5d6 |
| TipJar | 0xcB39...6316 |
| SimplePoll | 0x7204...FC55 |
| AchievementBadges | 0x1239...1E13 |
| AllowlistRegistry | 0x0025...e82e |
| DeploymentDirectory | 0x350a...dD07 |
The full transaction record and constructor arguments are in
deployments/base.json.
- Base mainnet chain ID:
8453 - Base Sepolia chain ID:
84532 - Gas token: ETH
Deployments should be tested locally and on Base Sepolia before mainnet use.