Skip to content

Conversation

@frozeman
Copy link

@frozeman frozeman commented Jul 29, 2025

ERC725 is the foundation for Universal Profiles and heavily used within the LUKSO ecosystem as a foundation for most LUKSO Standard Proposals (LSPs).

This update changes the interface IDs, which have been outdated in this document since over a year. And rearranges the document for better readability.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Jul 29, 2025

File ERCS/erc-725.md

Requires 1 more reviewers from @g11tech, @SamWilsn, @xinbenlv

@eip-review-bot eip-review-bot changed the title Updated ERC725 interface IDs and readability Update ERC-725: Move to Review Jul 29, 2025
@github-actions github-actions bot added the w-ci label Jul 29, 2025
@github-actions github-actions bot removed the w-ci label Jul 29, 2025
@github-actions github-actions bot added the w-ci label Jul 29, 2025
@github-actions github-actions bot added w-ci and removed w-ci labels Jul 29, 2025
@frozeman
Copy link
Author

@g11tech, @SamWilsn, @xinbenlv how can i reference another EIP from an ERC, or vis a versa?
I am getting EIP validator errors, that are basically unfixable.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
Copyright and related rights waived via CC0.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the exact waiver from the template.

The initial motivation came out of the need to create a smart contract account system that's flexible enough to be viable long-term but also defined enough to be standardized. They are a generic set of two standardized building blocks to be used in all forms of smart contracts.

This standard consists of two sub-standards, a generic data key/value store (`ERC725Y`) and a generic execute function (`ERC725X`). Both of these in combination allow for a very flexible and long-lasting account system. The account version of `ERC725` is standardized under `LSP0-ERC725Account`.
This standard consists of two sub-standards, a generic data key/value store (Y) and a generic execute function (X). Both of these in combination allow for a very flexible and long-lasting account system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your original names (ERC725Y and ERC725X) are better than just Y and X. Instead of calling them sub-standards, just call them interfaces. It's pretty normal to have a few different interfaces in the same ERC. To satisfy the linter, you just need to use backticks (`).

Smart contracts implementing the ERC-725 Y standard MUST implement the [ERC-165] `supportsInterface(..)` function and MUST support the ERC-165 and Y interface ids.

### `ERC725X` Methods
### Methods
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should move your interface definitions out of the Security Considerations section to somewhere around here, in the Specification section.

A common way to define data keys is the hash of a word, e.g. `keccak256('ERCXXXMyNewKeyType')` which results in: `0x6935a24ea384927f250ee0b954ed498cd9203fc5d2bf95c735e52e6ca675e047`

---
The LSP2 ERC-725 JSON Schema standard is a more explicit ERC-725 Y data key standard, that defines key types and value types, and their encoding and decoding.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LSP2 ERC-725 JSON Schema

This is an external link (I think?). You should either remove it or replicate the contents here (either inline or in your assets directory).

## Reference Implementation

Reference implementations can be found in [`ERC725.sol`](../assets/eip-725/ERC725.sol).
Reference implementations can be found at the `ERC725Alliance` Github.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You'll need to either remove this link or link to a copy in your assets directory. We don't allow links to third party repositories (with few exceptions).

@github-actions
Copy link

github-actions bot commented Aug 5, 2025

The commit 3f8c848 (as a parent of 2d568aa) contains errors.
Please inspect the Run Summary for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants