Ethereum · smart contract · Apr 2022
Not NASA — 1,093-piece hand-drawn ERC-721 launch.
Smart contract architecture, payment splitting, and mint infrastructure for Domingo's hand-drawn Ethereum PFP collection. 1,093 tokens minted, ~100 ETH raised at mint, ~490 ETH in secondary volume, 468 holders on-chain today — contract verified on Etherscan.
By the numbers
1,093
ERC-721 tokens minted · Apr 4, 2022
485 ETH
All-time secondary volume · verified
468
Current holders · Etherscan
PaymentSplitter
3-party rev share on-chain
The problem
Domingo (NOTACOMPANY) needed more than a standard ERC-721 deploy — the project had three parties sharing the proceeds, a presale phase for early supporters, and a hard requirement for clean, verifiable contract code that both the artist and community could trust.
Hand-drawn PFPs have no on-chain generation step, but the mint infrastructure still needed to handle allowlist gating, per-wallet caps, and a two-phase launch without leaking which tokens were premium before reveal.
Revenue splitting across three addresses had to happen automatically on-chain — no manual transfers, no trust assumptions. If the mint sold out, every party received their share by releasing from the contract directly.
What I did
Four contract decisions that held.
PaymentSplitter for automatic three-way revenue split
The contract deployed with a PaymentSplitter holding three beneficiary addresses at 850/75/75 shares (85%, 7.5%, 7.5%). Any ETH released from the contract distributes proportionally — no middleman, no manual split, fully verifiable on Etherscan. Each party can trigger their own release independently.
Two-phase launch: presale then public
Presale at 0.1 ETH for allowlisted addresses, public at 0.09 ETH. The contract stores both price constants and gate-checks the caller's status per phase. Phase transitions are owner-toggled — the team controls timing without redeploying anything.
Per-transaction cap and supply hard limit
Max 5 tokens per transaction enforced on-chain, not just on the front end. Max supply capped at 1,097 with the contract doing the final gate — the front end can never oversell even if the UI state is stale.
Source code verified on Etherscan, MIT licensed
Full source verification against the deployed bytecode — any holder or potential buyer can read exactly what the contract does. MIT license, Solidity 0.8.7, exact match verified. The openness was a deliberate signal for a community-run creative project.
What transferred
Patterns still load-bearing in 2026.
- PaymentSplitter is now my default for any multi-party NFT launch. Manual splits fail; on-chain splits don't.
- Two-phase launches (presale + public) with separate price constants in the contract are simpler to audit and safer to operate than percentage-based discount logic.
- Etherscan verification from day one builds more trust with collectors than anything in a whitepaper. Do it before you announce the contract.
Stack
- Solidity 0.8.7
- ERC-721 (OpenZeppelin)
- PaymentSplitter (OpenZeppelin)
- Allowlist / presale gating
- Hardhat + Etherscan verification
- IPFS metadata
Contract
0xdc3e...b970 ↗Free download · 6 pages · PDF
From idea to mainnet, in five phases.
Tokenomics, smart contracts, community, go-to-market — the battle-tested checklist for launching a web3 project properly. Plus the mistakes that kill projects, and the one thing that matters most.
No spam. You also get the Sunday note — unsubscribe in one click.
Keep reading