Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Glossary

ERC-725

ERC-725 is an Ethereum standard that defines a smart contract interface for a blockchain-based identity, capable of holding keys, managing claims, and executing actions.
Chainscore © 2026
definition
Ethereum Standard

What is ERC-725?

ERC-725 is an Ethereum standard for creating and managing blockchain-based digital identities, known as proxy accounts or identity contracts.

ERC-725 is an Ethereum Request for Comments (ERC) standard that defines a smart contract interface for managing a blockchain-based identity, also called a proxy account. This identity is a smart contract that can hold assets, execute transactions, and, most importantly, be controlled by a set of verifiable claims and keys. Unlike a standard Externally Owned Account (EOA), an ERC-725 identity is programmable, allowing for complex permission structures and recovery mechanisms, making it a foundational primitive for Self-Sovereign Identity (SSI) on Ethereum.

The standard specifies two primary components: the identity contract itself and claim holders. A claim is a signed attestation from a trusted third party, such as a government or institution, that verifies a specific attribute about the identity (e.g., "is over 18" or "holds a specific license"). The identity contract can store these claims and define rules for which keys are authorized to act based on them. This enables use cases like decentralized autonomous organizations (DAOs) where voting power is granted based on verified member status, or decentralized finance (DeFi) with compliance through verified credentials.

A key technical feature is the separation of the execution layer and the key management layer. The identity contract acts as a proxy, forwarding transaction calls to other contracts or EOAs. Control over this proxy is managed by a set of cryptographic keys, which can be added, removed, or given specific permissions (like only being able to vote). This design allows for social recovery, where a user can designate trusted parties to help recover access if a primary key is lost, significantly improving security and user experience over traditional private key management.

ERC-725 is closely associated with ERC-735, which standardizes the format for adding, removing, and managing verifiable claims within an ERC-725 identity. Together, they form a complete framework for decentralized identity. The standard has been implemented in projects like Origin Protocol and is a conceptual precursor to more recent identity solutions, influencing the development of Ethereum Name Service (ENS) profiles and Soulbound Tokens (SBTs), which represent non-transferable identity attributes.

etymology
STANDARDIZATION

Etymology & Origin

The ERC-725 standard, a foundational proposal for blockchain-based identity, derives its name from the Ethereum Request for Comments (ERC) numbering system and was conceived to solve a core problem: how to manage a persistent, programmable identity on-chain.

The term ERC-725 follows the established Ethereum Improvement Proposal (EIP) nomenclature, where 'ERC' denotes an application-level standard. The number 725 was sequentially assigned, placing it within a series of standards focused on identity and ownership, following ERC-721 (Non-Fungible Tokens) and preceding ERC-777 (Advanced Token Standard). Its creation is credited to Fabian Vogelsteller, the author of the widely-used ERC-20 standard, and Konstantin Tsiolkovski. It was first proposed as an EIP in 2017-2018, aiming to create a generic, smart contract-based account system.

The conceptual origin of ERC-725 lies in the need to move beyond externally owned accounts (EOAs) controlled by private keys. It proposed a new primitive: the identity contract or proxy account. This contract acts as a user's sovereign agent on the blockchain, capable of holding assets, executing logic via its attached KeyManager, and making claims about itself or others. This design was heavily influenced by the idea of Decentralized Autonomous Identity, where control is cryptographic and portable, not tied to a single service provider or key.

The standard's architecture introduced several key concepts that have become pillars of the identity stack. The most significant is the separation of the identity's controller keys from its execution logic. An ERC-725 contract stores a set of public keys or addresses with specific permissions (e.g., MANAGEMENT, ACTION, CLAIM). A separate KeyManager contract (like ERC-734) can then enforce complex rules for how these keys are used. This modularity allows for social recovery, multi-signature schemes, and role-based access, making the identity resilient and flexible.

ERC-725's legacy is profound, as it directly enabled the ERC-735 standard for verifiable claims. Together, they form the technical bedrock for Self-Sovereign Identity (SSI) solutions on Ethereum. While the original EIP is not finalized in its initial form, its core ideas live on and have been refined in subsequent identity-focused standards and implementations, such as those used by the Decentralized Identity Foundation (DIF) and projects building Verifiable Credential ecosystems. It established the blueprint for treating an on-chain identity not as a simple address, but as a programmable, claim-based entity.

key-features
ERC-725

Key Features

ERC-725 is an Ethereum standard for blockchain-based identity, defining a smart contract as a programmable key-value store that can be managed by multiple keys.

01

Decentralized Identifier (DID)

At its core, ERC-725 defines a Decentralized Identifier (DID). This is a unique, self-sovereign identity represented by a smart contract address on the Ethereum blockchain, independent of any central registry. The contract stores claims, credentials, and permissions as key-value pairs, allowing the entity (person, organization, or object) to control and present their own verifiable data.

02

Key Management

A primary feature is its flexible key management system. An ERC-725 identity can have multiple keys with different purposes and permissions, such as:

  • Management Keys: For adding/removing other keys and upgrading the contract.
  • Action Keys: For signing transactions or claims on behalf of the identity.
  • Encryption Keys: For securing private data. This enables multi-signature schemes and role-based access control for a single identity.
03

Claim & Attestation Storage

The standard provides a structured way to store verifiable claims and attestations. Third parties (issuers) can sign claims about the identity (e.g., "KYC verified") and store the signature and data URI in the identity's contract under a specific key. This creates a tamper-proof, on-chain record of credentials that the identity owner can permissionlessly present to verifiers.

04

Execution & Relay

ERC-725v2 introduced the ability for identities to execute arbitrary smart contract calls. This allows the identity to interact directly with dApps, sign transactions, hold assets, and even pay for gas through meta-transactions via a relayer. It transforms the identity from a passive data store into an active blockchain agent capable of participating in the ecosystem.

05

Interoperability with ERC-735

ERC-725 is designed to work in tandem with ERC-735 (Claim Holder). While ERC-725 manages keys and the identity structure, ERC-735 provides a standard interface for adding, removing, and querying claims. This separation of concerns creates a more modular and extensible identity framework, allowing for specialized claim management logic.

06

Use Cases & Applications

The programmable identity enables diverse applications:

  • DeFi: On-chain credit scoring and undercollateralized lending.
  • DAO Governance: Verifiable membership and reputation-weighted voting.
  • Supply Chain: Provenance tracking for assets and entities.
  • Social: Portable, user-owned profiles and credentials across platforms. Projects like Origin Protocol and Kleros have implemented these standards for decentralized marketplaces and dispute resolution.
how-it-works
STANDARD PROTOCOL

How ERC-725 Works

ERC-725 is a pivotal standard for creating and managing blockchain-based identities, functioning as programmable smart contract accounts.

ERC-725, or Ethereum Request for Comments 725, defines a standard for a proxy smart contract account that can be controlled by other smart contracts or external accounts. Its core innovation is the separation of the account's logic and its storage, enabling the account's functionality to be upgraded without changing its on-chain address. This is achieved through a delegatecall to a separate logic contract, allowing the ERC-725 account to execute code as if it were running in its own storage context. The standard specifies a generic key-value store for data and a mechanism for executing arbitrary calls, making it a foundational primitive for decentralized identity.

The standard operates through two primary components: the ERC-725Y data store and the ERC-725X executor. The setData function in ERC-725Y allows the account to store arbitrary data under unique keys, such as claims, attestations, or profile information. The execute function in ERC-725X enables the account to perform actions like transferring assets, calling other contracts, or creating new contracts, all on behalf of the identity. These actions require authorization based on the account's permissions structure, which can be managed by the account's owner or a more complex governance mechanism.

A key application of ERC-725 is in the ERC-734 and ERC-735 standards for decentralized identity management. ERC-734 defines a key manager for controlling the identity, while ERC-735 adds a framework for adding, removing, and querying verifiable claims. Together, they allow an ERC-725 identity to collect signed attestations from other identities (issuers) and present them to verifiers. For example, a university (issuer) could sign a claim attesting to a user's degree, which is stored in the user's ERC-725 account and can be cryptographically verified by a potential employer without revealing unnecessary personal data.

The upgradeability mechanism is central to ERC-725's design. By changing the address of the logic contract (the implementation), the entire behavior of the ERC-725 account can be updated while preserving its state and on-chain relationships. This is critical for long-lived identities that may need to adopt new cryptographic standards or integrate with future protocols. However, this power must be carefully governed, typically by a multi-signature wallet or a decentralized autonomous organization (DAO) that controls the upgrade function, to prevent malicious changes to the account's logic.

In practice, ERC-725 identities are not just for individuals but can represent organizations, assets, machines, or any other entity. They form the backbone of Sovereign Identity systems, where users own and control their verifiable credentials. Projects like Origin Protocol and the Universal Profile standard from LUKSO have built extensive identity frameworks atop ERC-725, demonstrating its utility for social profiles, asset ownership records, and compliant DeFi interactions. Its design ensures these digital identities are persistent, interoperable, and capable of interacting directly with the broader Ethereum ecosystem.

code-example
CORE INTERFACE EXAMPLE

ERC-725: The Identity Standard

ERC-725 is a pivotal Ethereum standard that defines a smart contract-based framework for managing on-chain identities, enabling entities to own and control their own verifiable data.

ERC-725 is an Ethereum Request for Comments (ERC) standard that defines a smart contract interface for managing a decentralized identity (DID) on the blockchain. At its core, an ERC-725 contract acts as a programmable, self-sovereign wallet for an entity—be it a person, organization, or machine—allowing it to own cryptographic assets, sign transactions, and, most importantly, hold and present verifiable claims. This standard provides the foundational building block for a trustless identity layer, where the control of personal data shifts from centralized databases to the individual.

The standard's architecture is built around two primary functions: key management and claim management. The contract can be controlled by multiple keys with different permissions (e.g., MANAGEMENT keys for ownership, ACTION keys for daily operations). For claims, it can hold attestations—signed statements from other identities—in a structured format defined by the related ERC-735 standard for claim holders. This creates a system where an identity can present a claim, like a university degree signed by an institution's ERC-725 identity, to a third party without revealing unnecessary personal information.

A key technical feature is the execute function, which allows the identity contract to perform arbitrary calls to other contracts or transfer assets, effectively making it a proxy account. This enables complex, automated behaviors governed by the identity's keys. For example, an organization's identity contract could automatically pay invoices upon receiving a verified claim of completion. The standard's flexibility has made it a cornerstone for projects in decentralized autonomous organizations (DAOs), verifiable credentials, and soulbound tokens (SBTs), which are often implemented as non-transferable claims within this framework.

The evolution of identity standards is ongoing. While ERC-725v2 introduced significant gas optimizations and a more modular design, the broader ecosystem is converging around the Ethereum Attestation Service (EAS) and the Verifiable Credentials (VC) data model from the W3C. These newer systems often use ERC-725-like contracts as the issuer or holder of credentials, demonstrating the standard's enduring influence. Its primary implementation can be found in the ERC-725 Alliance repositories, which provide the core smart contracts and reference implementations for developers.

examples
ERC-725 IN ACTION

Examples & Use Cases

ERC-725 is a foundational standard for blockchain-based identity. These examples showcase how its ability to manage keys, claims, and permissions enables real-world applications.

04

Professional Credentialing

Institutions can issue tamper-proof credentials to an individual's ERC-725 identity. For example:

  • A university issues a degree attestation.
  • A licensing board issues a professional certification.
  • An employer issues an employment verification. The holder can then present these cryptographically signed claims to anyone without relying on the original issuer's ongoing availability.
05

Machine & IoT Identity

ERC-725 enables autonomous devices to have a blockchain identity. A smart sensor or IoT device can be represented by a contract that:

  • Holds a unique identifier and a set of operational keys.
  • Attests to the data it generates, creating a verifiable provenance trail.
  • Can enter into automated agreements (via smart contracts) based on its permissions and owned assets.
06

Compliance & KYC/AML

Financial institutions can use ERC-725 for privacy-preserving compliance. A user's identity contract can hold encrypted KYC attestations from a regulated provider. The user can then:

  • Prove they are verified without revealing underlying documents.
  • Grant temporary access to specific data for a transaction.
  • Maintain control over their data, revoking access at any time by changing the contract's keys.
ecosystem-usage
ERC-725

Ecosystem Usage

ERC-725 is an Ethereum standard for managing on-chain identities, enabling smart contracts to act as programmable, self-sovereign entities. Its primary use cases extend beyond simple wallets to decentralized identity, reputation systems, and asset management.

security-considerations
ERC-725

Security Considerations

While ERC-725 provides a powerful framework for on-chain identity, its flexibility introduces unique security vectors that developers and key managers must address.

01

Key Management & Compromise

The primary security model revolves around management keys. A compromised management key can execute any action on the identity, including transferring assets or changing other keys. Best practices include:

  • Using multi-signature schemes or hardware security modules (HSMs) for high-value keys.
  • Implementing execution thresholds to require multiple confirmations for sensitive operations.
  • Establishing clear key recovery procedures, such as using social recovery contracts or time-locked backups.
02

Delegate Call & Smart Contract Risks

ERC-725 identities can execute arbitrary calls via execute. If a delegatecall is made to a malicious or vulnerable contract, the identity's storage can be hijacked. Critical mitigations are:

  • Rigorously whitelisting or validating the to address and data payload for execute operations.
  • Avoiding delegatecall unless absolutely necessary and the target is a trusted, audited contract.
  • Implementing transaction replay protection to prevent signed messages from being reused on different chains or contexts.
03

Claim & Attestation Integrity

Claims (ERC-735) are signed statements about the identity. Security depends on the trustworthiness of the claim issuer and the cryptographic integrity of the signature. Risks include:

  • Spoofed Issuers: Verifiers must check the issuer's signing key against a known, trusted registry.
  • Revocation Lag: A revoked claim may still be considered valid until the revocation transaction is mined. Systems should check the on-chain revocation status.
  • Expired Claims: Claims have an expiry; verifiers must check the validUntil timestamp.
04

Upgradability & Standard Compliance

Many ERC-725 implementations are upgradeable proxies. This introduces risks:

  • Proxy Admin Control: The entity controlling the proxy upgrade mechanism has ultimate power and is a central point of failure.
  • Storage Collisions: Upgrades must carefully manage storage layout to avoid corrupting existing data.
  • Standard Deviations: Not all implementations fully comply with the ERC-725 specification, leading to interoperability issues and unexpected behavior. Always audit the specific implementation used.
05

Front-running & Transaction Ordering

On public blockchains, pending transactions are visible. This can lead to attacks:

  • Key Change Front-running: An attacker seeing a pending transaction to add a new management key could front-run it with a transaction from a compromised key to drain assets first.
  • Claim Revocation Race: A malicious claim issuer could revoke a claim after it has been submitted for verification but before the verification transaction is processed. Mitigations include using commit-reveal schemes or private mempools for sensitive operations.
COMPARISON

ERC-725 vs. Other Identity Primitives

A technical comparison of on-chain identity standards based on core architectural features and capabilities.

Feature / MetricERC-725 (Ethereum)DID Documents (W3C)Soulbound Tokens (SBTs)

Core Data Model

Key-Value Store with Permissions

JSON-LD Document

Non-Transferable NFT

On-Chain Verification

Decentralized Identifiers (DIDs)

Dynamic Attribute Updates

Delegated Key Management

Primary Use Case

Smart Contract Wallets, Verifiable Credentials

Web Authentication, Verifiable Credentials

Reputation, Memberships, Achievements

Standardization Body

Ethereum ERC Process

W3C

Ethereum ERC Process (ERC-5114)

Gas Cost for Update

~50k-100k gas

N/A (off-chain)

N/A (immutable post-mint)

evolution
ERC-725 STANDARD

Evolution: From v1 to v2

The ERC-725 standard has evolved from a foundational identity proposal into a core component of the decentralized identity and account abstraction landscape, with significant architectural changes between its versions.

ERC-725 v1 (ERC-725/735) was a pioneering standard proposed by Fabian Vogelsteller in 2017-2018, establishing the concept of a blockchain-based, self-sovereign identity. It defined a smart contract account, known as a proxy account or identity, that could hold claims (attestations from third parties) and manage a set of public keys for authentication. This version introduced a modular architecture where the identity contract could execute arbitrary calls through its keys, laying the groundwork for programmable, blockchain-native identities. However, its implementation was relatively monolithic, bundling claim management and execution logic together.

ERC-725 v2 (ERC-725Y) represents a major refactor and simplification, focusing on a generic, lightweight, and highly flexible key-value data store. The core innovation is the setData and getData functions, which allow the identity contract to store arbitrary data under unique keys. This decouples the storage mechanism from the logic, enabling the contract to act as a universal profile that can be interpreted by other standards (like ERC-734 for key management or ERC-735 for claims). This shift makes v2 a foundational primitive for Smart Contract-Based Accounts (SCAs) and ERC-4337 account abstraction, where the contract's data can represent owner permissions, linked social profiles, or verification credentials.

The key technical evolution is from a prescribed structure to a generic data schema. Where v1 had specific functions for adding claims and keys, v2 provides a blank canvas. This allows developers to define their own data structures without requiring a new standard. For example, a Decentralized Identifier (DID) document can be stored under a specific key, and a Verifiable Credential can be stored under another. This flexibility has made ERC-725 v2 the backbone of identity implementations like the ERC-5805 (Governance) and proposals for soulbound tokens (SBTs), where the contract holds immutable, non-transferable attestations.

In practice, the transition signifies a move from a standalone identity system to a core building block in a modular stack. ERC-725 v2 contracts are now commonly used as the account contract in ERC-4337 bundler transactions, holding the user's verification logic and preferences. The standard's evolution mirrors the Ethereum ecosystem's broader shift towards interoperability and composability, where simple, robust primitives are combined to create complex applications like decentralized social graphs, professional credential networks, and programmable on-chain personas.

ERC-725

Frequently Asked Questions

ERC-725 is a core standard for managing blockchain-based identities. These questions cover its purpose, technical implementation, and practical applications.

ERC-725 is an Ethereum standard that defines a smart contract interface for managing a blockchain-based identity, known as a Decentralized Identifier (DID). It works by establishing a smart contract wallet that can hold claims, attestations, and other data linked to an identity. The core mechanism involves two main functions: setData(bytes32 key, bytes value) to store arbitrary information, and execute(uint256 operationType, address to, uint256 value, bytes data) to perform actions on behalf of the identity. This allows the identity to own assets, interact with dApps, and manage permissions in a self-sovereign manner.

ENQUIRY

Get In Touch
today.

Our experts will offer a free quote and a 30min call to discuss your project.

NDA Protected
24h Response
Directly to Engineering Team
10+
Protocols Shipped
$20M+
TVL Overall
NDA Protected Directly to Engineering Team