Skip to content

Commit

Permalink
Refactor MNTs to NTs
Browse files Browse the repository at this point in the history
  • Loading branch information
PaulRBerg committed Nov 8, 2024
1 parent a7c675f commit dcdc6ee
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions EIPS/eip-7809.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ requires: 2718, 2930
## Abstract

This EIP introduces Native Tokens (NTs) as a backward-compatible extension of the EVM, enabling
fungible tokens to function with native-like properties. Unlike ERC-20 tokens, MNTs are
fungible tokens to function with native-like properties. Unlike ERC-20 tokens, NTs are
integrated into the global VM state, allowing for direct transfers through newly defined opcodes and eliminating the
traditional two-step "approve" and "transfer" pattern. Ether (ETH) is designated as one of the MNTs while retaining its
traditional two-step "approve" and "transfer" pattern. Ether (ETH) is designated as one of the NTs while retaining its
unique role as the exclusive token for gas fee payments. The EIP introduces the new opcodes `MINT`, `BURN`, `BALANCEOF`,
and `CALLVALUES` to manage NT supply and query account balances. Additional opcodes such as `NTCALL`, `NTCALLCODE`,
`NTCREATE`, and `NTCREATE2` facilitate NT transfers and NT-infused contract creation. Existing opcodes and transactions
Expand Down Expand Up @@ -283,36 +283,36 @@ This EIP does not introduce any breaking changes to the existing Ethereum protoc
functionality that requires consideration across various layers of the ecosystem.

- Front-end Ethereum libraries, such as web3.js and wagmi, will need to adapt to the new transaction structures introduced
by MNTs. These libraries must update their interfaces and transaction handling mechanisms to accommodate the inclusion
by NTs. These libraries must update their interfaces and transaction handling mechanisms to accommodate the inclusion
of token transfers within smart contract calls and the absence of traditional "approve" and "transfer" functions.
- Smart contract languages like Solidity will need to incorporate support for the newly introduced opcodes associated with
MNTs. This includes adapting compilers and development environments to recognize and compile contracts that interact
NTs. This includes adapting compilers and development environments to recognize and compile contracts that interact
with tokens stored in the VM state.
- Additionally, Ethereum wallets, block explorers, and development tools will require updates to fully support MNTs.
- Additionally, Ethereum wallets, block explorers, and development tools will require updates to fully support NTs.
Wallets must be capable of managing native token balances, signing new types of transactions, and displaying
token information accurately. Explorers need to parse and present the new transaction formats and token states, while
development tools should facilitate debugging and deployment in this enhanced environment.

To ensure a smooth transition, the authors recommend a gradual deployment process. This phased approach allows
developers, users, and infrastructure providers to adapt incrementally. By introducing MNTs in stages, the ecosystem can
developers, users, and infrastructure providers to adapt incrementally. By introducing NTs in stages, the ecosystem can
adjust to the new functionalities, verify compatibility, and address any issues that arise, ensuring that every
component behaves correctly throughout the integration period.

## Reference Implementation

The authors have begun implementing this EIP in Sablier's [SabVM repository](https://github.com/sablier-labs/sabvm), a

Check failure on line 303 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 303 | The authors have begun implementing this EIP in Sablier's [SabVM repository](https://github.com/sablier-labs/sabvm), a | = help: see https://ethereum.github.io/eipw/markdown-rel-links/
fork of [REVM](https://github.com/bluealloy/revm) that supports MNTs. Unlike the proposed EIP, SabVM uses precompiles
fork of [REVM](https://github.com/bluealloy/revm) that supports NTs. Unlike the proposed EIP, SabVM uses precompiles

Check failure on line 304 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 304 | fork of [REVM](https://github.com/bluealloy/revm) that supports NTs. Unlike the proposed EIP, SabVM uses precompiles |
instead of opcodes because that was easier to implement at the time.

A particularly relevant resource in SabVM is this
[draft Solidity spec](https://github.com/sablier-labs/sabvm/discussions/87), which details support for MNTs in Solidity.
[draft Solidity spec](https://github.com/sablier-labs/sabvm/discussions/87), which details support for NTs in Solidity.

Check failure on line 308 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 308 | [draft Solidity spec](https://github.com/sablier-labs/sabvm/discussions/87), which details support for NTs in Solidity. |

Additionally, the [SRFs repository](https://github.com/sablier-labs/SRFs) (Sablier Requests for Comments) hosts the

Check failure on line 310 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 310 | Additionally, the [SRFs repository](https://github.com/sablier-labs/SRFs) (Sablier Requests for Comments) hosts the |
SRF-20 standard: an application-level standard designed to replicate the ERC-20 standard specifically for MNTs.
SRF-20 standard: an application-level standard designed to replicate the ERC-20 standard specifically for NTs.

| Name | Link | Description |
| ------ | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| SabVM | [github.com/sablier-labs/sabvm](https://github.com/sablier-labs/sabvm) | Fork of REVM that implements MNTs with precompiles |
| SabVM | [github.com/sablier-labs/sabvm](https://github.com/sablier-labs/sabvm) | Fork of REVM that implements NTs with precompiles |

Check failure on line 315 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 315 | | SabVM | [github.com/sablier-labs/sabvm](https://github.com/sablier-labs/sabvm) | Fork of REVM that implements NTs with precomp... |
| SRFs | [github.com/sablier-labs/SRFs](https://github.com/sablier-labs/SRFs) | Sablier Requests for Comments |

Check failure on line 316 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 316 | | SRFs | [github.com/sablier-labs/SRFs](https://github.com/sablier-labs/SRFs) | Sablier Requests for Comments ... |
| stdlib | [github.com/sablier-labs/stdlib](https://github.com/sablier-labs/stdlib) | Sablier Standard Library, providing precompiles, standards, and testing utilities |

Check failure on line 317 in EIPS/eip-7809.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-7809.md | 317 | | stdlib | [github.com/sablier-labs/stdlib](https://github.com/sablier-labs/stdlib) | Sablier Standard Library, providing precompil... |

Expand Down

0 comments on commit dcdc6ee

Please sign in to comment.