Architecture
System architecture
How the web app, optional read API, wallet, contracts, and Uniswap V2 pair fit together.
D17 separates display, signing, global deployment, per-launch accounting, participant custody, and liquidity management.
D17FactoryValidates launch configuration and records canonical launches and lockers.
D17LaunchRuns rounds, refunds, finalization, settlement, and launch accounting.
D17LockerParticipant-owned custody for committed WETH, refunds, tokens, and settlement.
D17TokenFixed-supply launch token with a pre-trading transfer and burn gate.
D17LiquidityVaultCreates the official pool and permanently holds protocol LP tokens.
Factory satellitesPinned deployment helpers create tokens, launches, lockers, and vaults.
Write path
participant/deployer
↓ reviews and signs
browser wallet
↓ Ethereum transaction
factory / locker / launch / vault
↓ public events and state
EthereumNeither the web server nor the optional read API sits in the transaction path.
Read paths
Direct RPC modeThe browser reads public chain state. No D17 backend is required.
Optional API modeA self-hosted read index serves snapshots and realtime notifications.
The same web application supports both. Direct RPC prioritizes independence and simplicity. API mode prioritizes indexed first-load snapshots, launch discovery, server-side SVG handling, application WebSocket notifications, and lower browser RPC volume.
Ownership boundaries
- Factory suite: temporary ownership exists only to pin deployment dependencies. Public deployments renounce ownership after wiring.
- Launch: immutable launch configuration and permissionless lifecycle actions.
- Locker: immutable participant owner; owner-only commit/refund/withdraw, plus permissionless post-grace settlement that cannot redirect proceeds.
- Token: minting closes and ownership is renounced during launch creation.
- Vault: no administrative LP withdrawal path.