HomeEIPs
EIPsERC-5313
ERC-5313

Light Contract Ownership

An interface for identifying ownership of contracts
FinalStandards Track: ERC
Created: 2022-07-22
Requires: EIP-165, EIP-173
William Entriken (@fulldecent)
DiscussionsOriginal linkEdit
1 min read

ERC-5313 is a specification that defines the minimum interface required to identify an account that controls a contract. It is a slimmed-down alternative to EIP-173 and is intended to minimize the number of functions in the interface while maintaining backwards compatibility with existing contracts. The key function in this interface is "owner", which returns the address of the owner of the contract. However, because this specification does not extend EIP-165, calling this EIP’s owner function cannot result in complete certainty that the result is indeed the owner. This means that if the interrogator is sending a valuable NFT to the identified owner of any contract on the network, then the risk is heightened. The standard can be (and has been) extended by other standards to add additional ownership functionality. Implementing EIP-165 could be a valuable addition to this interface specification, but this EIP is being written to codify existing protocols that connect contracts (often NFTs), with third-party websites (often a well-known NFT marketplace). Every contract that implements EIP-173 already implements this specification.

Video
Anyone may contribute to propose contents.
Go propose
Original

Abstract

This specification defines the minimum interface required to identify an account that controls a contract.

Motivation

This is a slimmed-down alternative to EIP-173.

Specification

The key word “MUST” in this document is to be interpreted as described in RFC 2119.

Every contract compliant with this EIP MUST implement the EIP5313 interface.

// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.15; /// @title EIP-5313 Light Contract Ownership Standard interface EIP5313 { /// @notice Get the address of the owner /// @return The address of the owner function owner() view external returns(address); }

Rationale

Key factors influencing the standard:

  • Minimize the number of functions in the interface
  • Backwards compatibility with existing contracts

This standard can be (and has been) extended by other standards to add additional ownership functionality. The smaller scope of this specification allows more and more straightforward ownership implementations, see limitations explained in EIP-173 under "other schemes that were considered".

Implementing EIP-165 could be a valuable addition to this interface specification. However, this EIP is being written to codify existing protocols that connect contracts (often NFTs), with third-party websites (often a well-known NFT marketplace).

Backwards Compatibility

Every contract that implements EIP-173 already implements this specification.

Security Considerations

Because this specification does not extend EIP-165, calling this EIP's owner function cannot result in complete certainty that the result is indeed the owner. For example, another function with the same function signature may return some value that is then interpreted to be the true owner. If this EIP is used solely to identify if an account is the owner of a contract, then the impact of this risk is minimized. But if the interrogator is, for example, sending a valuable NFT to the identified owner of any contract on the network, then the risk is heightened.

Copyright and related rights waived via CC0.

Further reading
Anyone may contribute to propose contents.
Go propose
Adopted by projects
Anyone may contribute to propose contents.
Go propose

Not miss a beat of EIPs' update?

Subscribe EIPs Fun to receive the latest updates of EIPs Good for Buidlers to follow up.

View all
Serve Ethereum Builders, Scale the Community.
Resources
GitHub
Supported by