ERC-6551
ERC-6551: Non-Fungible Token Bound Accounts 🔗
interface IERC6551Registry {
function createAccount(
address implementation,
uint256 chainId,
address tokenContract,
uint256 tokenId,
uint256 salt,
bytes calldata initData
) external returns (address);
}
contract NFTWallet {
IERC6551Registry private registry;
constructor(address _registry) {
registry = IERC6551Registry(_registry);
}
function createAccountForNFT(
address tokenContract,
uint256 tokenId
) external returns (address) {
return registry.createAccount(
address(this), // implementation
block.chainid, // chainId
tokenContract,
tokenId,
0, // salt
"" // initData
);
}
}Last updated