Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ERC: Minimal intent-centric EOA smart account #696

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

hellohanchen
Copy link

When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md

We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Nov 3, 2024

File ERCS/erc-7806.md

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

ERCS/erc-intent-7702.md Outdated Show resolved Hide resolved
ERCS/erc-intent-7702.md Outdated Show resolved Hide resolved
@hellohanchen hellohanchen changed the title Add ERC: Minimal intent-centric EOA smart account standard Add ERC: Minimal intent-centric EOA smart account Nov 3, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Nov 3, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Nov 4, 2024
@github-actions github-actions bot removed the w-ci label Nov 4, 2024
@github-actions github-actions bot added the w-ci label Nov 4, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Nov 4, 2024
@hellohanchen hellohanchen marked this pull request as draft November 12, 2024 08:41
@eip-review-bot eip-review-bot changed the title Add ERC: Minimal intent-centric EOA smart account Website: Minimal intent-centric EOA smart account Feb 9, 2025
@hellohanchen hellohanchen marked this pull request as ready for review February 10, 2025 03:28
@eip-review-bot eip-review-bot changed the title Website: Minimal intent-centric EOA smart account Add ERC: Minimal intent-centric EOA smart account Feb 10, 2025
@hellohanchen
Copy link
Author

Hi team, could you please help review this PR again? I've updated with more examples and re-worked the whole thing a little bit.
cc @abcoathup

ERCS/erc-7806.md Outdated
---
eip: 7806
title: Minimal intent-centric EOA smart account
description: Minimal effort intent-centric interfaces for EOA account abstraction
Copy link
Contributor

Choose a reason for hiding this comment

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

Minimal effort

This doesn't really add a lot of information to the description. It's better to include specific/differentiating features than generally saying "minimal".

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated Show resolved Hide resolved
ERCS/erc-7806.md Outdated
Comment on lines 24 to 26
* **BatchExecution**
* **GasSponsorship**
* **AccessControl**
Copy link
Contributor

Choose a reason for hiding this comment

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

Why are these joined into single words? If they are code (and I don't believe they are), you should put them in backticks (`). Otherwise, put a space between the words.

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated
trying to keep the whole solution forward-compatible.

With `SET_CODE_TX_TYPE=0x04` allowing EOA accounts to set contract code, EOA accounts will gain similar programmability
as SCA (Smart Contact Account). A new standard, that provides EOA with highly-demanded AA features while potentially
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 this expansion "SCA (Smart Contract Account)" to the first time the abbreviation is used (line 42-ish).

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

### UserIntent bytes
Copy link
Contributor

Choose a reason for hiding this comment

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

If "UserIntent" is the name of a Solidity type:

Suggested change
### UserIntent bytes
### `UserIntent` bytes

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated
Comment on lines 151 to 156
> The main challenge with a generalized intent standard is being able to adapt to the evolving world of intents. Users
> need to have a way to express their intents in a seamless way without having to make constant updates to their smart
> contract wallets. --- ERC-7521

The interface designs proposed in this EIP is inspired by ERC-7521, and the author tries to avoid turning EIP into a
real implementation.
Copy link
Contributor

Choose a reason for hiding this comment

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

You don't need to quote 7521 here. Just write your rationale describing the decisions made within this document. If you're going to point to another EIP in this section, that is a hint that you're not actually writing content appropriate for the Rational section. My favourite analogy is:

Motivation: We need to build a shed because...
Rationale: We painted the shed red because...

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated
Comment on lines 185 to 188
### Auditability of both validation and execution

It is very important both the standard and account implementation can be publicly audited and shared. The most important
reason is security. And this can also help mediate the compatibility issues between standard and account.
Copy link
Contributor

Choose a reason for hiding this comment

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

This is more content for the security considerations section.

Copy link
Author

Choose a reason for hiding this comment

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

Updated 👍

ERCS/erc-7806.md Outdated
Comment on lines 192 to 196
Within a intent-centric system, solvers are helping account owners to fulfill the intent and solvers are rewarded. This
proposal allows any solver to execute the intent, bringing a positive competitive environment. And supported by gas
abstraction, solvers will pay the native token as gas fee and take other tokens back from the EOA account. Besides,
solvers can further reduce the cost of their side by bundling multiple intent executions into one blockchain
transaction.
Copy link
Contributor

Choose a reason for hiding this comment

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

You're mixing motivation and rationale here again. For example:

This proposal allows any solver to execute the intent, bringing a positive competitive environment.

This is an argument for using this proposal over other proposals. That belongs in the Motivation section.

Copy link
Author

Choose a reason for hiding this comment

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

Moved this section to Motivation 🙏

ERCS/erc-7806.md Outdated
Comment on lines 203 to 206
And another fact, which is easy to be ignored, is that intent has value by itself. For example, if an EOA is always
willing to swap 1000 USDC to 1000 USDT and vice versa, this EOA will be considered as a "liquidity provider" in the
market. The account can send the signed intent to exchanges and make the exchange reward the account every time the
intent is executed.
Copy link
Contributor

Choose a reason for hiding this comment

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

This is again more relevant to Motivation. You aren't explaining any choices made within this document, so it doesn't belong in Rationale.

Copy link
Author

Choose a reason for hiding this comment

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

Updated to be No re-entry protection enforced

ERCS/erc-7806.md Outdated
This is mainly controlled by the standard and account implementation to make sure the account is safe. Solver needs to
responsible for its own security when executing intents.

More discussion needed.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
More discussion needed.
More discussion needed. <!-- TODO -->

Copy link
Author

Choose a reason for hiding this comment

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

Updated 🙏

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