This proposal introduces a smart contract wallet-based approach for managing NFTs, focusing on utilizing the programmable features of smart contract wallets for NFT asset management. Additionally, it introduces functions such as nftApprove, nftSetApprovalForOneAll, nftSetApprovalForAllAll, nftGetApproved, nftIsApprovedForOneAll, nftIsApprovedForAllAll and nftTransfer, which provide enhanced control over NFT transactions. This approach seeks to enhance NFT management by utilizing the built-in features of smart contract wallets, thus offering a more adaptable, secure, and efficient method for managing token transactions.
An externally-owned account (EOA) wallet has no state and code storage, while the smart contract wallet does.
Account abstraction (AA) is a direction of the smart contract wallet, which works around abstract accounts. This ERC can also be an extension based on ERC-4337 or as a plug-in for wallets.
The smart contract wallet allows the user's own account to have state and code, bringing programmability to the wallet. We think there are more directions to expand. For example, nft asset management, functional expansion of nft transactions, etc.
The smart contract wallet interface of this ERC is for nft asset management and nft asset approval. It supports the simplenft ERC-X, and ERC-721 is backward compatible with ERC-X, so it can be compatible with the management of all nfts in the existing market.
The proposal aims to achieve the following goals:
nftTransfer function, the transaction initiated by the non-smart wallet itself.nftApprove, nftSetApprovalForOneAll, nftSetApprovalForAllAll, nftGetApproved, nftIsApprovedForOneAll, nftIsApprovedForAllAll functions. The user wallet itself supports approve and provides approve. for One nft, all nft of one nft smart contract, all nft assets.nftTransfer to increase the user's more playability.nftReceive function.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.
Compliant contract must implement the ERC-165 interfaces
the key technical decisions in this proposal are:
Improved Approve Mechanism
approve. The new nftApprove, nftSetApprovalForOneAll, nftSetApprovalForAllAll, nftGetApproved, nftIsApprovedForOneAll, nftIsApprovedForAllAllfunctions in this proposed enable more precise control over nft usage within a wallet contract, a significant improvement over the traditional method.nftSetApprovalForAllAll function specifically allows for a universal setting all nfts. these were not possible with traditional ERC-721 nfts.Optimized Transfer Process
nftTransfer function streamlines the nft transfer process, making transactions both more efficient and secure.Support for Batch Operations
approve or transfer operations, significantly boosting transaction efficiency.This ERC can be used as an extension of ERC-4337 and is backward compatible with ERC-4337.
No security considerations were found.
Copyright and related rights waived via CC0.