You can edit almost every page by Creating an account and confirming your email.

ERC-725

From EverybodyWiki Bios & Wiki




ERC-725 is a draft standard for Ethereum smart-contract accounts. It defines a way for a smart contract to act as a general-purpose blockchain account, with the ability to execute actions and store data. The standard consists of two main parts: ERC725X, which lets a smart contract execute operations, and ERC725Y, which gives a smart contract a general key-value data store.[1]

The standard was created in 2017 by Fabian Vogelsteller and Tyler Yasaka.[1] Vogelsteller had previously co-authored ERC-20, the Ethereum token standard widely used during the growth of initial coin offerings.[2]

Background

Ethereum has two basic types of accounts. An externally owned account is controlled by a private key, while a contract account is controlled by smart-contract code.[3] Most ordinary wallet addresses on Ethereum are externally owned accounts. They can hold assets and submit transactions, but they do not have built-in programmable rules, recovery features or a standard place to store profile-style information.[3]

Contract accounts can contain more complex logic, but without a shared standard, different applications may not know how to read account data or interact with account functions in the same way. ERC-725 was proposed to create a common interface for smart-contract accounts that could both perform actions and hold structured information.[1]

The standard was originally discussed in connection with blockchain-based digital identity. A 2017 article in CoinDesk described ERC-725 as a proposal for standardizing identity-related smart-contract actions, such as adding claims to a contract and retrieving those claims later.[4] In this context, an account could represent a person, organization, device or object, rather than only functioning as a wallet address.[4]

Purpose

ERC-725 was designed to make smart-contract accounts more interoperable. Interoperability means that different applications can recognize and interact with the same type of account without requiring a custom integration for every project.[1] A shared interface can make it easier for wallets, decentralized applications and other smart contracts to understand what an account can do and where account-related data is stored.

A simple way to understand ERC-725 is to separate the two questions it answers:

  • What can the account do? ERC725X defines how the account can execute actions, such as calling another smart contract, transferring the network's native token or deploying a new contract.[1]
  • What can the account say about itself? ERC725Y defines how the account can store and expose data, such as metadata, profile information, supported standards or application-specific records.[1]

This makes ERC-725 different from token standards such as ERC-20 and ERC-721. ERC-20 and ERC-721 define how tokens behave. ERC-725 instead defines capabilities for an account-like smart contract.[1][2]

Specification

ERC-725 is divided into two interfaces: ERC725X and ERC725Y.[1] They can be used together in a smart-contract account, but the data-storage component can also be used separately in other smart contracts.[1]

ERC725X

ERC725X is the execution part of ERC-725. It allows a smart contract to send commands to other addresses or contracts. These commands can include transferring the native blockchain token, calling functions on another smart contract or deploying a new smart contract.[1]

For a non-technical reader, ERC725X can be understood as the part of the account that lets it act. Instead of a private-key wallet directly sending every transaction, the smart-contract account can receive an instruction and then carry out an operation according to its own rules.[1]

The standard defines operation types including `CALL`, `CREATE`, `CREATE2`, `STATICCALL` and `DELEGATECALL`.[1] It also includes a batch execution function, which allows multiple operations to be executed together.[1]

ERC725Y

ERC725Y is the data-storage part of ERC-725. It gives a smart contract a general key-value store.[1] A key-value store is a simple data structure in which each item of data is saved under a unique key. This is similar in concept to a dictionary, where a word points to a definition.

In ERC725Y, the keys are `bytes32` values and the stored values are arbitrary bytes.[1] This flexible format allows different standards or applications to define what particular keys mean. For example, one key might point to profile metadata, another might indicate which standards the contract supports, and another might store application-specific information.

ERC725Y is significant because ordinary Ethereum accounts do not have a standard place to store readable account data. With ERC725Y, data can be attached to a smart contract after deployment and can be read by wallets, applications or other smart contracts.[1]

Relationship to digital identity

ERC-725 was first associated with blockchain identity because it allows an account to hold information about itself. Instead of treating an address only as a destination for assets, ERC-725 allows a smart-contract account to become a container for data and actions.[1][4]

This account model can support identity-like use cases. For example, a smart-contract account may be used to represent a user profile, an organization, a device, a product or another entity. The account can hold data and interact with applications through standardized functions.[4]

ERC-725 is not the same as a complete identity system. It does not by itself define legal identity, credential issuance or verification rules. Instead, it provides technical building blocks that other identity, profile or account systems can use.[1]

Relationship to account abstraction

ERC-725 and ERC-4337 are related to the broader idea of smart-contract accounts, but they address different parts of the problem.

ERC-725 defines what a smart-contract account can contain and how it can expose account functionality: execution through ERC725X and data storage through ERC725Y.[1] ERC-4337 defines an account-abstraction system for Ethereum that avoids consensus-layer protocol changes. It introduces a transaction flow based on UserOperation objects, bundlers and an EntryPoint contract.[5]

ERC-4337 focuses on how smart-contract accounts submit and validate transactions. Its use cases include custom signature schemes, multisignature wallets, custom account recovery, sponsored transactions, bundled transactions and paying transaction fees in ERC-20 tokens.[5] ERC-725 focuses on the account contract as an object with standardized execution and data-storage abilities.[1]

The two approaches can be viewed as complementary. ERC-4337 describes an infrastructure layer for using smart-contract accounts on Ethereum, while ERC-725 describes an account interface that can be used to build profile-like or data-rich contract accounts.[1][5]

Strengths and limitations

ERC-725's main strength is that it gives smart-contract accounts a flexible and standardized structure. ERC725X allows an account to act through smart-contract execution, while ERC725Y gives the account a place to store data that applications can read.[1]

This can help address several limitations of ordinary private-key accounts. A standard smart-contract account can support richer account logic, profile information, metadata and interaction patterns than a plain externally owned account.[1][3] It can also make account data easier for applications to discover, because developers can agree on where certain information is stored and how it should be read.[1]

The standard does not, by itself, solve every wallet or user-experience problem on Ethereum. Features such as account recovery, permissions, transaction sponsorship and fee abstraction require additional standards, contracts or infrastructure.[5] ERC-725 also creates security responsibilities for implementers. Because ERC725X allows generic execution, implementations must guard against re-entrancy, malicious calls and dangerous use of `DELEGATECALL`.[1]

LUKSO and Universal Profiles

The ERC-725 specification states that the account version of the standard is standardized under LSP0-ERC725Account.[1] LSP0 is part of the LUKSO Standard Proposals, a standards system used for smart-contract accounts, metadata, permissions, digital assets and related interactions on the LUKSO blockchain.[6]

In LUKSO's standards, LSP0 uses ERC725X for execution and ERC725Y for key-value data storage.[7] Other LUKSO standards build around this account model. For example, LSP2 defines a JSON schema for interpreting ERC725Y data keys, LSP3 defines profile metadata, LSP6 defines permission management, and LSP25 defines relayed execution for transactions paid on behalf of users.[6]

LUKSO's Universal Profiles are smart-contract-based accounts built around this model. They combine an account, profile metadata and interaction permissions into one on-chain account structure.[8] Universal Profiles went live on LUKSO mainnet in November 2023.[9]

Adoption

ERC-725 has had more limited direct adoption than ERC-20. By 2023, it had not become one of Ethereum's dominant standards, although projects such as Origin Protocol had implemented it.[10]

The most visible later use of the ERC-725 account model is within LUKSO's LSP0 ERC725Account and Universal Profiles.[1][7] This connects ERC-725 to a broader trend toward smart-contract accounts and improved blockchain account usability.

Smart-contract accounts have become a larger area of development across Ethereum and related ecosystems. By 2026, Ethereum's account-abstraction documentation described ERC-4337 as widely adopted, with more than 26 million smart accounts deployed and more than 170 million UserOperations processed.[11] ERC-725 is separate from ERC-4337, but both standards reflect a shift away from accounts that are controlled only by a single private key and toward programmable account systems.[1][5]

See also

References

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 Vogelsteller, Fabian; Yasaka, Tyler (2 October 2017). "ERC-725: General data key/value store and execution". Ethereum Improvement Proposals. Retrieved 13 June 2026.
  2. 2.0 2.1 Vogelsteller, Fabian; Buterin, Vitalik (19 November 2015). "ERC-20: Token Standard". Ethereum Improvement Proposals. Retrieved 13 June 2026.
  3. 3.0 3.1 3.2 "Ethereum accounts". ethereum.org. Retrieved 13 June 2026.
  4. 4.0 4.1 4.2 4.3 Hertig, Alyssa (4 December 2017). "The Father of the ICO Is All About Identity Now". CoinDesk. Retrieved 13 June 2026.
  5. 5.0 5.1 5.2 5.3 5.4 Buterin, Vitalik; Weiss, Yoav; Tirosh, Dror; Nacson, Shahaf; Forshtat, Alex; Gazso, Kristof; Hess, Tjaden (29 September 2021). "ERC-4337: Account Abstraction Using Alt Mempool". Ethereum Improvement Proposals. Retrieved 13 June 2026.
  6. 6.0 6.1 "LUKSO Standard Proposals". LUKSO Docs. Retrieved 13 June 2026.
  7. 7.0 7.1 "LSP0 - ERC725 Account". LUKSO Docs. Retrieved 13 June 2026.
  8. Nijkerk, Margaux (12 September 2023). "Fabian Vogesteller's Lukso Blockchain Adds 'Universal Profiles,' in Push for 'Fancy' Ethereum". CoinDesk. Retrieved 13 June 2026.
  9. Nijkerk, Margaux (8 November 2023). "Lukso Blockchain Releases Universal Profiles on Mainnet". CoinDesk. Retrieved 13 June 2026.
  10. Nijkerk, Margaux (5 April 2023). "Inventor of Ethereum's ERC-20 Token Standard Plans New Blockchain 'LUKSO' for Creative Types". CoinDesk. Retrieved 13 June 2026.
  11. "Account abstraction". ethereum.org. Retrieved 13 June 2026.


This article "ERC-725" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:ERC-725. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.