GIP-130: Changes to gnosis.eth

GIP-130: Changes to gnosis.eth

  • In Favour
  • Against
0 voters
GIP: 130
title: Changes to gnosis.eth
author: Philippe Schommers <philippe@gnosis.io>
status: Draft
type: Meta
created: 2025-08-12

Summary

On Jun 9, 2025, we stopped resolving Genome names on gnosis.eth, while keeping the gno.eth domain intact. In short, [name].gno.eth will still resolve to [name].gno, but [name].gnosis.eth will not.

Rationale

Since GIP-90, the gnosis.eth domain was configured to resolve Genome domains. Concretely speaking, anyone could buy a domain name on Genome, say [name].gno, and the configured fields (address, website, avatar, etc) would also resolve on [name].gnosis.eth. This is quite problematic, as gnosis.eth should only be used for official purposes, and these Genome domains could be used for phishing attacks and other nefarious purposes.

For example, dao.gno (and thus dao.gnosis.eth) could be controlled by ill-intentioned parties. Some other examples include delegates.gnosis.eth (actually registered on the ENS resolver), forum.gnosis.eth, pay.gnosis.eth and any other official looking names. The phishing aspect is why this was pushed through without a GIP, as we did not want to give ideas to bad actors.

In addition to gnosis.eth, the gno.eth domain was also set up to resolve Genome names. It’s the natural name to use in any case, as one simply has to add .eth at the end of their .gno name to make it work universally. If you own [name].gno on Genome, it’s natural and makes more sense to use [name].gno.eth rather than [name].gnosis.eth. This functionality was already available and stays unchanged.

Execution

Given the potential for abuse, especially targeting official-looking domains, the core team decided to act swiftly and temporarily suspend such resolutions. On Jun 9, 2025, we asked Gateway to run a modified version of the Genome CCIP Resolver that the gnosis.eth ENS uses to resolve names. The latter was initially configured after GIP-90 was approved. The new version simply doesn’t resolve anything for gnosis.eth, except for vpn.gnosis.eth, which is currently being used to host the Gnosis VPN website.

Next steps

Currently, Gateway effectively controls gnosis.eth. For example, our Snapshot space can be configured by changing one text field on gnosis.eth. While we trust Gateway, this is too much of a risk for the DAO in our opinion, and opens it up for a variety of attacks.

To fully address this issue, we plan to transition gnosis.eth back to the standard ENS Resolver. This will effectively restore all the power exclusively to the DAO, ensuring that no external process can alter the domain.

This proposal

Concretely speaking, this is the list of transactions that we are planning to execute in this proposal in order to move gnosis.eth back to the ENS resolver. We are taking this opportunity to also upgrade to the latest version of the Public Resolver, hence why all previously existing records are being recreated. The Twitter handle was also updated to @GnosisDAO, as @gnosisPM has been deprecated.

The snapshot field has been set to ipfs://QmQcMqCNepYVvUZiHzSL5FL43f646cgCY46sgoHmHdM551. This is different from the previous version (ipfs://QmWUemB5QDr6Zkp2tqQRcEW1ZC7n4MiLaE6CFneVJUeYyD), because the Snapshot space had actually been updated in https://app.safe.global/transactions/tx?safe=eth:0x0da0c3e52c977ed3cbc641ff02dd271c3ed55afe&id=multisig_0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe_0x526d28f2c749e2319851dfa2440a04e01ad80ecaa2ec5bf8ac84cf6529e3da9a to use the following configuration: https://bafkreicusfemxee7rwp42f3owjnclh2nsz5avcesrcme5oaol3qcxviwna.ipfs.4everland.io/.

Proposed transactions:

[
    {
        "to": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
        "operation": "0",
        "value": "0",
        "method": "setResolver(bytes32 node,address resolver)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setAddr(bytes32 node, address a)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "0x0da0c3e52c977ed3cbc641ff02dd271c3ed55afe"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setAddr(bytes32 node, uint256 coinType, bytes a)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            60,
            "0x0da0c3e52c977ed3cbc641ff02dd271c3ed55afe"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setAddr(bytes32 node, uint256 coinType, bytes a)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "2147483748",
            "0x0da0c3e52c977ed3cbc641ff02dd271c3ed55afe"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "com.twitter",
            "GnosisDAO"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "com.github",
            "gnosis"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "com.discord",
            "https://chat.gnosis.io"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "avatar",
            "ipfs://QmVD5UHMZfvsuXJRdVcbnmrPgsUFjDjpSXAmfdv3W7MN42"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "url",
            "https://gnosis.io"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "quorum",
            "75000"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "daorequirements",
            "ipfs://QmZXAbYyDt7WUq2HqcvQrnxw7zXGPCGJvQXSrNsjik49Uy"
        ]
    },
    {
        "to": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
        "operation": "0",
        "value": "0",
        "method": "setText(bytes32 node, string key, string value)",
        "params": [
            "0x77651e2c25d2b7b073d1068420770f96a43563e74df60e234b2433b2be66e29e",
            "snapshot",
            "ipfs://QmQcMqCNepYVvUZiHzSL5FL43f646cgCY46sgoHmHdM551"
        ]
    }
]

Governance Considerations

Maintaining the integrity and security of critical infrastructure may, in rare instances, require prompt and discretionary action by the core team or core developers—particularly in cases where there is a potential risk to the DAO or the broader ecosystem. While decisions affecting governance should ideally be made through open proposals and community deliberation, extraordinary circumstances—such as critical security threats—may necessitate temporary unilateral intervention under a defined mandate.

To support responsible action in such situations, we intend to introduce a separate GIP outlining a clear policy framework that would authorize limited unilateral measures by the core team. This framework will include strict conditions on when emergency action can be taken, obligations to notify the community through a post-action report and provide for retrospective DAO review and oversight.

We remain committed to transparency, accountability, and decentralization. Any such actions will be taken with careful judgment, clear communication, and a commitment to respect the DAO’s governance mechanisms . We welcome community feedback to help strike the right balance between rapid response capability and decentralized governance.

4 Likes

We agree that proper maintenance of the gnosis.eth domain is important for security, to avoid the risk of exploiting gaps in our coverage to defraud or harm Gnosis users. We see no reason not to fully support this proposal.

We’re also interested to see this subsequent GIP, and to provide critical feedback to ensure any delegation of responsibility is constrained to what’s necessary and proper to protect the decentralisation of our organisation. If you would like any prior input from delegates before posting on the forum, please don’t hesitate to contact us using the details provided in our delegate platform.

1 Like