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: Instruction Specific Address #762

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

Conversation

ss-sonic
Copy link

@ss-sonic ss-sonic commented Dec 10, 2024

ERC-7838: Instruction Specific Address (ISA)

The Instruction Specific Address (ISA) standard introduces a mechanism for approval-less interactions with decentralized applications (DApps) through dynamically generated single-use contract addresses. This standard enables seamless and secure DApp interactions without requiring wallet connections, approvals, or plugin dependencies, enhancing usability, security, and accessibility.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Dec 10, 2024

File ERCS/erc-7838.md

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

@eip-review-bot eip-review-bot changed the title Add ERC: Instruction specific address Add ERC: Instruction Specific Address Dec 10, 2024
@github-actions github-actions bot added the w-ci label Dec 10, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Dec 10, 2024
@github-actions github-actions bot removed the w-ci label Dec 10, 2024
Copy link

The commit ee9238a (as a parent of 56f52ef) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot added the w-ci label Dec 10, 2024
@github-actions github-actions bot removed the w-ci label Dec 10, 2024
ss-sonic and others added 5 commits December 11, 2024 13:30
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
---
eip: 7838
title: Instruction Specific Address
description: An interface for approval-less contract interactions, detaching wallets from DApps and enabling seamless CEX integration.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd recommend focusing more on a technical description here, instead of listing use cases. Also, drop "an interface for". It doesn't add any useful information, and the field had a maximum length.


## Abstract

This EIP introduces the Instruction Specific Address (ISA) mechanism, which allows for approval-less interactions with decentralized applications (DApps) through the use of dynamically generated single-use addresses. By enabling transactions without wallet connections or approvals, ISA enhances user security, simplifies interactions, and aligns Web3 interfaces with familiar Web 2.0 paradigms.
Copy link
Contributor

Choose a reason for hiding this comment

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

Small risk of overlap with Instruction Set Architecture. Not a problem, just wanted to mention it.


## Abstract

This EIP introduces the Instruction Specific Address (ISA) mechanism, which allows for approval-less interactions with decentralized applications (DApps) through the use of dynamically generated single-use addresses. By enabling transactions without wallet connections or approvals, ISA enhances user security, simplifies interactions, and aligns Web3 interfaces with familiar Web 2.0 paradigms.
Copy link
Contributor

Choose a reason for hiding this comment

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

Your abstract should contain a high-level technical overview of how the proposal works. Use cases should be in the motivation section.


## Rationale

### Approval-less Contract Interactions
Copy link
Contributor

Choose a reason for hiding this comment

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

This subsection is justifying the proposal as a whole, and so belongs in the motivation section. The Rationale section is for explaining choices made within the document, for example how you chose 0xff as the prefix.

- **Wallet Tunneling:** Without wallet connections, DApps cannot tunnel into user wallets to execute unintended actions.
- **Approval-based Risks:** By removing the need for token approvals, ISA eliminates scenarios where excessive allowances are exploited.

### Security Enhancements
Copy link
Contributor

Choose a reason for hiding this comment

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

This subsection is kinda walking the border between motivation and rationale. If you make it more specific, it can probably stay here.

- **First CTA is Action, Not Wallet Connection:** Users are encouraged to engage with the DApp's functionality first, removing the "connect wallet" barrier.
- **Unified Chain Experience:** By decoupling wallet requirements, ISA creates a consistent and seamless experience across platforms and ecosystems.

### Compatibility with Existing Standards
Copy link
Contributor

Choose a reason for hiding this comment

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

This belongs in the backwards compatibility section.

- **[EIP-7683](./eip-7683.md) (Cross-Chain Intents):** ISA supports interaction paradigms that abstract user intent across chains.
- **Broad Compatibility:** ISA ensures that its features are generic and protocol-agnostic, allowing integration with future standards.

Let me know if this meets your expectations or if further elaboration is needed! If all is good, we can proceed to the next section.
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 write proposals as if they were already final. This paragraph would be quite strange in a finished standard.

You can use HTML-style comments if you'd like <!-- comment -->

The `DepositReceiver` contract handles transactions for ISAs, processes user-defined logic, and emits events for transaction completion or failure.

```solidity
// SPDX-License-Identifier: MIT
Copy link
Contributor

Choose a reason for hiding this comment

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

Code within the document must be CC0-1.0 licensed. You can put MIT code in the assets directory and link to it instead if you prefer.

The `ISAFactory` contract generates deterministic ISA addresses using the `CREATE2` opcode and emits events for transparency.

```solidity
// SPDX-License-Identifier: MIT
Copy link
Contributor

Choose a reason for hiding this comment

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

License here too

The `ExecutionContract` processes and forwards ISA transactions, ensuring transparency by emitting events for all state changes.

```solidity
// SPDX-License-Identifier: MIT
Copy link
Contributor

Choose a reason for hiding this comment

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

And here

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.

5 participants