Skip to content

Conversation

@nxt3d
Copy link

@nxt3d nxt3d commented Dec 17, 2025

Summary

This PR adds a new ENSIP that enables contracts to declare their own reverse names using ERC-8049 contract metadata. By storing a reverse name in a predictable Diamond Storage location, contracts can self-declare their ENS name during deployment, enabling trustless and permissionless reverse name registration.

Key Features

  • Contracts can declare their reverse ENS name during initialization using ERC-8049 metadata
  • Uses predictable Diamond Storage locations for trustless verification
  • Permissionless registration model - any account can register the declared name
  • Ideal for admin-free contracts that don't have an owner to perform separate registration

Specification Details

  • Metadata key: "eth.ens.reverse-name"
  • Storage location: ERC-8049 Optional Diamond Storage extension
  • Value format: UTF-8 bytes representation of the ENS name (e.g., bytes("mycontract.eth"))

This ENSIP enables contracts to declare their own reverse names using ERC-8049 metadata with Optional Diamond Storage extension. Contracts can self-declare their ENS name during deployment, and any account can then trustlessly verify and permissionlessly register the contract's reverse name in the registrar.

Key features:
- Contracts declare reverse names via ERC-8049 metadata at key 'eth.ens.reverse-name'
- Predictable storage locations enable trustless verification
- Permissionless registration removes burden from contract deployers
- Compatible with ENSIP-19
- Includes verified storage slot calculations
- Note that contract owner may not always exist
- Mention alternative of making custom external call in constructor
- Change 'ABI-encoded' to 'stored as bytes' for value format (correct terminology)
- Clarify single-slot verification applies to names under 32 characters
- Update rationale to emphasize admin-free contracts use case
@gskril gskril requested a review from Arachnid December 17, 2025 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant