Contract architecture
Hyndle separates ownership, minting, renewal, resolution, metadata, and reservation payment.
| Contract | Responsibility |
|---|---|
HyndleNames | ERC-721 ownership, ERC-2981 royalty, lifecycle, transfer rules, and deterministic token identity |
HyndleMintController | EIP-712 authorization, exact registration payment, replay protection, mint, and reclaim |
HyndleRenewalController | Exact renewal payment and expiration extension |
HyndleResolver | Current-generation address and text records |
HyndleMetadataRenderer | Pure on-chain SVG and JSON metadata rendering |
HyndlePaymentCollector | Non-refundable reservation payment intents and payment events |
Pricing
HyndleMintController and HyndleRenewalController share the HyndlePricing Solidity library. The registry itself is nonpayable and does not custody registration or renewal revenue.
Administrative controls
Ownership uses Ownable2Step where applicable. Controller, signer, revenue receiver, and royalty receiver changes are security-sensitive operations and must follow a verified two-step process.
Events
The backend reconciles application state from contract receipts and indexed events. Database state is never sufficient proof that a mint or payment occurred.